TL;DR
Threlmark treats disk storage as the single source of truth, allowing offline use, easy portability, and seamless integration with external tools. This approach reduces complexity and boosts resilience in project management.
Imagine a project management tool that works perfectly offline, stays lightning-fast, and never locks you into a single vendor or platform. That’s the promise of Threlmark’s architecture. It’s a bold twist on how we usually think about data—here, the disk isn’t just a storage medium; it’s the contract, the API, and the backbone of the entire system.
This isn’t just about saving files. It’s about rethinking how tools communicate, how data flows, and how external apps can participate without permission slips or complex integrations. In this article, you’ll see how treating disk as the single source of truth unlocks new levels of simplicity, resilience, and openness.
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.
HEARTSINE DATA MANAGEMENT SOFTWARE
Part Number: PAD-ACC-02
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.
JSON file editor for project management
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.

Offline-First Apps: Mastering Progressive Web Apps (PWA): Build fast, reliable web applications that work anytime, anywhere (even without internet)
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.
Why Making Disk the Single Source of Truth Changes Everything
In Threlmark, the disk isn’t just a backup or storage layer. It’s the contract that all tools, users, and AI agents rely on. This means your files, not a database, define what’s true. When you open Threlmark, it reads from `~/.threlmark`, pulling in JSON files that describe every project, task, and relationship.
For example, each project has its own folder with a `project.json`, while each task or card lives as an individual file in `items/`. No centralized database, no API server. Just files. This approach simplifies things: you can open a terminal, `cat` a file, and see exactly what’s stored. Want to migrate? Just copy the folder. Need to debug? Diff the files. It’s transparency on steroids.
According to Threlmark creator Thorsten Meyer, this design ensures that all external tools can join in—no API keys, no special permissions. They just read and write files, making the system open and flexible. That’s a game-changer for multi-tool workflows and collaborative projects.

How Threlmark’s File Layout Acts as a Contract — No Lock-In
Threlmark’s folder structure is more than organization; it’s a contract that guarantees everyone sees the same picture. At the root, you find `threlmark.json` for the overall setup, and `links.json` for dependencies. Each project lives in its own folder with files like `project.json`, `board.json`, and individual item files in `items/`.
Shared cards are stored under `shared/items/`, and old projects go into `archive/`. External suggestions land in `suggestions/`, and reports from AI agents go into `reports/`. Every file can be inspected, diffed, and backed up. No special database schema, no proprietary API—just files.
This structure ensures that data remains portable, open, and easily migrated. Want to switch to another tool? Copy the entire folder. Need to audit? Diff the files. This openness removes vendor lock-in and lets your workflow evolve naturally.
Making File Updates Safe and Atomic — No Corruption Risks
Using files as a database sounds risky—crashes, partial writes, data corruption. Threlmark avoids this with two key patterns: atomic writes and tolerant merge. When updating a file, it first writes to a temporary file, then renames it. Because `rename()` is atomic on the filesystem, it guarantees no corruption occurs—even during crashes.
For example, updating a task involves reading the current file, merging in changes, then atomically replacing it. This way, external tools can update individual cards without risking race conditions or partial states. It’s a simple, reliable way to keep data consistent.
Thorsten Meyer emphasizes that this pattern makes file-based state just as safe as a database—without the complexity.

One File Per Card — How It Solves Concurrency and Keeps Things Simple
Imagine editing a big JSON array for your roadmap. Every change risks overwriting others or causing conflicts. Threlmark solves this by storing each card in its own file, like `items/
Lane order? Stored in `board.json` as ordered lists of IDs. The clever trick: every time you read `board.json`, Threlmark reconciles it against actual items, healing any inconsistencies. If a card is deleted but still listed in the lane, it quietly drops out on read.
During collaboration, this approach minimizes race conditions, simplifies conflict resolution, and keeps the data model lean. It’s a practical way to avoid locking mechanisms and keep external integrations straightforward.
Flow and External Tools: How the Architecture Supports AI and Collaboration
Threlmark isn’t just a static tracker. Its architecture encourages external tools and AI agents to participate naturally. External apps can add suggestions, move cards, and report back, all by writing files into specific folders.
For example, an AI agent can scan the `suggestions/` folder for new ideas, pick one, update the corresponding item file, then move it to `reports/` after completing the work. This loop happens seamlessly because everything is just files.
By making the data open and the process stateless, Threlmark allows AI agents to close their own loops—making automation more reliable and flexible. The result? A system that evolves with your tools, not against them.

What You Can Do Today — Practical Tips for Adopting a Disk-First Mindset
- Start by organizing your data as JSON files in a dedicated folder. Think of it as your system’s brain—not just backup, but the actual source of truth.
- Use `rename()`-style atomic writes for all updates to prevent corruption, especially if you’re dealing with multiple tools or scripts.
- Design your app or tools to read, merge, and write individual files rather than entire arrays or databases. This keeps concurrency simple.
- Leverage open formats and folder structures to make migration, debugging, and external tool integration straightforward.
- Encourage external scripts or AI agents to participate by simply reading and writing files, no permissions or APIs needed.
Key Takeaways: How Threlmark’s Design Inspires New Ways to Build Tools
- The disk is the contract—files are the API, making data transparent, portable, and lock-in free.
- One file per item simplifies concurrency, reduces conflicts, and enables external tools to operate independently.
- Atomic file writes prevent corruption, even during crashes, ensuring system reliability.
- Reconciliation on read keeps the system consistent without locks or complex sync protocols.
- Open formats and folder structures foster collaboration, automation, and migration—future-proofing your workflows.
Frequently Asked Questions
What does ‘disk is the contract’ mean in practice?
It means that all data interactions happen directly through files on disk, not through a database or API. The files serve as the definitive record, making data transparent, portable, and easy to inspect or migrate.How does Threlmark handle conflicts when multiple tools update the same file?
Threlmark uses atomic writes and merge strategies that prevent corruption. Each item has its own file, so updates are collision-free, and conflicts are minimized. Reconciliation on read helps keep data consistent without locking.Is this approach suitable for large-scale projects?
For very large projects, file-based storage can become unwieldy, but for many collaboration and automation scenarios, it offers unmatched simplicity and resilience. It’s ideal for tools emphasizing openness, portability, and offline-first workflows.How do external AI agents participate without permissions or APIs?
They simply read, write, and move files within designated folders like `suggestions/` and `reports/`. This open approach removes barriers, allowing AI and scripts to integrate effortlessly.What are the main tradeoffs of a disk-first system?
While it simplifies data management and boosts resilience, it requires careful handling of conflicts, versioning, and sync. It’s best suited for scenarios where transparency, portability, and offline work matter most.Conclusion
Thinking of disk as the contract isn’t just a clever trick; it’s a new way to build resilient, open, and flexible software. By treating files as the ultimate authority, you remove complexity, foster collaboration, and set the stage for automation that just works.
Next time you design a tool, ask yourself: could the disk be the API? The answer might just unlock a simpler, smarter future for your projects.
