Disk Is the Contract: Inside Threlmark's Local-First Architecture

TL;DR

Threlmark treats local disk storage as the authoritative record, not a server. This approach simplifies sync, boosts privacy, and makes data portable. It’s a practical, offline-first architecture that redefines how project tools work.

Imagine managing your entire project roadmap on your laptop, with every change saved directly to disk. No cloud, no server, no login required. That’s the essence of Threlmark’s local-first architecture: your device’s storage is the single source of truth.

This approach flips the usual cloud-centric model on its head, emphasizing offline-first work, data ownership, and seamless multi-device sync. You’re not just storing data locally; you’re building a system where the disk itself becomes the contract — the ultimate authority on your project’s state. It’s a radical shift, but one that offers clarity, control, and resilience for modern workflows.

Disk is the contract: inside Threlmark’s architecture — ThorstenMeyerAI.com
ThorstenMeyerAI.com
Threlmark · Technical Deep-Dive
Threlmark · architecture

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.

Next.js · TypeScript · JSON-on-disk · MIT · part 2 of the Threlmark series
01The core decision

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.

~/.threlmark/ ├─ threlmark.json # manifest ├─ links.json # dependency graph ├─ projects// │ ├─ project.json # meta + wipLimits │ ├─ board.json # lane ordering │ ├─ items/.json # ONE card per file ← source of truth │ ├─ suggestions/ # the Inbox (drop-zone) │ ├─ handoffs/ # recorded agent handoffs │ ├─ reports/ # agent report drop-zone │ └─ ROADMAP.md # human-readable mirror ├─ shared/items/ # cards many projects ref └─ archive/ # archived, still readable

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.

02Making files safe
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

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.

Pattern 1

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.

write .tmp-pid-rand fsync rename() over target
Pattern 2 · one file per item

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.

The payoff: an external tool never touches 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.
03Derived, never stored
Seagate One Touch 8TB External Hard Drive Desktop HDD - USB-C Compatible with Most Windows and macOS, Rescue Recovery (STNB8000400)

Seagate One Touch 8TB External Hard Drive Desktop HDD – USB-C Compatible with Most Windows and macOS, Rescue Recovery (STNB8000400)

No wall warts: Work freely with its bus-powered USB-C. No wall outlet required.

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.

priority = max(0, round(impact·3 + evidence·2 + fit·2effort·1.5))
a 5 / 5 / 5 / 4 card 29
work-item age
now − lane-entry time. Past threshold (dev 7d, ranked 21d, idea 60d) → stale.
cycle time
first DevelopmentDone. Derived from append-only transitions[].
throughput
items reaching Done per ISO week, 8-week window.
WIP
count per lane; over the cap shows 3 / 2 in red.
04The closed agent loop · press play
Information Technology Project Management (MindTap Course List)

Information Technology 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.

Ranked
Add price-drop alertsscore 31 · ready
Development
Handed off 🤖
Done
▶ preferred — REST
POST /api/projects/:id/
items/:itemId/report

Direct call. Applied immediately.

▶ fallback — filesystem
drop reports/.json
→ ingested on read

Robust even if the server’s down at finish time.

🤖 claude done: price-drop alerts shipped · typecheck + lint + build passed — card moved to Done
05Portfolio score & deployment
Amazon

local storage data synchronization tool

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.

score = priority · statusWeight (+ 0.1 · blockedCount · priority)
1.3
development
1.0
ranked
0.85
idea
0.15
done
Path 1

Static read-only demo

Seeded data, writes to localStorage. Try-before-you-clone.

Path 2

Personal Node instance

Password-gated, persistent backed-up THRELMARK_DATA_DIR.

Path 3

Multi-tenant SaaS

Add accounts + per-tenant isolation. A separate build.

The elegant part: the store interface 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.
ThorstenMeyerAI.com
Threlmark · open source (MIT) · github.com/MeyerThorsten/threlmark · part 2 of a series · file layout, formula, weights & agent-loop channels are Threlmark’s actual mechanics.

Key Takeaways

  • Treat your local disk as the definitive source of truth, making data inspection and backup straightforward.
  • Design your system so that files are atomic, conflict-tolerant, and easily mergeable to prevent data corruption.
  • Sync is a background process—use existing tools like Dropbox or Syncthing to keep data consistent across devices.
  • This architecture enhances privacy and control, especially when encrypting local files and avoiding central servers.
  • While powerful, local-first may not suit large, ultra-collaborative teams, but it excels for solo work and privacy-focused projects.

What ‘disk is the contract’ really means for your data

When Threlmark says “disk is the contract,” it means your local JSON files are the real deal. They’re the primary, authoritative source of all project info. This matters because it shifts the paradigm from relying on remote servers to trusting your local storage as the ultimate arbiter of truth. The implication is that your data’s consistency, accuracy, and integrity are directly tied to the files on your disk, not a central database. This approach reduces dependency on network reliability and server uptime, offering greater resilience. However, it also means you need to be mindful of local file management—backups, conflict resolution, and versioning become critical. The tradeoff is between control and complexity: you gain transparency and autonomy but must handle some aspects traditionally managed by servers. For example, each project has a folder with a project.json and individual cards are stored as items/.json. This setup makes every piece of data directly inspectable, easy to back up, and simple to sync across devices. It’s like having a transparent, living document that your tools and scripts can read and write without any middleman, giving you a clear line of sight into your project’s state at all times. You can learn more about this local-first architecture.

What ‘disk is the contract’ really means for your data
What ‘disk is the contract’ really means for your data

How this approach differs from traditional cloud-first apps

Traditional apps treat the server as the ultimate authority. Your data lives in a database, and your device just syncs or fetches updates. Threlmark’s local-first design flips this by making the local disk the true source of truth. This shift has profound implications. It means that your work is always grounded in a reliable, accessible source—your local files—regardless of internet connectivity. Read more about this local-first approach. The tradeoff is that you must ensure your local data is well-managed; conflicts, backups, and versioning become your responsibility, not the app’s. For more on managing local data, see local-first data management. Think of it like keeping a detailed notebook on your desk. When you write in it, the notebook is always the current state. Cloud sync is just an optional backup or collaboration layer, not the core. This makes working offline seamless, since your local files are always current, and sync happens in the background. If your internet drops, your project continues without a hitch, and when you reconnect, changes merge automatically, maintaining consistency. This resilience reduces the risk of data loss due to network issues, and empowers you to work without interruption. The tradeoff is that you need to be disciplined about managing local files and backups, but the benefit is a more robust, privacy-conscious workflow that isn’t dependent on constant connectivity.

Why local-first is a game-changer for productivity and privacy

Local-first systems like Threlmark aren’t just about working offline. They fundamentally redefine what it means to own your data. When all data resides on your device, you have complete control over access, sharing, and encryption. This decentralization minimizes exposure to third-party vulnerabilities and gives you the power to implement your own security measures. The implication is a significant boost in privacy and security, especially for sensitive projects. For instance, a remote developer using Threlmark on a laptop can keep their data encrypted locally, reducing the risk of leaks or breaches associated with cloud storage. The speed advantage is also notable: accessing local JSON files is almost instantaneous, avoiding delays caused by remote queries or network latency. Discover more about local data access benefits. This means faster workflows, quicker updates, and less frustration. Additionally, because you control the data, you can tailor security practices—like end-to-end encryption or custom access controls—to fit your needs. This approach shifts security responsibility from relying on external providers to managing your own environment, which can be more trustworthy and transparent. The tradeoff is that you must be proactive about backups and encryption, but the benefit is a more private, resilient, and flexible system that puts you in the driver’s seat of your data security.

Why local-first is a game-changer for productivity and privacy
Why local-first is a game-changer for productivity and privacy

How sync actually works in Threlmark’s local-first setup

Sync in Threlmark isn’t the core. It’s a background process that updates files across devices. Learn about local-first sync mechanisms. The app reads and writes JSON files directly, then uses a sync layer—like Dropbox, Syncthing, or custom scripts—to keep data consistent. This setup leverages existing tools, but the real strength is in understanding the implications. Because files are atomic and stored locally, sync becomes a matter of detecting file changes and propagating updates—much like how you’d synchronize a folder manually. When a change occurs, the sync layer compares file hashes or timestamps, then transfers only the modified files. This process is inherently conflict-tolerant: if two devices modify the same file simultaneously, the system can merge changes based on timestamps or prompt the user for resolution. The key is that the system treats sync as a secondary process, not the foundation—your data’s integrity depends on proper file management and conflict resolution. This approach is simple, robust, and compatible with any tool that can read/write files, making it highly adaptable. It also emphasizes that the core of the architecture is the local disk, with sync acting as a reliable but secondary layer to ensure consistency across devices.

Handling conflicts and collaboration without a central database

Conflicts are inevitable when multiple devices edit the same data. Threlmark handles this by preserving all changes and merging them intelligently. It relies on timestamps, version history, or explicit user choices. This means that instead of locking files or preventing simultaneous edits, the system allows concurrent modifications and then reconciles differences. For example, if two editors modify a task at the same time, the system compares timestamps and merges the updates, creating a comprehensive record that includes both sets of changes. If conflicts are complex, the system can prompt the user to choose the preferred version or manually resolve discrepancies. Because each card is a separate JSON file, conflicts are localized, making resolution straightforward and less error-prone. This approach fosters a more natural collaboration experience—no locking, no complex merge tools—just clear, predictable conflict management. The tradeoff is that conflicts require some oversight, but the benefit is a more flexible, resilient system that supports real-time work without central coordination, aligning with the core philosophy of local-first design.

Handling conflicts and collaboration without a central database
Handling conflicts and collaboration without a central database

Security, privacy, and ownership — what’s really at stake?

Since data lives on your device, you’re in control of privacy. You decide what to encrypt, share, or keep local. This decentralization reduces reliance on third-party servers that can be vulnerable to breaches or subpoenas. The implication is that your data security becomes a matter of your local environment—encryption, access controls, and backups. However, local storage isn’t foolproof; if your device is lost or compromised, so is your data, unless you’ve taken steps to protect it. For example, a journalist working on sensitive material can encrypt their disk or use secure backups, minimizing risk. This paradigm shifts security from trusting external providers to managing your own environment. It’s a more transparent model, but it requires discipline—regular backups, encryption, and device security are essential. The tradeoff is increased control and privacy, but also increased responsibility. This model suits those who prioritize data sovereignty and are willing to manage their security measures proactively, rather than relying solely on external cloud providers.

Trade-offs: when local-first might not be perfect

While local-first offers many advantages, it’s not a silver bullet. Handling large-scale, real-time collaboration with hundreds of concurrent users can become complex. Managing conflicts, ensuring consistency, and maintaining performance at scale require additional infrastructure or strategies. For example, a large team working on a shared project may find it challenging to coordinate edits without a central server to orchestrate changes. Additionally, if a device fails or you forget to sync, data can be lost, emphasizing the importance of disciplined backup routines. The architecture demands that users understand and accept these limitations—it’s best suited for solo developers, small teams, or projects where privacy and offline access are priorities. Recognizing these tradeoffs helps in making informed decisions about when and how to adopt a local-first approach.

Trade-offs: when local-first might not be perfect
Trade-offs: when local-first might not be perfect

Getting started with Threlmark: practical tips and tools

To begin, set up your data directory—default is ~/.threlmark. Use plain JSON files to define your projects and cards. Keep your files small and atomic for easy editing and conflict resolution. This discipline ensures that each change is manageable and reduces the risk of complex conflicts. Leverage tools like Threlmark’s GitHub repo for sample setups. Sync your data folder with Dropbox or Syncthing for multi-device updates. Use simple scripts or editors to modify files directly. The key is to develop a consistent workflow: commit atomic changes, back up regularly, and treat your disk as the master record. Over time, this disciplined approach becomes second nature, providing a robust foundation for your projects. Embracing this method offers a powerful way to maintain control and transparency in your workflow, leveraging existing tools and simple practices.

Frequently Asked Questions

What does ‘disk is the contract’ actually mean?

It means your data lives directly on your device’s filesystem as plain JSON files, which serve as the authoritative source. This setup makes your data inspectable, portable, and independent of any central server.

How is this different from offline mode in typical apps?

Offline mode usually means the app temporarily works without internet, syncing later. In contrast, ‘disk is the contract’ means the local disk is always the real record, and the app simply reads/writes directly to that disk—offline or online—without relying on a server.

How does sync work if the device is the source of truth?

Sync becomes a background process that propagates changes via tools like Dropbox or Syncthing. Files are atomic, and the system merges updates based on timestamps or conflict rules, ensuring consistency across devices.

What happens when two devices edit the same data?

The system preserves both changes and merges them intelligently, often based on timestamps. Conflicts are localized to individual files, making resolution straightforward without complex merge tools.

Is local-first more secure or just differently risky?

It’s more about control than inherent security. Your data stays on your device, reducing reliance on third-party servers. However, it shifts the security burden to local encryption, backups, and device security measures.

Conclusion

Threlmark’s approach turns the usual cloud-centric model on its head. By making the disk the contract, it empowers you with control, resilience, and simplicity. It’s not just about offline support—it’s a fundamental shift in how we think about data and collaboration.

Next time you set up a project tool, ask yourself: could the disk be the real boss? Embrace the local-first mindset, and you’ll find your workflow more flexible, private, and robust. Your data—your rules.

You May Also Like

Solana Investors Double Down: Expanding Long-Term Holdings Signal Confidence in 2024 Rally

Market trends show Solana investors increasing long-term holdings, hinting at a potential rally in 2024 that could change everything. What’s driving this confidence?

Solana Joins Grayscale’s Top 20 List Alongside Bitcoin and Ethereum

Proving its worth, Solana enters Grayscale’s Top 20 list, igniting curiosity about its future potential in the ever-evolving crypto market.

DePIN Economics: How Helium’s 5G Rollout Is Funded

Unlock the secrets of Helium’s innovative DePIN economics and discover how decentralized incentives are revolutionizing 5G deployment.