TL;DR
Threlmark’s architecture treats disk storage as the single source of truth, enabling offline work, easy portability, and conflict-free syncs. This approach simplifies complex workflows and boosts resilience.
Ever wrestled with a project management tool that slows to a crawl when offline? Or one that’s locked behind a cloud service, making your data hard to move? Threlmark flips that script. Its core idea: the disk is the contract. No server dependency, no lock-in, just plain JSON files sitting on your machine.
This isn’t just about storage—it’s a radical shift in how tools handle data flow, collaboration, and resilience. You’ll learn how this simple principle unlocks speed, portability, and collaboration without the usual cloud headaches.
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 2TB 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-2T00-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.JSON file backup storage device
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.
offline project management tool
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.
local-first data synchronization software
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 disk storage as the ultimate source of truth to simplify data flow and increase resilience.
- Use one JSON file per item for collision-free, portable, and mergeable data management.
- Atomic writes prevent partial data corruption, making your system safe during crashes.
- Self-healing structures keep workflows consistent, even if files are manually edited or deleted.
- Layered sync handles conflicts gracefully, preserving data and avoiding lock-in.
What does ‘Disk is the Contract’ really mean?
At its core, ‘disk is the contract’ means the disk storage isn’t just a place to save data—it’s the ultimate source of truth. Every change is written directly to a file, and that file defines what the system knows at any moment. No middle layer, no database, just files that tell the story.
Think of it like a shared notebook. Everyone reads from and writes to the same pages. If the notebook’s pages are JSON files, then the entire system can be understood, migrated, or fixed just by handling those files.
Why does this matter? Because it simplifies the architecture drastically. Without a database layer, there are fewer points of failure, fewer complex synchronization protocols, and more transparency. The tradeoff is that you handle consistency and conflict resolution at the file level, which can be simpler or more complex depending on your approach. But for many workflows, especially those prioritizing offline access and portability, this tradeoff is worth it. It means your data is always accessible, always under your control, and easy to back up or move.

Why local-first design makes your tools faster and more reliable
Local-first means your app works just as well offline as online. When you open Threlmark, it reads data straight from your disk. No waiting for network responses. This makes your workflow snappy—imagine updating a card and seeing the change instantly, even if your internet drops.
For example, if you’re on a plane or in a basement with spotty Wi-Fi, your work continues seamlessly. When you reconnect, the system syncs changes across devices, resolving conflicts intelligently. This approach reduces the reliance on continuous connectivity, which is often a point of failure in cloud-based systems. It also enhances privacy and security, since your data isn’t constantly transmitted over the network. The key tradeoff is that local-first systems require careful design to handle synchronization conflicts and ensure data consistency across devices. But when done right, they offer a more resilient and responsive experience, especially in environments where internet access is unreliable or intermittent.
How Threlmark’s file layout turns into a rock-solid system
Threlmark’s folder structure is more than organization; it’s the backbone of its robustness. At the top, a manifest (`threlmark.json`) and links (`links.json`) set the stage. Each project lives in its folder with metadata, lane order, and a single file per card in `items/`.
This setup means every task, suggestion, or report lives in its own JSON file. When you update an item, you replace that file atomically, preventing corruption or race conditions.
This architecture has profound implications: it makes the system inherently more resilient to crashes and partial failures. Since each file is independent, a corruption in one doesn’t necessarily compromise the entire system. Atomic file operations ensure that updates are either fully applied or not at all, reducing the risk of inconsistent states. Moreover, this approach simplifies merging changes from different sources, as each item is a separate file that can be individually reconciled. The tradeoff is that managing many small files can be more complex than handling large monolithic files, but the benefits in safety and conflict resolution often outweigh this complexity, especially in multi-user or multi-device environments.

Keeping data safe with atomic writes and tolerant merging
Writing files atomically means saving changes to a temp file and then renaming it. This simple trick ensures no partial writes corrupt your data, even if your computer crashes mid-save.
Threlmark also reads, merges, and writes with care. It preserves unknown fields, so tools can evolve without breaking old files. This makes the system both safe and adaptable.
Why is this important? Because in real-world scenarios, unexpected failures happen—power outages, crashes, or interruptions during save. Atomic writes guarantee that your data is either fully written or untouched, avoiding corrupt or incomplete files. Tolerant merging means that as your data schema evolves, older files can still be read and integrated without loss, facilitating easier upgrades and integrations. This forward compatibility reduces technical debt and makes the system more resilient to change over time. The tradeoff is that implementing atomic and tolerant operations requires careful handling of file I/O and versioning, but the payoff is a safer, more durable data store that can stand up to real-world challenges.
How the self-healing board keeps your project flow smooth
The lane order lives in `board.json`, but it’s not a fragile list. It’s self-healing. Every time you read it, Threlmark compares it with actual items in `items/`. Missing items get re-added, and orphaned IDs get cleaned up.
Imagine a Kanban board that automatically fixes itself if you delete a card directly in the filesystem. That’s the power of self-healing — it keeps your project flow consistent without manual cleanup.
This self-healing capability is crucial because manual errors or external edits can easily cause inconsistencies. By automatically reconciling the actual files with the stored flow, Threlmark maintains a reliable, up-to-date view of your project state. This reduces the cognitive load on users and minimizes errors that could derail progress. The tradeoff is that the logic for self-healing needs to be carefully designed to avoid unintended side effects, but when implemented correctly, it provides a seamless, resilient workflow that adapts to changes gracefully.

Sync as a layered process, not a bottleneck
In Threlmark, sync isn’t just about copying files. It’s a layered process. Changes from one device are merged into the disk, conflicts are flagged, and a dedicated sync layer manages resolution.
For example, if two devices edit the same card, the system preserves both versions, highlights conflicts, and lets you decide how to merge or keep both. This design minimizes data loss and keeps everything consistent.
Why does layered sync matter? Because it allows complex conflict resolution strategies, such as automatic merging, user prompts, or versioning, to be implemented cleanly. It ensures that sync operations don’t become a bottleneck but instead serve as a reliable layer that maintains data integrity across devices. The implications are significant: it enables flexible workflows, supports offline edits, and reduces the risk of data loss during sync failures. The tradeoff is that layered sync adds complexity to the system design, but the benefits in resilience and user control are substantial.
Real-world benefits: speed, resilience, and portability
Imagine working on a project across three laptops, each with its own copy of the files. Threlmark makes it easy to move files, back them up, or even use tools like Dropbox or Syncthing to keep everything in sync.
For instance, a developer working offline on a train can later sync their changes with a team. No server required, no lock-in. Just files, simple and effective.
This flexibility means your workflow isn’t tied to a specific platform or cloud provider. You can adapt your storage and sync methods as needed, choosing solutions that fit your security and convenience preferences. The main benefit is resilience—your data remains accessible and consistent regardless of network conditions or platform limitations. The tradeoff is that managing multiple devices or backup solutions requires discipline, but the payoff is a highly portable, robust system that works in any environment.

What breaks in a disk-first system—and how to fix it
Despite its simplicity, disk-based systems face challenges—conflict resolution, partial failures, or data corruption. Threlmark handles these with careful merging, atomic writes, and self-healing logic.
If a disk gets corrupted, you can usually recover by re-reading the files or re-syncing. When conflicts happen, the system preserves both versions and prompts you to decide.
Understanding these potential issues is vital. While atomic writes and self-healing reduce many risks, no system is immune to hardware failures or human errors. Recognizing common failure modes allows you to implement best practices, such as regular backups or versioning, to mitigate damage. The architecture’s emphasis on conflict preservation and recovery options means that even in worst-case scenarios, your data can often be salvaged with minimal loss. The tradeoff is that extra vigilance and maintenance are required, but the resilience and control gained are well worth it.
Who benefits most from a local-first, disk-as-contract approach?
Teams who need resilience, offline access, and data portability love this approach. Creative agencies, solo developers, and open-source projects often prefer full control over their data.
For example, a writer working in remote areas or a researcher collecting data in the field gains peace of mind—no internet, no problem.
This approach is especially valuable in environments with unreliable network access, strict data privacy requirements, or where cost and vendor lock-in are concerns. It empowers users to manage their data directly, avoid vendor lock-in, and adapt workflows dynamically. The tradeoff is that it requires a shift in mindset and some technical discipline, but for those who value control, this approach offers unmatched flexibility and security.

How hard is it to build or migrate to this system?
Building a disk-first app isn’t magic, but it requires discipline. You need atomic file operations, tolerant merging, and a clear folder structure. Migrating involves exporting/importing JSON files and setting up your directory.
Threlmark’s approach makes it easier by providing a clear layout and robust patterns. Still, it demands a mindset shift from traditional server-centric thinking. While the technical skills are straightforward for experienced developers, understanding the architecture’s principles is key. Migration might involve scripting or tooling to convert existing data into the JSON file structure. The main challenge is designing your workflows and conflict resolution strategies upfront to ensure consistency and resilience. Once established, the system’s simplicity and robustness make ongoing maintenance manageable and scalable.
Frequently Asked Questions
What does ‘Disk is the contract’ mean?
It means the disk storage itself defines what the system knows. All data is stored in files, and these files are the source of truth, making the system simple, portable, and transparent.How is local-first different from offline-first?
Offline-first ensures your app works without internet. Local-first goes further, treating local disk storage as the primary, continuous source of truth, with sync handling updates across devices later.What tools or storage layer does Threlmark use?
Threlmark relies on plain JSON files stored on disk, with careful handling of atomic writes and merging. No database required—just files that serve as the complete data store.How are conflicts resolved when syncing?
Conflicts are preserved as separate versions, and the system highlights differences. You get to review, merge, or keep both versions, ensuring no data is lost.What happens if the system crashes during a write?
Thanks to atomic file operations, partial writes are impossible. The system either keeps the old file or replaces it with a complete new one, avoiding corruption.Conclusion
Focusing on disk as the contract turns your system into a resilient, portable, and simple powerhouse. It’s a pattern that prioritizes control and reliability over complexity. If you value offline work, easy migration, and conflict handling, this approach can radically change your project tools.
Imagine a future where your data is always yours, always accessible, and never locked behind cloud dependencies. That’s the promise of a disk-first architecture—powerful, straightforward, and built for real-world work.