TL;DR
Threlmark builds a project management tool where the disk is the record. Its local-first, file-based design makes data transparent, portable, and safe, while enabling seamless multi-tool collaboration and AI automation.
Imagine a project tool that’s so simple, it runs entirely from a folder full of JSON files on your desktop. No cloud, no server, no locked-in database. Just your data, plain and clear. That’s what Threlmark does, and it’s a game-changer for anyone tired of siloed, fragile project management systems.
This article pulls back the curtain on its architecture. You’ll learn why “disk is the contract” isn’t just a buzzword — it’s a radical shift in how to build reliable, flexible apps that work everywhere, offline or online. If you’re curious how a simple file layout can power complex AI workflows, keep reading. This is about smarter, safer data — on your terms.
Disk is the contract: inside a local-first roadmap hub
A Next.js app on top of plain JSON files — no database, no cloud, no accounts. The key decision: the on-disk layout IS the API. Everything else cascades from taking that seriously.
There is no server-of-record — the files are the record
The UI and any external tool reach the same files through the same discipline. The data root defaults to ~/.threlmark — home-based, because it’s a shared hub every one of your apps points at.
Inspectable
Every artifact is a file you can cat, diff, grep, commit.
Portable · no lock-in
Back up with cp, sync with Dropbox / git, migrate trivially.
Interoperable
Any tool in any language joins by reading / writing files.
Restartable
No in-memory state to lose — stateless over the files.

SANDISK 1TB Extreme Portable SSD (Old Model) – Up to 1050MB/s, USB-C, USB 3.2 Gen 2, IP65 Water and Dust Resistance, Updated Firmware – External Solid State Drive – SDSSDE61-1T00-G25
Get NVMe solid state performance with up to 1050MB/s read and 1000MB/s write speeds in a portable, high-capacity…
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
Two disciplined patterns instead of a database
“Just use files” is easy to get wrong. These two patterns — ported from a battle-tested sibling app — are what make file-based state sound rather than reckless.
Atomic writes
Write to a temp file in the same dir, then rename() over the target. Rename is atomic on one filesystem — a crash mid-write leaves the complete old file or the complete new one, never a half.
The board heals itself
A single roadmap.json array races when two tools write at once. One file per card makes writes collision-free. Lane order lives in board.json and reconciles on read.
board.json. It writes an item file — the board fixes itself on Threlmark’s next read. Unknown keys are preserved, so the contract is forward-compatible.![Free Fling File Transfer Software for Windows [PC Download]](https://m.media-amazon.com/images/I/41Vq6ZqHfjL._SL500_.jpg)
Free Fling File Transfer Software for Windows [PC Download]
Intuitive interface of a conventional FTP client
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
The numbers can’t drift from the files
Anything computable from item state is computed — so the displayed numbers can never disagree with the underlying JSON. Priority is the clearest example: it’s calculated on read, never persisted.
priority — computed on read
Impact weighted heaviest; effort the only axis that subtracts. Reused verbatim from the original tool, so imported cards rank identically.

Contemporary Project Management (MindTap Course List)
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
A handoff is a first-class flow event
The genuinely 2026-shaped part: most building is done by AI agents, so Threlmark closes the loop. Watch a card go from ranked to Done without anyone dragging it.
Handoff → report → self-move
The brief carries a reporting protocol. The agent reports through REST or the filesystem — and a done report moves the card itself.
POST /api/projects/:id/
items/:itemId/reportDirect call. Applied immediately.
drop reports/.json
→ ingested on read Robust even if the server’s down at finish time.

Nero BackItUp – Data Backup Software | Automatic Backup, Data Recovery, Cloud Backup, Fully Automated | Lifetime License | 1 PC | Windows 11/10/8/7
✔️ One-time Payment, Lifetime Use: Unlike subscription-based services, pay once and enjoy lifetime use without recurring costs.
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
A small formula, and an honest hosting caveat
Because items are globally addressable (), the Portfolio ranks everything together by a status-weighted score — finishing beats starting, blockers get a boost.
Portfolio ranking — status-weighted
In-flight work floats to the top; bottlenecks cost the most, so blockers get nudged up.
Static read-only demo
Seeded data, writes to localStorage. Try-before-you-clone.
Personal Node instance
Password-gated, persistent backed-up THRELMARK_DATA_DIR.
Multi-tenant SaaS
Add accounts + per-tenant isolation. A separate build.
src/lib/*/store.ts is the natural seam — the same boundary that keeps the local tool simple is the one you’d extend for multi-tenancy. The architecture doesn’t fight that future; it just doesn’t pay for it until you need it.
Key Takeaways
- Design your app so the on-disk files *are* the API — simple, transparent, and extendable.
- Use one JSON file per item with atomic write patterns to prevent corruption and conflicts.
- Leverage tolerant merging to evolve data formats without breaking existing tools.
- Build self-healing views that reconcile filesystem state on each load for accuracy.
- External tools and AI agents can participate effortlessly by just reading/writing files.
What does ‘disk is the contract’ really mean?
At its core, ‘disk is the contract’ means that your app’s entire data state lives in files that are both the source of truth and the interface. Think of it like a shared document everyone can edit, trust, and extend. Threlmark’s files aren’t just storage — they’re the API, the data, and the collaboration layer wrapped into one.
For example, each project card lives as a separate JSON file in `items/`. When you open your app, it reads those files. When you update a card, it writes a new file atomically. No database, no complicated synchronization protocol, just plain files that any tool can read or write.

How file-per-item architecture keeps data safe and flexible
Using one JSON file per item might sound primitive, but it’s a masterstroke for safety. Each write is atomic, meaning it either completes or doesn’t happen at all. You never get corrupted data, even if your system crashes mid-save.
Plus, this setup makes it super easy to merge changes. If two tools update different cards simultaneously, they won’t overwrite each other. Instead, they write their own files, and the system can reconcile differences later.
Take, for example, how Threlmark handles concurrency: when a user drags a card to a new lane, it updates a single file. Meanwhile, an AI agent might add a comment to a different card. Both actions are atomic, safe, and easy to track.
Why the on-disk layout acts as the API — not just storage
In Threlmark, the folder structure isn’t just storage; it’s the way external tools interact. The manifest (`threlmark.json`) declares the system, while each project’s `project.json`, `board.json`, and item files describe the current state. This means anyone can extend or automate the system just by reading or writing files. Learn more about local-first architecture.
For instance, an AI assistant can scan `items/`, find cards marked as ‘next’, and move them to ‘done’ by simply editing a file. No special APIs, no server calls. The format is stable, predictable, and human-readable.

How making state restartable keeps your data safe and portable
Since all state lives in files, Threlmark can restart instantly. No in-memory database to worry about. Just reload files, and everything is back. This makes backups and migrations trivial — copy a folder, and you clone your entire system.
Imagine handing your project folder to a new laptop. Everything, including your AI workflows and shared cards, just works. No complicated export or sync — just a copy-and-run approach.
This simplicity is powerful. It means your data isn’t locked into a proprietary database. It’s transparent, portable, and resilient against crashes.
How atomic writes and tolerant merging make your data safe
Threlmark employs two key patterns to keep data safe. First, **atomic writes**: files are written to a temporary file and then renamed. This guarantees that you never see a half-written or corrupted file.
Second, **tolerant merging**: when updating a file, the system reads the current version, merges in changes, and writes back. It preserves unknown fields and defaults missing ones, making future updates seamless and forward-compatible.
For example, if a new feature adds a `priority` field to cards, older tools ignore it, and newer tools preserve it even if the old code doesn’t recognize it. This flexibility is essential for evolving systems.

How self-healing boards keep your project view accurate
Threlmark’s `board.json` lists items per lane. But it doesn’t just store static order — it **self-heals** on read. Every time you open your project, the system compares the board with actual item files.
If a card was deleted or moved outside the interface, the system detects and corrects discrepancies. This prevents stale or broken views, keeping your project clean and reliable.
Imagine dragging a card into a new lane. The system updates `board.json`, but if someone deletes that card from `items/`, the next time you load, it’s gone from the view, no manual cleanup needed.
How external tools and AI agents can participate effortlessly
Because the data is just files, any tool can join the party. Want to automate task creation? Just write a new JSON file in `items/`. Need to move a card? Edit the relevant file. Discover how disk as the contract enables seamless automation.
AI agents, like those integrated with Threlmark, can scan files, analyze priorities, and update cards without special APIs. They operate by reading and writing files — simple, universal, and safe.
For example, an AI could automatically mark high-priority bugs as ‘done’ after a test run, by just changing a file in the filesystem. No server, no API, just file manipulation.

What it takes to build your own disk-is-the-contract app
If you want to follow Threlmark’s approach, start with a clear directory layout: a manifest, project folders, and one JSON per item. Use atomic write techniques — write to a temp file, then rename. Check out more on local-first systems.
Implement tolerant merging that preserves unknown fields and defaults missing ones. Make your system self-healing by reconciling views with actual files on every read.
And remember: keep everything stateless over the filesystem. Your app should just read, merge, and write files, avoiding complex in-memory state.
When ‘disk is the contract’ isn’t the right choice
While this approach is powerful, it’s not always perfect. For apps needing real-time collaboration with low latency, or where data must be synced across many devices instantaneously, a more traditional server-based system might suit better. Learn about home theater and AV setup tips for related tech insights.
It also demands discipline: everyone must follow the same file structure and merging rules. If your team isn’t on board, chaos can follow.
So, assess your needs carefully. For solo projects, offline work, or transparent workflows, this is gold. For high-frequency multi-user apps, consider hybrid approaches.
Frequently Asked Questions
What does ‘disk is the contract’ mean in plain English?
It means your app’s data lives in files that are both the source of truth and the way external tools interact. The files themselves define how the app works, making everything transparent and simple.How is local-first different from offline-first?
Local-first means the app always works from local data, even when online. Offline-first emphasizes working offline and syncing later. Local-first is about the design priority, while offline-first is a feature that follows.What happens when two devices edit the same data?
Because each change is a separate file and updates are atomic, conflicts are minimized. When conflicts occur, the system can reconcile by merging or prompting the user, depending on complexity.How do apps handle sync failures or conflicts?
Threlmark’s approach makes conflicts rare. When they happen, the system’s tolerant merging preserves unknown fields, and self-healing views keep the project accurate. Manual intervention is rare.What data lives on the device vs. the server?
All your project data lives locally in JSON files. The server’s role is mainly for sync, backups, and collaboration, not as the primary data store.Conclusion
Threlmark’s local-first architecture proves that simplicity and transparency can power complex workflows. By making the disk the contract, you gain safety, portability, and interoperability — all without a single database or server.
Imagine your next app running flawlessly from a folder full of JSON files, ready for any tool, any device, any AI. That’s the power of a system built on trust in the humble file.
