Novoforge | Local-First Worldbuilding & Novel-Writing Software

electron react typescript tailwindcss vite tiptap sqlite

Cover Image

Novoforge | Local-First Worldbuilding & Novel-Writing Software


Note

A quiet, local-first companion for building worlds and writing long-form fiction — your project is a portable .world folder on disk, and it stays yours.

Project Overview

Introduction

Novoforge is a local-first desktop application for worldbuilding and long-form novel writing, built with Electron, React, and TypeScript. Everything — the database, assets, revision history, and backups — lives in a single portable .world bundle on disk. No accounts, no cloud, no lock-in.

The project exists to solve a simple problem: serious long-form writing deserves a dedicated tool that respects your ownership of the work, works offline, and stays out of the way.


✨ Key Features

Manuscript

  • Distraction-Free Editor - TipTap/ProseMirror editor with focus mode, typewriter scrolling, entity mentions (@Character), wiki links, inline editorial notes, and scene-break markers
  • Scrivenings, Corkboard & Outliner Views - Read and edit your manuscript as one continuous flow, or plan it visually
  • Per-Scene Targets & Find & Replace - Track word targets for every scene, part, and book; search across the whole project

Worldbuilding

  • Typed Entities - Characters, locations, factions, items, creatures, and more with custom attributes and tags
  • Relationship Graph - Visualize connections between every entity, filtered by relationship type
  • Timelines, Calendars, Maps, Boards & Family Trees - Build the world around your story

History & Safety

  • Revision Snapshots - Automatic snapshots with a diff viewer and one-click restore with safety copy
  • Rolling Backup - Auto-backup on close, plus scheduled encrypted backups
  • Dropbox & S3 Backups - Optional cloud backup to Dropbox or any S3-compatible bucket

Compile, Export & Import

  • Scrivener-Style Compile - Reusable formats with per-section-type layouts, numbering, filters, and typography placeholders
  • Full Export Suite - DOCX, EPUB, PDF, Markdown, HTML, Shunn-standard manuscript, and Scrivener .scriv bundles — every run ships a checksummed manifest
  • Staged Imports - DOCX, Markdown/plain text, Fountain screenplays, CSV entity sheets, and existing Scrivener projects with preview before commit

Productivity & Insight

  • Stats Dashboard - Words per day, streaks, sessions, and chapter-length matrix
  • Readability & Consistency - Readability scores plus a consistency workbench with reports and beta-reader exports
  • Desktop Polish - Native application menu, ⌘K command palette, dark/light themes, and automatic updates

🛠️ Tech Stack

Novoforge pairs an Electron shell with a typed writing core:

Desktop

  • Electron - Cross-platform shell, packaged per-OS with electron-builder
  • React - Renderer UI with TipTap/ProseMirror editor
  • TypeScript - Strict typing throughout
  • TailwindCSS - Utility-first styling with dark/light themes

Core Libraries

  • SQLite - Embedded database with full-text search
  • xyflow - Entity relationship graph rendering
  • Zustand - Minimal, focused state management

Note

After the 1.0 release the desktop core moved to a private repository — this public repo hosts the landing page, docs, downloads, and auto-update feeds.


🏗️ Architecture

Design Principles

flowchart LR
    UI["React Renderer"] -->|"typed IPC"| Main["Electron Main"]
    Main --> Domain["Typed domain services<br/>+ ports"]
    Domain --> DB["SQLite<br/>embedded"]
    Domain --> FS[".world bundle<br/>manifest + assets + revisions"]
    Domain --> Backup["Backup providers<br/>local / Dropbox / S3"]

A project is just a folder — a portable .world bundle containing the database, assets, revisions, and backups next to each other. Open it, back it up, or sync it however you like; the domain core stays portable and testable behind small ports, keeping the UI layer Electron-agnostic.


🚀 Download & Platforms

Novoforge ships desktop installers for all three major platforms:

  • Windows - NSIS installer (Novoforge-<version>-setup.exe)
  • Linux - AppImage, Debian (.deb), and RPM (.rpm) packages
  • macOS - DMG (currently unsigned — right-click → Open on first launch)
  • Auto-Updates - The app checks a public release feed and updates in place

Grab the latest version from the releases page or visit the website.


🎯 What Makes This Project Unique

  1. Local-First by Design - A project is just a portable .world folder; the database, assets, and revisions live next to each other, so backup and portability are trivial.

  2. Serious Writing Tools - Revision snapshots with diffs, scrivenings, corkboard/outliner views, per-scene word targets, and Scrivener-grade compile — built for long-form work.

  3. Round-Trip Interop - Checksummed exports to DOCX/EPUB/PDF/Shunn/ Scrivener with staged imports back in, including Fountain screenplays and CSV entity sheets.

  4. Encrypted Cloud Backups - Optional Dropbox or S3 sync with encrypted archives, no lock-in required.

  5. Private & Respectful of Ownership - No accounts, no telemetry; your work is yours and stays on your machine.

  6. Continuous Delivery - GitHub Actions builds, tests, and ships installers to a public download feed on every release tag.


📸 Screenshots

Manuscript — outline, editor, and inspector

Worldbuilding — typed entities and custom attributes

Relationship graph

Stats — words per day, streaks, and targets

Boards — plan scenes and chapters

Backups — local or Dropbox, encrypted


🗺️ Roadmap

Novoforge is under active development. Planned work includes:

  • Dropbox cloud backups (OAuth, encrypted)
  • Auto-update pipeline via public GitHub releases
  • macOS installer (DMG) — v1.0.0
  • Corkboard/outliner views, find & replace, section types
  • Scrivener-style compile engine with per-section layouts
  • Code signing & notarization (Windows/macOS)
  • Cloud sync providers beyond Dropbox/S3
  • Manuscript collaboration (long-term)

🤝 Author & Contact


📄 License

Novoforge is free for personal, non-commercial use by individuals. Commercial use, use by organizations, modification, and redistribution require the author’s written permission (a separate commercial license is available). See LICENSE for the full terms.


🙏 Acknowledgments

Found this project useful? Support my work ☕