📊 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 unique local-first architecture where disk-based JSON files serve as the single source of truth, eliminating the need for a central database. This approach enhances portability, safety, and interoperability, making it a notable development in project management tools.

Threlmark has adopted a novel architecture where the entire project management system relies on JSON files stored directly on disk, with no server or cloud dependency, making disk the definitive contract for data integrity and flow.

The core design decision in Threlmark is that the on-disk layout of JSON files acts as the system’s API and source of truth. This approach removes the need for a centralized database, instead relying on a directory structure that includes manifest files, project metadata, individual roadmap cards, and shared resources. Files are written atomically using rename operations to ensure safety against crashes, and updates are handled via read-merge-write cycles that preserve data integrity and forward compatibility.

This architecture supports portability, as all data can be copied, backed up, or migrated easily without vendor lock-in. It also ensures interoperability, as any tool capable of reading and writing JSON can participate, and restartability, as the system is stateless and recoverable from disk alone. The design emphasizes transparency, with each artifact being inspectable, diffable, and versionable, fostering a robust open ecosystem for project management.

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

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

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

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 Contracts Matter for Project Tools

This approach fundamentally changes how project data is managed and shared. By making the disk layout the authoritative source, Threlmark enables seamless integration with external tools, simplifies backups and migrations, and enhances resilience against data loss. It also demonstrates a shift away from traditional server-dependent architectures, highlighting the benefits of local-first, file-based systems for complex workflows and AI integration.

The Evolution of Local-First and File-Based Architectures

Traditional project management tools often rely on centralized databases or cloud services, which can introduce lock-in, latency, and dependency issues. Threlmark’s design draws from earlier local-first principles, emphasizing data portability and user control. Its architecture aligns with recent trends favoring decentralized data models, but it distinguishes itself by using a simple, yet powerful, file-based contract that can be adopted by other tools and workflows. The choice of a directory structure with one file per item echoes best practices in version control and local-first design, providing a lightweight, resilient foundation for complex project management.

“The disk is the contract. Our system’s entire architecture hinges on the idea that the files on disk are the source of truth — no database, no cloud, just simple, portable JSON files.”

— Thorsten Meyer, creator of Threlmark

Unanswered Questions About Scalability and External Integration

It is not yet clear how well this architecture scales with very large projects or teams, or how it performs under high concurrency. Additionally, the specifics of how external tools, beyond simple JSON readers/writers, will integrate or coordinate with Threlmark remain to be demonstrated in practice. The long-term stability and evolution of the file contract as projects grow are also still to be tested.

Future Developments and Broader Adoption of File-Based Contracts

Developers plan to explore scaling strategies, including handling larger datasets and more complex workflows. There is also interest in expanding tool support and fostering an ecosystem of external applications that can seamlessly interact with Threlmark’s file-based system. Watching how the community adopts and adapts this architecture will be key to understanding its broader impact.

Key Questions

How does Threlmark ensure data safety without a database?

Threlmark uses atomic file writes with temporary files and rename operations, preventing corruption even during crashes. It also employs read-merge-write cycles that preserve data integrity and forward compatibility.

Can external tools easily integrate with Threlmark?

Yes. Since all data is stored as JSON files, any tool that can read and write JSON can participate, making the system highly interoperable without vendor lock-in.

What are the limitations of this architecture?

Scalability with very large projects or high concurrency scenarios remains untested. Also, integration beyond simple file access may require additional development efforts.

Is this approach suitable for team collaboration?

It can support collaboration through shared file systems or version control, but real-time multi-user editing at scale may need further enhancements.

How does this architecture compare to traditional cloud-based tools?

It offers greater control, portability, and resilience, but may lack some real-time collaboration features inherent in cloud services. Its strength lies in simplicity and local-first design.

Source: ThorstenMeyerAI.com

You May Also Like

One Video In, a Whole Publishing Kit Out — Without the Cloud

Discover how local AI tools can transform a single video into a full publishing package—no cloud needed. Faster, private, and cost-effective workflows explained.

Technology Operations Signal Monitor: PeerTube Is A Free, Decentralized And Federated Video Platform

PeerTube is recognized as a free, decentralized, and federated video platform, highlighting ongoing platform development signals for small software teams.

Python Virtual Environments for Data Projects Explained

For data projects, Python virtual environments isolate dependencies and prevent conflicts, ensuring your setups are consistent and ready to explore.

When a Graphing Calculator Helps—and When Software Is Better

Master the art of choosing between graphing calculators and software for optimal problem-solving, and discover the surprising scenarios that can enhance your efficiency.