|
| 1 | +# Ironpad |
| 2 | + |
| 3 | +**A local-first, file-based project & knowledge management system.** |
| 4 | + |
| 5 | + |
| 6 | + |
| 7 | + |
| 8 | + |
| 9 | + |
| 10 | + |
| 11 | +Ironpad stores all your notes, projects, and tasks as plain Markdown files. No cloud services, no vendor lock-in -- your data stays on your machine in a format you can read and edit with any text editor. Every change is automatically versioned with Git. |
| 12 | + |
| 13 | + |
| 14 | + |
| 15 | +> **v0.1.0 -- Early Release.** This is the first public release. It's functional and we use it daily, but expect rough edges. Bug reports and feature requests are welcome via [Issues](https://github.com/OlaProeis/ironPad/issues). |
| 16 | +
|
| 17 | +--- |
| 18 | + |
| 19 | +## Features |
| 20 | + |
| 21 | +- **File-based storage** -- All data stored as Markdown files with YAML frontmatter |
| 22 | +- **Local-first** -- Works fully offline, no internet required |
| 23 | +- **Git integration** -- Automatic version control with 60-second commit batching, full diff viewer, push/fetch |
| 24 | +- **WYSIWYG editing** -- Milkdown editor with real-time markdown rendering and formatting toolbar |
| 25 | +- **Project management** -- Organize tasks and notes by project with due dates, tags, subtasks, and recurrence |
| 26 | +- **Calendar view** -- Month grid showing tasks by due date with color-coded urgency |
| 27 | +- **Dashboard** -- Cross-project overview with active task summaries |
| 28 | +- **Daily notes** -- Quick capture with templates for daily journaling |
| 29 | +- **Real-time sync** -- WebSocket-based live updates; edit in VS Code, see changes in the browser instantly |
| 30 | +- **External editing** -- Full support for VS Code, Obsidian, Vim, or any text editor |
| 31 | +- **Search** -- ripgrep-powered full-text search across all files (Ctrl+K) |
| 32 | +- **Dark theme** -- Beautiful dark UI by default with light mode toggle |
| 33 | +- **Tiny footprint** -- 5 MB binary, ~20 MB RAM, sub-second startup |
| 34 | + |
| 35 | +## Quick Start |
| 36 | + |
| 37 | +### Option 1: Download Release (Recommended) |
| 38 | + |
| 39 | +1. Download the latest release for your platform from [Releases](https://github.com/OlaProeis/ironPad/releases) |
| 40 | +2. Extract and run the executable |
| 41 | +3. Your browser opens automatically -- start using Ironpad |
| 42 | + |
| 43 | +Data is stored in a `data/` folder next to the executable. To use a custom location, set the `IRONPAD_DATA_DIR` environment variable. |
| 44 | + |
| 45 | +### Option 2: Build From Source |
| 46 | + |
| 47 | +**Prerequisites:** [Rust](https://rustup.rs/) (1.70+), [Node.js](https://nodejs.org/) (18+), [Git](https://git-scm.com/) |
| 48 | + |
| 49 | +```bash |
| 50 | +# Clone the repository |
| 51 | +git clone https://github.com/OlaProeis/ironPad.git |
| 52 | +cd ironPad |
| 53 | + |
| 54 | +# Start the backend |
| 55 | +cd backend |
| 56 | +cargo run |
| 57 | + |
| 58 | +# In a new terminal, start the frontend |
| 59 | +cd frontend |
| 60 | +npm install |
| 61 | +npm run dev |
| 62 | +``` |
| 63 | + |
| 64 | +Open http://localhost:5173 in your browser. |
| 65 | + |
| 66 | +## Tech Stack |
| 67 | + |
| 68 | +| Component | Technology | |
| 69 | +|-----------|------------| |
| 70 | +| Backend | Rust, Axum 0.8, Tokio | |
| 71 | +| Frontend | Vue 3, Vite, TypeScript | |
| 72 | +| Editor | Milkdown (ProseMirror-based) | |
| 73 | +| State | Pinia | |
| 74 | +| Routing | Vue Router | |
| 75 | +| Data | Markdown + YAML frontmatter | |
| 76 | +| Version Control | Git (via git2) | |
| 77 | +| Search | ripgrep | |
| 78 | + |
| 79 | +## Roadmap |
| 80 | + |
| 81 | +Ironpad is under active development. Here's what's planned: |
| 82 | + |
| 83 | +- [ ] UI polish and animations |
| 84 | +- [ ] Tag extraction and filtering across projects |
| 85 | +- [ ] Backlinks between notes |
| 86 | +- [ ] Graph view of note connections |
| 87 | +- [ ] Export to PDF / HTML |
| 88 | +- [ ] Custom themes |
| 89 | +- [ ] Global hotkey (Ctrl+Shift+Space) |
| 90 | +- [ ] System tray mode |
| 91 | +- [ ] Kanban board view for tasks |
| 92 | + |
| 93 | +See [CHECKLIST.md](docs/ai-workflow/CHECKLIST.md) for detailed implementation status. |
| 94 | + |
| 95 | +## Built With AI |
| 96 | + |
| 97 | +This entire application was built using AI-assisted development -- an approach we call **Open Method**. We share not just the code, but the complete process: the PRD, task breakdowns, handover documents, and workflow artifacts. |
| 98 | + |
| 99 | +Read about the method: |
| 100 | +- [The AI Development Workflow I Actually Use](https://dev.to/olaproeis/the-ai-development-workflow-i-actually-use-549i) -- The original workflow article |
| 101 | +- [docs/ai-workflow/](docs/ai-workflow/) -- Documentation of the AI-assisted development process used to build Ironpad |
| 102 | + |
| 103 | +**Tools used:** Cursor IDE, Claude Opus 4.5/4.6, Context7 MCP |
| 104 | + |
| 105 | +## Configuration |
| 106 | + |
| 107 | +| Setting | Default | Description | |
| 108 | +|---------|---------|-------------| |
| 109 | +| Data directory | `data/` next to executable | Override with `IRONPAD_DATA_DIR` env var | |
| 110 | +| Backend port | 3000 (auto-increments to 3010) | Dynamic port selection | |
| 111 | +| Auto-commit | Every 60 seconds | Git commits when changes exist | |
| 112 | +| Auto-save | 1 second debounce | Frontend saves after typing stops | |
| 113 | + |
| 114 | +## Documentation |
| 115 | + |
| 116 | +| Document | Description | |
| 117 | +|----------|-------------| |
| 118 | +| [docs/API.md](docs/API.md) | Complete REST API reference | |
| 119 | +| [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) | System design and technical details | |
| 120 | +| [docs/ai-workflow/](docs/ai-workflow/) | AI development workflow and methodology | |
| 121 | + |
| 122 | +## Contributing |
| 123 | + |
| 124 | +This is an early release and contributions are welcome! |
| 125 | + |
| 126 | +1. Check [Issues](https://github.com/OlaProeis/ironPad/issues) for open bugs and feature requests |
| 127 | +2. Create a branch for your feature/fix |
| 128 | +3. Follow the code style (`cargo fmt` for Rust) |
| 129 | +4. Test your changes thoroughly |
| 130 | +5. Submit a pull request |
| 131 | + |
| 132 | +## License |
| 133 | + |
| 134 | +[MIT License](LICENSE) |
| 135 | + |
| 136 | +## Acknowledgments |
| 137 | + |
| 138 | +- [Milkdown](https://milkdown.dev/) -- WYSIWYG Markdown editor |
| 139 | +- [Axum](https://github.com/tokio-rs/axum) -- Rust web framework |
| 140 | +- [Vue.js](https://vuejs.org/) -- Frontend framework |
| 141 | +- [Pinia](https://pinia.vuejs.org/) -- State management |
| 142 | +- [Anthropic Claude](https://www.anthropic.com/) -- AI-assisted development |
0 commit comments