Local First
The thesis behind keeping project state in the repo, as files.
Most project trackers put your work somewhere else: a database behind an API, rented by the seat. Lovelace makes a different bet: the best place for a software project’s tickets, documents and history is inside the project, as files.
Coding agents already live here
Agents work in the filesystem and in Git. When the tickets, the documents and the session records are also files in the repo, the agent has full project context natively. No integration to maintain, no API to authenticate against. A fresh session can read the documentation tree, the current ticket and recent sessions before it touches code, and start meaningfully smarter.
Git is the coordination layer you already trust
Tickets change in commits, next to the code they describe. That gives you history, review, branching and blame for your project management for free: the same tools, the same workflow. The board is just a view; the commits are the record.
Custom fields are data, not code
Ticket fields are defined per ticket type in schema.yaml: name, type, allowed
values, whether required. The validator, the indexer, the MCP server and the app’s
forms all read those definitions at runtime. Add a field and the form rebuilds
itself. There is no schema migration because there is no schema server.
You can always reach in by hand
Editing the Markdown directly is a supported path, never a corruption risk the system can’t recover from. The app and MCP server are the ergonomic, validated interfaces, not gatekeepers. Malformed input produces a clear error pointing at a file and line, never a silent repair and never a crash.
What you give up, on purpose
Lovelace v1 is deliberately scoped to a solo developer: no multiplayer, no sync, no web views, and each project is one repository. The reward is software with no moving parts you can’t see: no server to run, no account to manage, no telemetry, and nothing between you and your files.