Inspiration

Most people don't abandon creative work randomly. They abandon it at the same place, across every project, in every medium. The short story that stopped when the protagonist had to make a real choice. The screenplay that died the week the second act needed a theme. We wanted to build something that treated the graveyard of unfinished work not as failure, but as data.

What it does

You upload the novels, screenplays, and songs you never finished. The Unfinished runs sentiment analysis on your emotional arc, computes vital signs like vocabulary richness and sentence length over time, and then calls Claude three times: once to diagnose each project, once to find the single pattern across all of them, and once to prescribe the smallest possible assignment to break it. The output is an autopsy report, a pattern map, and one specific thing to do this weekend.

How we built it

FastAPI backend, React and Vite and Tailwind on the frontend. VADER sentiment analysis scores each text across 40 segments and matches it against six canonical arc shapes using Pearson correlation. Three Claude calls handle the interpretive layer, each with a narrow role: forensic pathologist, detective, physical therapist. The frontend shell was built in Lovable and wired to the backend manually.

Challenges we ran into

Writing prompts that produced diagnoses specific enough to actually sting was harder than any of the engineering. We went through a lot of iterations before the autopsy output felt like something a real editor would say rather than a horoscope. We also had to solve a dropout floor problem where short fragments were scoring near 0% completion, which made every diagnosis feel useless. A minimum floor of 20% fixed it.

Accomplishments that we're proud of

The pattern map. Seeing seven unfinished projects from three different mediums all cluster in the same 9-point band on a shared structural timeline, with a named diagnosis underneath it, is the moment the product's thesis becomes real. We are also proud that the voice holds across the whole product. The lowercase editorial tone, the medical metaphor, the reentry plan that ends with one scene and a Sunday deadline. It feels like a coherent thing.

What we learned

Claude is remarkably good at the forensic register when you give it a narrow enough role. The autopsy prompt works because it does not ask Claude to be a writing coach. It asks it to be a pathologist, and the constraint is the key. We also learned that quantitative analysis of creative work is useful even when imprecise. The arc chart does not need to be perfect to be true.

What's next for The Unfinished

Real audio and image pipelines so musicians and visual artists get the same depth of analysis as writers. A Gutenberg integration that pulls the exact passage from a published work where a canonical author navigated the same structural transition you are stuck on. And persistent user accounts so the pattern map deepens over time, every new abandoned project sharpening the diagnosis of the one before it.

Built With

  • api
  • for
  • gutendex-(project-gutenberg)-other:-json-file-persistence
  • languages:-python
  • local
  • proxy
  • pypdf
  • python-docx
  • react
  • shadcn/ui-apis:-anthropic-claude-api-(claude-sonnet-4-6)
  • tailwind-css-libraries:-nltk-(vader-sentiment-analysis)
  • tanstack-query
  • typescript-frameworks:-fastapi
  • vite
Share this project:

Updates