https://github.com/smith-and-web/kindling
Spark your draft - Bridge the gap between outline and prose. A desktop writing app for fiction writers.
https://github.com/smith-and-web/kindling
creative-writing desktop-application fiction-writing fiction-writing-organizer nanowrimo novel-writing open-source plotters plottr productivity rust rust-lang scrivener-alternative sveltekit tauri-app writing-app writing-software writing-tools
Last synced: about 2 months ago
JSON representation
Spark your draft - Bridge the gap between outline and prose. A desktop writing app for fiction writers.
- Host: GitHub
- URL: https://github.com/smith-and-web/kindling
- Owner: smith-and-web
- License: mit
- Created: 2026-01-12T19:34:09.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-03-16T23:31:00.000Z (2 months ago)
- Last Synced: 2026-03-17T04:35:27.450Z (2 months ago)
- Topics: creative-writing, desktop-application, fiction-writing, fiction-writing-organizer, nanowrimo, novel-writing, open-source, plotters, plottr, productivity, rust, rust-lang, scrivener-alternative, sveltekit, tauri-app, writing-app, writing-software, writing-tools
- Language: Rust
- Homepage:
- Size: 11.5 MB
- Stars: 14
- Watchers: 2
- Forks: 1
- Open Issues: 35
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-markdown-editors - The code resides on GitHub
README
Kindling
Free, open-source writing software for plotters and outliners.
Bridge the gap between your story outline and your first draft.
Download ·
Features ·
Compare ·
Contributing
---
## Why Kindling?
- **Your outline stays visible while you write.** Scene beats appear as expandable prompts in your drafting space. No more switching between apps.
- **Import your existing work.** Bring in projects from Scrivener (.scriv), Plottr (.pltr), yWriter (.yw7), Obsidian Longform, or Markdown — no starting from scratch.
- **No AI. No subscription. No cloud.** Every word is yours. Your projects are local SQLite files. Works completely offline.
- **Free and open source.** MIT licensed. Inspect the code, contribute, or fork it. Your tools should be as permanent as your writing.
## Download
Get Kindling for free at **[kindlingwriter.com/download](https://kindlingwriter.com/download/)**
| Platform | Download |
|----------|----------|
| macOS (Universal) | `Kindling_*_universal.dmg` |
| Windows | `Kindling_*_x64-setup.msi` |
| Linux | `Kindling_*_amd64.AppImage` or `.deb` |
Or grab the latest directly from the [Releases page](https://github.com/smith-and-web/kindling/releases).
## Features
| Feature | Description |
|---------|-------------|
| **Import from popular tools** | Scrivener 3 (`.scriv`), Plottr (`.pltr`), Markdown (`.md`), yWriter (`.yw7`), and Longform/Obsidian |
| **Scaffolded writing view** | Scene beats appear as expandable prompts — or switch to full-page prose editing |
| **Rich text prose editor** | Write with formatting, auto-save, word count, and beat context |
| **Export formats** | Scrivener (`.scriv`), DOCX (Standard Manuscript Format), EPUB, Markdown, Longform/Obsidian, and Treatment (1-page & 5-page) |
| **Screenplay support** | Screenplay project type with sluglines, acts/sequences, and page count estimates |
| **Reference auto-detection** | Characters and locations are auto-detected in your prose — no manual linking needed |
| **Custom fields & tags** | Add typed custom fields (text, number, select, etc.) and hierarchical tags to any entity |
| **Beat sheet templates** | Start from Hero's Journey, Save the Cat, Three-Act Structure, Story Circle, and more |
| **Reference panel** | Characters, locations, items, objectives, and organizations — linked per scene |
| **Sync/reimport** | Preview and apply source changes while preserving your prose |
| **Light & dark themes** | System preference detection with manual override |
| **Local-first** | Your work stays on your machine in a SQLite database |
| **Cross-platform** | macOS, Windows, and Linux |
See the full [features overview](https://kindlingwriter.com/features/) on the website.
## Tech Stack
- **Frontend**: [Svelte 5](https://svelte.dev/) + [Tailwind CSS](https://tailwindcss.com/)
- **Backend**: [Rust](https://www.rust-lang.org/) + [Tauri 2.x](https://tauri.app/)
- **Database**: [SQLite](https://sqlite.org/) via rusqlite
- **Parsers**: Native Rust parsers for Scrivener 3, Plottr, yWriter, Longform, and Markdown
## From Source
**Prerequisites:**
- [Node.js](https://nodejs.org/) 20+
- [Rust](https://rustup.rs/) (stable)
- Platform dependencies: [Tauri prerequisites](https://tauri.app/start/prerequisites/)
```bash
# Clone the repository
git clone https://github.com/smith-and-web/kindling.git
cd kindling
# Install dependencies
npm install
# Run in development mode
npm run tauri dev
# Build for production
npm run tauri build
```
## Roadmap
Track progress on the [project board](https://github.com/users/smith-and-web/projects/1).
| Phase | Status | Description |
|-------|--------|-------------|
| **v0.1 - Foundation** | ✅ Complete | Plottr import, basic UI, project structure |
| **v0.2 - Outline View** | ✅ Complete | Drag-and-drop reordering, create/delete scenes |
| **v0.3 - Writing & Export** | ✅ Complete | Prose editor, DOCX export with Standard Manuscript Format |
| **v1.0 - Release** | ✅ Complete | Additional importers, polish, performance, stability |
| **v1.2 - Features** | ✅ Complete | Scrivener import/export, screenplay support, light theme, custom fields, tags, templates, auto-detection, EPUB, treatments |
See the [milestones](https://github.com/smith-and-web/kindling/milestones) for detailed breakdowns.
## Testing
Kindling maintains high test coverage standards to ensure code quality and prevent regressions.
| Metric | Minimum | Current |
|--------|---------|---------|
| Statements | 95% | 100% |
| Branches | 65% | 100% |
| Functions | 98% | 100% |
| Lines | 95% | 100% |
**CI will fail if coverage drops below these thresholds.** New code must include appropriate tests.
```bash
# Frontend tests with coverage
npm test -- --coverage
# Rust tests
cd src-tauri && cargo test
# Run all checks (lint, format, types, tests)
npm run check:all
```
## Contributing
Contributions are welcome! Please read the [Contributing Guide](CONTRIBUTING.md) before submitting a PR.
- 🐛 [Report bugs](https://github.com/smith-and-web/kindling/issues/new?template=bug_report.yml)
- 💡 [Request features](https://github.com/smith-and-web/kindling/issues/new?template=feature_request.yml)
- 💬 [GitHub Discussions](https://github.com/smith-and-web/kindling/discussions) — Questions and ideas
- 🔥 [Discord](https://discord.gg/g7bkj4kY8w) — Chat with other writers and contributors
Looking for a place to start? Check out issues labeled [`good first issue`](https://github.com/smith-and-web/kindling/labels/good%20first%20issue).
## Support
If Kindling is useful to you, consider supporting its development:
Your sponsorship helps keep Kindling free and open source.
## License
[MIT](LICENSE) — free for personal and commercial use.
## Acknowledgments
- Built with [Tauri](https://tauri.app/) and [Svelte](https://svelte.dev/)
- Inspired by [Scrivener](https://www.literatureandlatte.com/scrivener/) and [Plottr](https://plottr.com/)
---
Made with ☕ for writers who plan before they write.