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 introduces a local-first, file-based architecture where disk-stored JSON files serve as the definitive data source. This design enables portability, interoperability, and resilience without relying on a central database.

Threlmark has revealed a novel architecture that uses on-disk JSON files as the definitive source of project data, foregoing traditional server-based or cloud storage. This approach emphasizes simplicity, portability, and resilience, making the disk the contract for all project artifacts.

The core design decision is that there is no server of record; all tools and UI components access the same files directly on disk, with the directory layout serving as a formal contract. Files include a manifest, dependency graph, project metadata, lane configurations, individual roadmap cards, and shared artifacts, all stored as separate JSON files. This structure allows any external tool to read or modify project data simply by reading and writing files, supporting interoperability across different systems and languages.

To ensure safety and consistency, Threlmark employs atomic file writes using temporary files and rename operations, preventing corruption during crashes. It also uses a read-merge-write pattern that preserves unknown fields for forward compatibility, allowing tools to evolve without breaking existing integrations. The system automatically reconciles lane ordering with actual items, ensuring the project view remains consistent even when external modifications occur.

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
Amazon

JSON file editor for project management

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
Free Fling File Transfer Software for Windows [PC Download]

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.

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

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 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
Practical Python Projects Step-by-Step: Build Real Applications, Automation Tools, and Desktop Programs with Python 3.14 (Modern Python Development Mastery Series)

Practical Python Projects Step-by-Step: Build Real Applications, Automation Tools, and Desktop Programs with Python 3.14 (Modern Python Development Mastery Series)

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.

Why Disk-Based Data Matters for Project Management

This architecture matters because it enables true portability and interoperability, allowing users to back up, migrate, or integrate their project data with other tools easily. It also enhances resilience; since all state is stored in files, there is no single point of failure or reliance on external servers. This approach supports a decentralized workflow and simplifies collaboration, especially in environments where cloud services are restricted or undesirable.

Furthermore, the design aligns with principles of simplicity and transparency, giving users full visibility into their project data and control over it. It challenges the traditional notion of centralized databases, showing that a robust, scalable project management system can be built entirely on local files.

The Evolution of Threlmark’s Architectural Philosophy

Threlmark’s architecture builds on previous projects emphasizing open, portable data formats and stateless design. Historically, many project tools rely on centralized servers or cloud storage, which can introduce lock-in and complexity. Threlmark’s approach reverses this trend by making disk storage the central element, inspired by principles from version control and local-first design. The system’s reliance on JSON files echoes practices seen in other local-first apps, but Threlmark extends this idea into multi-project management, integrating AI agents and external tools seamlessly.

This development follows ongoing efforts to create more resilient, user-controlled workflows that are less dependent on cloud infrastructure, aligning with broader trends toward decentralization and data portability in software tools.

“The on-disk layout is the API, and it’s the contract that everything adheres to. This design makes the system portable, restartable, and inherently collaborative without a server.”

— Thorsten Meyer, creator of Threlmark

Unresolved Questions About Threlmark’s File-Based System

It is not yet clear how well this architecture scales with very large projects or numerous concurrent external modifications. The performance implications of frequent file reads and writes in complex workflows remain to be tested, and user adoption strategies are still evolving. Additionally, the extent of support for real-time collaboration and conflict resolution across multiple users is still under development.

Next Steps for Threlmark’s Local-First Architecture

Threlmark plans to further refine its file-based system, including performance optimizations and enhanced conflict management. Future releases may introduce more advanced external tool integrations and real-time collaboration features. Community feedback and testing will shape the evolution of this architecture, with broader adoption anticipated as the system matures.

Key Questions

How does Threlmark ensure data safety without a server?

It employs atomic file writes using temporary files and renaming, preventing corruption even during crashes, and uses tolerant merge strategies to preserve data integrity.

Can external tools modify project data safely?

Yes, since each artifact is stored as a separate JSON file, any tool that reads and writes these files can participate without locking or coordination, provided it follows the established file structure and conventions.

What are the limitations of this disk-based approach?

Potential limitations include scalability concerns with very large projects, handling concurrent modifications from multiple users, and ensuring real-time synchronization in collaborative environments, which are still being addressed.

Will this architecture support cloud or server-based features in the future?

While the current design emphasizes local-first principles, future iterations might include optional cloud synchronization or server components, but the core philosophy remains focused on disk as the primary contract.

Source: ThorstenMeyerAI.com

Nothing in this article is financial or investment advice. Cryptocurrency and precious-metal investments carry significant risk — do your own research and consider a licensed advisor.
You May Also Like

When Does Cheap Memory Come Back? The 2027–2029 Question

Experts expect memory prices to stabilize around late 2027, with full relief unlikely before 2028–2029 due to physical and industry constraints.

AI output review queue for customer support macros

Support teams are testing a new AI macro review queue to ensure compliance, tone, and accuracy before publication, marking a step towards safer AI adoption.

The Real Cost Of A Local-Inference Rig In 2026

An analysis of the hardware costs for running large language models locally in 2026, highlighting VRAM constraints, hardware choices, and value considerations.

The Compute Reckoning: Anthropic Finally Admits What Customers Suspected for Ten Months

Anthropic reveals that its recent customer experience issues were due to compute shortages, now addressed through a major partnership with SpaceX and other capacity expansions.