Skip to main content
← Back to projects

Nowvella

A web-based manuscript editor for long-form fiction, built as a modern, more detailed take on the desktop tool Manuskript, with an outline, story bible, revisions, export and an MCP server for AI assistants.

Nowvella
Nowvella is a writing application for novelists and other long-form authors. I set out to build a modern web equivalent of Manuskript, the open-source desktop novel editor, and then go further where it made sense. A book is organised as an outline tree of parts, chapters and scenes, each scene carrying the metadata Manuskript files it under: point of view, status, label, word goal, summaries and notes.

Around the editor sit the story development panes: characters, plot, and a compendium of world items (places, organisations, objects, concepts and events) that can be nested and referenced from the text. Shared universes are supported by treating a shared world as its own project that books depend on, and a series table gives each book a reading position so that continuity flows forward through the series. Every scene keeps a revision history with restore, there is a distraction-free mode, and a Thoughts area lets an author capture loose ideas and link them to anything in the book.

When the book is ready it compiles to Markdown, HTML, plain text, DOCX or PDF, with named compile presets. Nowvella also runs an MCP server, so an author can connect an AI assistant such as Claude or ChatGPT to read, search, reorganise and update their own manuscript.

Case Study

1

The Challenge

Writing software has to be trustworthy above everything else: an author must never lose words, never see someone else's book, and be able to get their work out in a usable format wherever the app is hosted. Matching the depth of a mature desktop tool like Manuskript in the browser meant a large feature surface (outline, metadata, story panes, revisions, references, compile) that had to stay coherent, and opening the manuscript up to AI assistants added a second way in that needed exactly the same protections as the web interface.

2

The Solution

I built it on Laravel 13 with Inertia and Vue 3, using a Clean/Onion architecture with a framework-free domain layer for the composition model. It is single-database multi-tenant with one tenant per author, and every tenant-owned table carries a tenant_id with composite foreign keys through it, so PostgreSQL itself rejects cross-tenant references rather than relying on application code to filter them. Support access is an audited impersonation flow rather than an admin bypass. Export has a native engine that writes DOCX and PDF itself, so every deployment can export with no system binaries, and pandoc is detected at runtime as an enhancement. The editor is CodeMirror 6 with Hunspell-style spell checking, autosave keeps what the author typed while a save is in flight, and the MCP server (Laravel MCP) accepts either a per-tenant key or an OAuth 2.1 token via Passport with PKCE and dynamic client registration, so clients like ChatGPT can connect by asking the author for approval.

3

The Outcome

Nowvella is in active development as a private project. The roadmap's phases through to continuity across a series are implemented and tested, with CI running linting, type checks, PHPStan and a Pest suite against PostgreSQL, and the latest phase (Thoughts) is in progress. It is not yet publicly launched.

Technologies Used

PHP 8.5 Laravel 13 Inertia v3 Vue 3 TypeScript Tailwind CSS 4 shadcn-vue CodeMirror 6 PostgreSQL Redis Laravel Fortify Laravel Passport Laravel MCP Pest

More Projects You Might Like