Skip to content

Repository files navigation

Nvlst

A local-first desktop writing app for long-form fiction. Write normally; a deterministic Integrity Engine quietly checks your story's continuity — catching real contradictions with receipts, never crying wolf, never making you maintain a database.

Stack: Tauri (Linux/Windows/Mac) · Svelte 5 · TipTap on ProseMirror · local-first (manuscript on disk) · SQLite for facts · an opt-in AI Suggester behind a pluggable IExtractor.

What's here

This repo is the specification + build workspace. The design is complete; the build is beginning.

  • spec/AUTHORITY.mdread first. Binding principles, reading order, the audit mandate.
  • spec/00-first-task-editor-shell.md — the first build slice.
  • spec/01-integrity-engine.md — foundational: the four-layer engine + data model.
  • spec/02-editor-integration.md — TipTap/ProseMirror on Svelte; the editor↔engine boundary.
  • spec/03-seams.md — mentions, story-time bar, responsive right surface, thread wall.
  • spec/04-mirror-world-panes.md — the Relationship & World Mirror View contents.
  • spec/05-export-pipeline.md — sterile, manifest-ordered export (HTML/ePub/PDF).
  • spec/06-decisions.md — the binding "why" behind every decision (CP1–CP6, PI1–PI5, D1–D40).
  • design/shell-mockup.html — the aesthetic/layout target.
  • design/mockup-deltas.md — where the build deviates from the mockup (read before reproducing the mockup).
  • WORKFLOW.md — the build/review loop and role separation.
  • AGENTS.md / CLAUDE.md — entry points for the review and build agents.

The philosophy (one paragraph)

Truth exists in one place (the engine). Views own nothing. Writing stays primary. Missing things is acceptable; obligations are forbidden. Complexity is summoned, not present. Screens answer questions, not data. If any surface teaches the writer they are maintaining the system, it is wrong.

Building & running (editor-shell slice)

Prereqs: Node 20+, Rust (stable) with a platform toolchain (MSVC on Windows; WebView2 ships with Windows 11), and the Tauri system dependencies.

npm install          # frontend deps (Tauri CLI is a local devDependency)
npm run app:dev      # launch the desktop app (Vite + Tauri dev window)

npm run check        # svelte-check (types)
npm run lint         # eslint + prettier --check
npm run app:build    # bundle the desktop app

A manuscript is a single local .nvlst JSON file you choose the location for; settings live in the OS app-config dir. Nothing leaves the machine.

About

The writing app for the future, for writers and novelists. AI-integrated, fully self-hosted.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages