# ROADMAP

# Sapling Roadmap

This roadmap defines the major milestones required to transform Sapling from a prototype into a production-ready Git-native Markdown workspace.

The roadmap focuses on delivering complete user workflows rather than isolated technical features.

---

# Vision

Sapling is a local-first, open-source, Git-native Markdown workspace.

Users should be able to:

- Write documents
- Organize knowledge
- Manage projects
- Version their work
- Synchronize through Git
- Own their data

without relying on proprietary services.

---

# Milestone 0 — Foundation

Status: Complete

Goal:

Create a buildable application with a stable architecture and development workflow.

Deliverables:

- Project scaffolding
- Shared macOS / iOS architecture
- Core domain models
- Dependency injection
- Settings system
- Logging infrastructure
- Automated formatting and linting

Success Criteria:

- Application builds and launches
- Core modules communicate correctly
- Development workflow is stable

---

# Milestone 1 — Editor Prototype

Status: Planned

Goal:

Validate Sapling's most important feature: the editing experience.

Deliverables:

- File tree sidebar
- Document opening
- Document saving
- Markdown editor
- Keyboard navigation
- Undo / redo
- Syntax highlighting

Research:

Investigate implementation options:

- SwiftUI TextEditor
- NSTextView
- UITextView
- Custom text engine

Success Criteria:

- Comfortable editing experience
- Able to write and edit long documents
- No major cursor or selection issues

---

# Milestone 2 — Hybrid Markdown Editing

Status: Planned

Goal:

Implement Sapling's signature editing experience.

Behavior:

- Current line displays Markdown source
- Non-active lines display rendered content
- Editing feels seamless

Supported Elements:

- Headings
- Emphasis
- Links
- Lists
- Task lists
- Code blocks

Success Criteria:

- Writing feels faster than traditional split-view editing
- Rendering updates in real time
- Cursor behavior remains intuitive

---

# Milestone 3 — Rendering Engine

Status: Planned

Goal:

Provide high-quality Markdown rendering.

Deliverables:

- Full Markdown support
- Syntax-highlighted code blocks
- Tables
- Callouts
- Footnotes
- Wikilinks

Additional Support:

- LaTeX
- Mermaid diagrams
- Image rendering

Success Criteria:

- Most Obsidian-style documents render correctly
- Rendering performance remains smooth

---

# Milestone 4 — Workspace Management

Status: Planned

Goal:

Introduce Sapling's organizational model.

Deliverables:

- Workspace creation
- Folder management
- File management
- Project management
- Drag and drop support

Concepts:

- Workspace
- Project
- Folder
- Document
- Attachment

Success Criteria:

- Users can organize real-world projects
- Workspace structure feels natural

---

# Milestone 5 — Git Foundation

Status: Planned

Goal:

Introduce Git as a first-class concept.

Deliverables:

- Repository initialization
- Repository opening
- Repository status
- Commit creation
- History viewing

User Language:

Prefer:

- Snapshot
- Changes
- History

Instead of exposing Git terminology everywhere.

Success Criteria:

- Users can version documents without using a terminal

---

# Milestone 6 — Attachments

Status: Planned

Goal:

Support rich project assets.

Deliverables:

- Image attachments
- Drag and drop import
- Automatic link generation
- Attachment browser

Future Support:

- PDFs
- Audio
- Video
- Design assets

Success Criteria:

- Attachments integrate naturally into documents

---

# Milestone 7 — Git Collaboration

Status: Planned

Goal:

Support synchronization and collaboration.

Deliverables:

- Remotes
- Push
- Pull
- Fetch
- Branch creation
- Branch switching

Success Criteria:

- Projects can be synchronized across machines
- Basic collaboration workflows are supported

---

# Milestone 8 — Git LFS

Status: Planned

Goal:

Support large project assets.

Deliverables:

- Git LFS initialization
- Automatic asset tracking
- LFS status indicators

Success Criteria:

- Large attachments work reliably
- Repository portability is maintained

---

# Milestone 9 — Subprojects

Status: Planned

Goal:

Support modular project composition.

Implementation:

- Git submodules

Deliverables:

- Add subproject
- Remove subproject
- Update subproject
- Browse subproject contents

Success Criteria:

- Nested repositories behave naturally
- Complex knowledge structures are possible

---

# Milestone 10 — macOS Release Candidate

Status: Planned

Goal:

Prepare Sapling for public use.

Deliverables:

- Performance optimization
- Accessibility review
- Documentation
- Settings UI
- Error handling
- Migration support
- Packaging and distribution

Success Criteria:

- Daily-driver quality
- Stable for real projects

---

# Future Exploration

Potential features after v1.0:

- iOS application
- Plugin system
- Custom themes
- Command palette
- Workspace templates
- Advanced graph views
- Repository health checks
- Knowledge publishing workflows
- Alternative Git backends

---

# Guiding Principle

The editor is the product.

Git is infrastructure.

Every milestone should improve the writing and knowledge-management experience first.
