A clutter-free space for long-form writing — fiction, research, essays, journals.
A local-first, browser-based writing app built with React, Vite, and TypeScript. Data is stored in your browser's IndexedDB via Dexie; the editor is built on Lexical.
⚠️ Alpha — there is no data sync. All data is saved in IndexedDB in your local browser. If you clear your browser cache, your work will be lost.
- Node.js 20+
- npm (the project uses
package-lock.json) - A modern browser with IndexedDB support
- For e2e tests: Playwright browsers, installed via
npx playwright install
npm install
npm run devThe dev server starts at http://localhost:5173.
npm run dev— start the Vite dev servernpm run build— type-check and build for productionnpm run preview— preview the production build locallynpm run typecheck— TypeScript check onlynpm run lint— ESLint (coding-standards gate; see below)npm run lint:fix— ESLint with autofixnpm run test— run unit tests (Vitest, watch mode,TZ=UTC)npm run test:run— run unit tests once (CI mode)npm run test:ui— Vitest UInpm run test:coverage— unit test coveragenpm run test:e2e— run Playwright e2e testsnpm run test:e2e:ui— Playwright UI mode
This project follows a strict set of coding rules adapted from NASA/JPL's "Power of Ten",
enforced by ESLint (npm run lint) and a pre-commit hook. See
CODING_STANDARDS.md. The standard applies going forward: new and
edited code must lint clean (warnings included), while a historical backlog is tracked as
warnings.
LIpsum Writer is source-available under the PolyForm Noncommercial License 1.0.0. Free for personal, research, and non-profit use. For commercial licensing, contact the author.