TL;DR
Threlmark’s approach makes local disk storage the ultimate authority—no databases, no cloud. This design improves speed, portability, and collaboration, especially in offline scenarios. It’s a game-changer for building resilient, AI-friendly tools.
Imagine working on a project where your data isn’t locked inside a cloud or a database. It’s right there on your disk, just like a physical notebook you can open, read, and edit. That’s the core idea behind Threlmark’s local-first architecture — it treats the disk as the single source of truth, making everything simple, fast, and resilient. Learn more about Threlmark’s architecture.
This approach might sound old-school, but it’s actually a powerful shift. No servers, no fancy sync layers — just files. And those files tell the whole story. Today, I’ll show you how this design works, why it’s a game-changer, and what it means for anyone building complex apps or managing multiple projects offline and online. Discover more about local-first systems.
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.
NEWQ 2TB External Hard Drive for iPhone, USB-C & Lightning Compatible Photo Storage Device, One-Click Backup Photos/Videos to Free Up Phone Space, Offline Transmission Support, No Computer Required
2TB Large Capacity One-Click Backup, Instantly Free Up Your Phone Storage: Running out of phone storage often forces…
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.
![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.
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.

Real-World Android App Projects with Kotlin and Jetpack Compose: Build Production-Style Android Apps with Modern Architecture, API Integration, State Management, Local Data Storage, Practical Projects
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
- Treat the disk as the contract: plain JSON files are the single source of truth, making data transparent and portable.
- Use one file per item to enable safe, concurrent updates without locking or complex merge conflicts.
- Atomic writes and tolerant merging keep your data safe and forward-compatible, even with manual edits.
- The self-healing board architecture ensures consistency without manual sync, perfect for offline workflows.
- This approach simplifies collaboration, reduces dependencies, and opens the door to AI automation.
Why the Disk Is the Single Source of Truth in Threlmark
Threlmark’s bold move is to let the disk be the contract — the ultimate authority. Instead of a database or cloud service, all data lives in plain JSON files. This makes the system incredibly transparent and flexible. You can open any file, see the exact state, and even tweak it manually if needed. Read more about disk as the contract.
For example, every roadmap card is a separate file in the `items/` folder. When you move a card, you just update that one file. No need for complex locking or transactions. This simplicity means you can work offline, in any environment, and still trust your data as the definitive version.
According to Threlmark’s creator, this approach reduces bugs, improves interoperability, and ensures your data is always portable — just copy the folder or sync it with Dropbox or git, and you’re done. No vendor lock-in, no special SDKs, just plain files.

How Threlmark’s File Layout Supports Seamless Collaboration
The layout isn’t just a random collection of files. It’s a carefully designed contract. At the root, you find `threlmark.json` and `links.json`. Each project has its own folder with `project.json`, `board.json`, and one file per card in `items/`. Shared cards, suggestions, handoffs, and reports all get their own dedicated folders. Explore more on file layout for collaboration.
Imagine working on a multi-team project. Each team updates their own card files. When you open Threlmark, it reads all those files, sees what’s missing or out of sync, and automatically heals the board. No conflicts, no lost updates, no complicated merge conflicts.
This self-healing design makes it easy to integrate external tools or even manually edit files. You can trust that the system always reflects the true state of your work — because the files themselves are the truth.
Why One File per Item Beats a Big Array of Cards
Instead of a single `roadmap.json` with all cards listed inside, Threlmark uses one file per item. This tiny change drastically improves concurrency. Multiple external tools can update different cards simultaneously without clobbering each other.
For example, if you’re working on a big feature, you might update its file while a teammate updates another. Because each update is atomic, there’s no race condition. The `items/` folder becomes a collection of tiny, independent files that always stay consistent.
And if a card gets deleted, just remove the file. The system automatically recognizes missing files as completed or archived items during the next read. It’s like a living, breathing collection of tiny notebooks, each representing a single idea or task.

Making the System Safe: Atomic Writes and Tolerant Merging
Working with files might sound risky, but Threlmark takes careful steps to keep everything safe. Every write to a file happens through an atomic process: write to a temp file and then rename it. This way, crashes or interruptions leave your data intact. Learn about safe file operations.
When updating a card, Threlmark reads the current file, merges changes, and writes back. It preserves important fields like `id` and `createdAt`, updates timestamps, and keeps unknown data untouched. This tolerant merge ensures forward compatibility.
For example, if a newer tool adds a new field, older tools will ignore it but won’t destroy it. The data just grows naturally, like a conversation that never loses its context.
How the Board Self-Heals and Keeps Everything in Sync
The lane order isn’t stored as a big list. Instead, it lives in `board.json` as ordered IDs. When you load the board, Threlmark cross-checks the actual item files and fixes any discrepancies. Missing items disappear from the view, and new ones show up automatically.
This self-healing makes the entire system resilient. If someone deletes a card manually or an external tool adds a new one, the board updates itself on the next read. No manual sync needed — just trust the files.
Imagine a team working across different devices. They add, move, or archive tasks. The system keeps everything consistent, regardless of interruptions or concurrent edits.

The Power of Portable, Interoperable Data
Because everything is plain JSON files, your data is inherently portable. You can back it up, version it, or migrate it with simple file operations. No proprietary database or cloud service locks you in. See how portable data supports remote work.
Need to move your project to a different machine? Just copy the entire folder. Want to integrate with another tool? Read and write the files directly.
This flexibility is a core advantage, especially for teams working across multiple environments or needing offline-first reliability.
Real-World Example: How Threlmark Supports a Remote Team
Picture a remote team using Threlmark on their laptops, tablets, and desktops. Each member edits their parts locally, updating individual item files. When they sync, the system reconciles all changes seamlessly.
One developer adds a new feature card while another archives an old task. Threlmark reads all the files, heals inconsistencies, and updates the board instantly. No server needed, no conflicts — just a shared folder.
This setup proves that local-first isn’t just theoretical. It’s practical, empowering teams to stay productive regardless of network conditions.

What’s Next? How to Build Your Own Disk-First App
If you’re inspired, here are the key steps to start:
- Design a folder structure where each piece of data gets its own file.
- Implement atomic file writes to prevent corruption.
- Use tolerant merge strategies to update files without losing unknown data.
- Create self-healing read functions that reconcile files and fix inconsistencies.
- Build your UI to read from and write to these files directly, avoiding complex databases.
Want to see how Threlmark does it? Check out their codebase on GitHub or try their demo at threlmark.com. The principles are simple, but the impact is profound.
Frequently Asked Questions
What does ‘disk is the contract’ really mean?
It means that all data lives in plain files on your disk, and these files are the definitive source of truth. No databases or cloud services are needed; the files themselves tell the entire story of your project.How does Threlmark handle conflicts when multiple tools update files simultaneously?
Threlmark uses one file per item with atomic writes. This setup prevents race conditions. Updates merge intelligently, preserving unknown data and updating timestamps, ensuring consistency even during concurrent edits.Can I manually edit the files without breaking the system?
Yes. Threlmark’s tolerant merge strategy preserves unknown keys and defaults missing fields. Manual edits won’t break the data, and the system will reconcile changes on each read, keeping everything in sync.What are the benefits of this approach over traditional databases?
Files are portable, inspectable, and lock-free. You can back them up or migrate easily. Plus, it’s resilient offline, simple to understand, and compatible with any tool that can read/write JSON.Is this approach suitable for large teams or complex projects?
Absolutely. Using one file per item scales well, and the self-healing architecture keeps everything consistent. It’s especially useful for distributed teams working across multiple devices or slow networks.Conclusion
Threlmark’s local-first architecture turns your disk into the ultimate project hub. It’s a simple idea with big implications: your data, always accessible, always trustworthy, ready for AI-powered workflows.
If you want to build resilient, collaborative tools that work offline and online, starting with a disk as the contract might just be the smartest move you make. Your future self will thank you — and the next time you look at a folder full of JSON files, you’ll see a tiny universe of possibility.