Skip to content

CMolG/open-writer

Repository files navigation

OpenWriter

OpenWriter is a local-first, WYSIWYG book editor built for long-form writing and book production workflows. It includes chapter editing with page-accurate layout, a dedicated cover editor, a table-of-contents editor, and an editorial black-and-white interface designed for book creation.

Features

  • WYSIWYG book pages with trim size presets, margins, pagination, and page separators.
  • Cover editor with title, subtitle, author, and visual styling controls.
  • Table of contents editor with chapter references and page indicators.
  • Chapter-based writing workspace with sidebar navigation and organization tools.
  • Landing page focused on book publishing UX, including FAQ and step-based guidance with structured data.
  • Local-first storage using IndexedDB (Dexie), so drafts stay on-device by default.

Tech Stack

  • Framework: Next.js 16 (App Router)
  • UI: React 19, Tailwind CSS 4
  • Editor: TipTap 3
  • Local data: Dexie / IndexedDB
  • Testing: Playwright, ESLint, TypeScript

Getting Started

Prerequisites

  • Node.js 20+
  • npm 10+

Installation

npm install

Development

npm run dev

Open http://localhost:3000 in your browser.

Available Scripts

Script Description
npm run dev Start development server
npm run build Build production bundle
npm run start Run production server
npm run lint Run ESLint
npx playwright test e2e/book-editor.spec.ts Run E2E test suite

Project Structure

app/                Next.js app entry points and routes
components/         UI and editor components
hooks/              Zustand/Dexie-related hooks and state adapters
lib/                Shared types, utilities, and data helpers
e2e/                End-to-end tests (Playwright)
public/             Static assets

Versioning

OpenWriter follows Semantic Versioning.
Current release: 1.0.0

Contributing

Contributions are welcome.

  1. Fork the repository.
  2. Create a feature branch.
  3. Make focused, well-tested changes.
  4. Open a pull request with context and screenshots for UI changes.

Please keep changes aligned with the existing editor UX and code style.

Security and Privacy

  • Drafts are stored locally in the browser by default.
  • Do not commit secrets or credentials.
  • If you discover a security issue, report it privately to the maintainers before public disclosure.

License

Licensed under the Apache License 2.0. See LICENSE.

About

OpenWriter is a local-first, WYSIWYG book editor built for long-form writing and book production workflows.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors