📊 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 employs a local-first architecture where project data is stored solely in JSON files on disk, making the system portable, inspectable, and restartable without a database. This approach simplifies concurrency and external tool integration.

Threlmark has introduced a novel architecture that treats disk-based JSON files as the definitive contract for its project management system, eliminating the need for servers or databases. This design choice emphasizes portability, inspectability, and restartability, marking a significant shift in how project data can be managed locally.

The core of Threlmark’s system is built on a simple yet powerful principle: the on-disk layout is the API. All project data resides in plain JSON files stored in a designated directory, defaulting to ~/.threlmark. This directory contains a manifest (threlmark.json), dependency graphs (links.json), and individual project folders, each with files representing cards, lane configurations, suggestions, handoffs, and reports. This structure allows every artifact to be inspected, diffed, and backed up easily, supporting portability and interoperability without lock-in.

Threlmark’s approach relies on two disciplined patterns for safety: atomic file writes and read-merge-write updates. Atomic writes are achieved by writing to temporary files and renaming them atomically, preventing corruption during crashes. The read-merge-write pattern ensures updates preserve existing data, tolerate missing or unknown fields, and forward-compatibly grow the schema. This design enables external tools to modify project data without conflicts or locks, fostering a collaborative, multi-tool environment.

Furthermore, by adopting one file per item rather than a monolithic JSON list, Threlmark avoids concurrency issues and simplifies external editing. The system’s self-healing board reconciles its state on each read, automatically syncing lane orderings and removing missing or obsolete cards, ensuring consistency without complex locking mechanisms.

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
Amazon

JSON diff and merge tools

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 JSON Files Transform Project Management

This architecture matters because it provides a highly portable, inspectable, and restartable foundation for project management tools. By removing reliance on centralized databases, Threlmark enables users to back up, migrate, and integrate with other tools effortlessly. It also allows external AI agents and automation scripts to participate directly by reading and writing files, fostering a more open and collaborative workflow.

For developers and teams, this design reduces lock-in and increases resilience. It simplifies recovery from crashes, enables offline workflows, and supports seamless integration with other systems. Overall, this approach could influence future tools seeking a lightweight, flexible, and transparent data model for managing complex projects.

The Evolution of Local-First Systems and Threlmark’s Unique Approach

Traditional project management tools often rely on cloud-hosted databases, which can obscure data flow, hinder portability, and complicate external integrations. Threlmark’s design draws from the broader trend of local-first architectures, emphasizing user control and data sovereignty. Its decision to make disk files the source of truth aligns with principles seen in other open, file-based systems but is distinguished by its specific implementation for multi-project roadmaps.

Prior to this development, Threlmark was known for its simple, local storage-based kanban, but the new architecture extends this concept into a multi-project hub that maintains data integrity and interoperability without a server. This shift is part of a larger movement toward lightweight, transparent, and user-controlled project tooling.

“The on-disk layout is the API. That choice cascades into how concurrency is handled, external tools participate, and AI agents can close their own loop.”

— Thorsten Meyer

Remaining Questions About Threlmark’s Disk-First System

While the architecture is clearly defined, it is not yet confirmed how well this system performs under heavy concurrency or large-scale projects. Details about user adoption, integration with existing tools, and long-term stability are still emerging. Additionally, how this approach scales beyond individual or small team use remains to be seen.

Next Steps for Threlmark’s Development and Adoption

Threlmark plans to release detailed documentation and developer tools to facilitate external integrations. Further testing and real-world use cases will reveal how the architecture handles complex workflows. The project team is also exploring enhancements to support larger projects and collaborative environments, with updates expected over the coming months.

Key Questions

How does Threlmark ensure data safety without a database?

It uses atomic file writes and read-merge-write patterns to prevent corruption and preserve data integrity during updates.

Can external tools modify Threlmark data?

Yes, since data is stored in plain JSON files, any tool that can read and write JSON can participate, enabling open collaboration.

What are the advantages of this disk-first approach?

It offers portability, inspectability, restartability, and interoperability, reducing lock-in and simplifying backups and migrations.

Are there limitations to this architecture?

Potential challenges include handling high concurrency at scale and integrating with complex workflows, which are still being explored.

Source: ThorstenMeyerAI.com

You May Also Like

Saga Patterns for Long-Running Distributed Transactions

Just understanding Saga patterns reveals how to manage complex distributed transactions effectively; discover how they can transform your system resilience.

Optimizing AI Model Inference: Techniques for Faster ML in Production

curious how advanced techniques can drastically accelerate AI inference and transform your ML deployment? Discover the key strategies here.

eGPU Reality Check: When External Graphics Are Worth It

Unlock whether an eGPU truly boosts your performance and see if it’s the right choice for your setup and needs.

Multi-Threading Vs Async: Patterns for Concurrent Programming

Processing tasks efficiently requires choosing between multi-threading and async patterns, but understanding their differences can unlock optimal performance and responsiveness.