Skip to content

Latest commit

 

History

History
88 lines (61 loc) · 2.52 KB

File metadata and controls

88 lines (61 loc) · 2.52 KB

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.