Spark your draft — Bridge the gap between outline and prose.
Features • Installation • Roadmap • Testing • Contributing • Support
Writers often struggle with the transition from outline to draft. You've done the planning work—you know your story beats, your character arcs, your scene goals—but when you open a blank document, that carefully crafted structure feels distant and unhelpful.
Kindling keeps your outline visible and actionable as you write. Each scene displays its beats as collapsible cards that you can expand to write prose directly beneath them. Your outline becomes the scaffolding for your draft, always present but never in the way.
| Feature | Description |
|---|---|
| Import from popular tools | Plottr (.pltr) or Markdown outlines |
| Scaffolded writing view | Scene beats appear as expandable prompts |
| Rich text prose editor | Write with formatting, auto-save, and beat context |
| Export to DOCX | Standard Manuscript Format with customizable options |
| Distraction-free dark mode | Easy on the eyes for long writing sessions |
| Local-first | Your work stays on your machine in a SQLite database |
| Cross-platform | macOS, Windows, and Linux support |
Download the latest release for your platform from the Releases page:
| Platform | Download |
|---|---|
| macOS (Apple Silicon) | Kindling_*_aarch64.dmg |
| macOS (Intel) | Kindling_*_x64.dmg |
| Windows | Kindling_*_x64-setup.msi |
| Linux | Kindling_*_amd64.AppImage or .deb |
Note: Kindling is not code-signed. You may see security warnings on first launch. See the Installation Guide for instructions on bypassing these warnings.
Prerequisites:
- Node.js 20+
- Rust (stable)
- Platform dependencies: Tauri prerequisites
# 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 buildTrack progress on the project board.
| 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.0-beta | 🔄 In Progress | Additional importers, polish, performance, stability |
See the milestones for detailed breakdowns.
- Frontend: Svelte 5 + Tailwind CSS
- Backend: Rust + Tauri 2.x
- Database: SQLite via rusqlite
- Parsers: Native Rust parsers for Plottr and Markdown
Project Structure
kindling/
├── src/ # Svelte frontend
│ ├── lib/
│ │ ├── components/ # UI components
│ │ ├── stores/ # Svelte 5 state management
│ │ └── types.ts # TypeScript interfaces
│ ├── app.css # Tailwind styles
│ └── App.svelte # Main app component
├── src-tauri/ # Rust backend
│ ├── src/
│ │ ├── commands.rs # Tauri IPC handlers
│ │ ├── db/ # SQLite schema & queries
│ │ ├── models/ # Data structures
│ │ └── parsers/ # Import parsers
│ └── tauri.conf.json # Tauri configuration
└── package.json
Kindling maintains high test coverage standards to ensure code quality and prevent regressions.
| Metric | Minimum | Current |
|---|---|---|
| Statements | 95% | 95%+ |
| Branches | 65% | 65%+ |
| Functions | 98% | 98%+ |
| Lines | 95% | 95%+ |
CI will fail if coverage drops below these thresholds. New code must include appropriate tests.
# Frontend tests with coverage
npm test -- --coverage
# Rust tests
cd src-tauri && cargo test
# Run all checks (lint, format, types, tests)
npm run check:allCoverage reports are uploaded as artifacts on every CI run and can be viewed in the GitHub Actions workflow summary.
Contributions are welcome! Please read the Contributing Guide before submitting a PR.
Looking for a place to start? Check out issues labeled good first issue.
If Kindling is useful to you, consider supporting its development:
Your sponsorship helps keep Kindling free and open source. See the sponsor tiers for perks.
MIT — free for personal and commercial use.
Made with ☕ for writers who plan before they write.
