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

📊 Full opportunity report: Disk Is the Contract: Inside Threlmark’s Local-First Architecture on ThorstenMeyerAI.com — validation score, market gap, and execution plan.

TL;DR

Threlmark’s system uses local disk storage as the definitive data source, avoiding traditional databases. This approach simplifies synchronization, improves offline capabilities, and enhances data portability, with confirmed technical strategies like atomic writes and directory-based data contracts.

Threlmark’s new architecture treats local disk storage as the definitive source of truth, eliminating the need for traditional databases or cloud servers. This approach is detailed in the original analysis. This design simplifies data synchronization, enhances offline usability, and makes data more portable, according to the company’s technical documentation.

Threlmark’s approach is based on storing each data item in a separate file within a structured directory layout. The system employs atomic file operations to prevent corruption during updates, and uses directory structures as explicit data contracts that facilitate interoperability with external tools. This design allows users to edit data directly with plain text editors, ensuring transparency and resilience against crashes or disconnections. For more on local-first architecture principles, see this detailed overview.

Developers highlight that this approach shifts complexity from managing centralized databases to ensuring file integrity and conflict resolution through techniques like tolerant merging and self-healing mechanisms. The system reconstructs project states from individual files, reducing race conditions and simplifying recovery from corruption or missing files.

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 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

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.

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
SUITOK Dual-Bay M.2 SSD Cloner Docking Station for PC Storage Upgrade Tool-Free Offline Duplicator NVMe SATA Reader Enclosure 10Gbps USB-C Supports 16TB 2230-22110 - STK07 Pro

SUITOK Dual-Bay M.2 SSD Cloner Docking Station for PC Storage Upgrade Tool-Free Offline Duplicator NVMe SATA Reader Enclosure 10Gbps USB-C Supports 16TB 2230-22110 – STK07 Pro

[1:1 Sector-Level Offline Clone for System Migration]: Easily upgrade your SSD without reinstalling the operating system. This m.2…

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
Stellar Data Recovery for Windows Software | Bringing Lost Data Back to Life | 1 PC 1 Year Subscription | Keycard Delivery

Stellar Data Recovery for Windows Software | Bringing Lost Data Back to Life | 1 PC 1 Year Subscription | Keycard Delivery

Stellar Data Recovery is an easy-to-use, DIY Windows data recovery software for recovering lost and deleted documents, emails,…

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
Json Genie Premium: JSON Editor, Viewer & Formatter

Json Genie Premium: JSON Editor, Viewer & Formatter

Open, view, and edit JSON and JSONC files with a fast tree-based interface

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.

Impacts of Disk as the Single Source of Truth

This architecture fundamentally changes how data persistence and collaboration are handled in project management tools. By making disk the primary contract, Threlmark offers increased data portability, offline resilience, and transparency. It reduces vendor lock-in and simplifies integration with external tools, which could influence broader software development practices for local-first applications.

However, this approach also introduces new challenges, such as managing numerous small files and ensuring consistency across concurrent edits. The reliance on file-based conflict resolution and self-healing mechanisms is crucial for maintaining data integrity in multi-tool environments. Overall, this design could lead to more reliable and flexible systems, especially in scenarios where offline access and data transparency are priorities.

Background and Evolution of Local-First Design

Traditional project management tools rely heavily on centralized databases or cloud services, which can introduce lock-in, latency, and offline limitations. The broader context of local-first design is discussed in this article. Threlmark’s design draws from the broader local-first movement, which advocates for data stored primarily on local devices with synchronization as a secondary concern. The concept emphasizes simplicity, resilience, and user control.

Previous efforts in local-first architectures have focused on sync protocols and conflict resolution. Threlmark’s innovation lies in treating the disk itself as the contract, with a clear directory structure and file-based data model. This approach aims to make data more accessible and manageable, especially for users who prefer working offline or with plain files.

“Treating the disk as the contract means every piece of data is a file, making the system simple, resilient, and portable.”

— Thorsten Meyer, Threlmark Developer

Unresolved Challenges and Future Considerations

While the architecture is promising, it is not yet clear how well it scales with very large datasets or complex collaboration scenarios involving many concurrent users. The effectiveness of conflict resolution and self-healing mechanisms in real-world, high-traffic environments remains to be tested extensively. Additionally, manual management of numerous small files could pose performance or usability issues, especially on certain filesystems or hardware.

Next Steps for Threlmark’s Local-First System

Threlmark plans to continue refining its conflict resolution and self-healing features, aiming to improve scalability and robustness. The company may also develop tooling to better manage large datasets and automate consistency checks. Future updates could include more detailed documentation and community feedback to address potential usability concerns.

Key Questions

How does Threlmark ensure data consistency with multiple tools editing files?

Threlmark employs atomic writes and tolerant merging strategies to handle concurrent edits, reducing conflicts and ensuring data integrity.

Can I manually edit data files in Threlmark?

Yes, the directory structure is transparent, and users can manually edit files using plain text editors, which is part of the system’s design for simplicity and transparency.

What are the limitations of using disk as the main contract?

Managing many small files can introduce filesystem overhead, and conflict resolution in highly concurrent environments may require additional handling.

Will this architecture work for large, collaborative projects?

It is still being tested; scalability and conflict management in large-scale collaboration are ongoing areas of development for Threlmark.

Source: ThorstenMeyerAI.com

This content is for general information only and is not financial, tax or legal advice. Consult a qualified professional for decisions about your money.
You May Also Like

The pyramid cracks. What agentic AI does to the consulting leverage model.

Generative AI is disrupting the traditional consulting pyramid, affecting analysis-heavy firms and boosting execution-focused companies. The industry is splitting, not shrinking.

The unbundling of the budget app. Why a conversational finance surface absorbs what the personal-finance apps charge for, and what survives the absorption.

OpenAI’s ChatGPT now offers a personal-finance feature, absorbing core functions of traditional budget apps. This shift redefines the category structure.

Build vs Buy a Prebuilt AI Workstation

Deciding between building or buying an AI workstation in 2026? Explore the latest trends, costs, and benefits to choose the best option for your needs.

The mandate. Why the US conversational- finance surface does not translate to Europe.

Examines how Europe’s regulatory mandates fundamentally alter the architecture of conversational finance, preventing direct US-to-EU translation.