From 4056a25529a91144c1c15cc0bc19d7dcc8efe2b7 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 19 Mar 2026 22:55:11 +0000 Subject: [PATCH 01/12] Add animated SVG demo to README MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Addresses HN feedback about too much friction — adds a visual "show then ask" demo at the top of the README. The animated SVG shows the core workflow: write markdown with frontmatter, run tinkerdown serve, get a live interactive app with data persistence. https://claude.ai/code/session_01NhTvt3NdnN6vmUpwimuM81 --- README.md | 4 + docs/assets/demo.svg | 223 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 227 insertions(+) create mode 100644 docs/assets/demo.svg diff --git a/README.md b/README.md index 6d14af6..72f4e4e 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,10 @@ **Build data-driven apps with markdown** +

+ Tinkerdown demo: write markdown, get an interactive app +

+ Tinkerdown is a CLI tool for creating interactive, data-driven applications using markdown files. Connect to databases, APIs, and files with zero boilerplate. Built on [LiveTemplate](https://github.com/livetemplate/livetemplate). ## Quick Start diff --git a/docs/assets/demo.svg b/docs/assets/demo.svg new file mode 100644 index 0000000..a648ed5 --- /dev/null +++ b/docs/assets/demo.svg @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + + index.md + + + + --- + + + title: "Task Manager" + + + + sources: + + + + tasks: + + + + type: sqlite + + + + path: ./tasks.db + + + + query: SELECT * FROM tasks + + + --- + + + # My Tasks + + + + <table + lvt-source="tasks" + + + + lvt-columns="title,status" + + + + lvt-actions="Done,Delete"> + + + + </table> + + + + + $ + tinkerdown serve + Server running at localhost:8080 + + + + + + + + + + + + + + + + + + + + localhost:8080 + + + + + My Tasks + + + + + + Title + Status + Actions + + + + + + Build landing page + + In Progress + + Done + + Del + + + Write API docs + + Done + + Done + + Del + + + Fix auth bug + + New + + Done + + Del + + + + + + + + + + + + + + + + + + Live • Connected via WebSocket + + + + + + + Write markdown → Get an interactive app → Data persists to SQLite + + From 5c1f29f9f3aa782d5cae43649ac6c602264d68e3 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 19 Mar 2026 22:59:52 +0000 Subject: [PATCH 02/12] Add "Why Tinkerdown?" section above Quick Start MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Gives readers the motivation and value prop before jumping into install instructions — addresses the core problem, what makes Tinkerdown different, and who it's for. https://claude.ai/code/session_01NhTvt3NdnN6vmUpwimuM81 --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index 72f4e4e..9b730b9 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,19 @@ Tinkerdown is a CLI tool for creating interactive, data-driven applications using markdown files. Connect to databases, APIs, and files with zero boilerplate. Built on [LiveTemplate](https://github.com/livetemplate/livetemplate). +## Why Tinkerdown? + +Most internal tools start the same way: spin up a framework, wire up a database, write CRUD endpoints, build a UI. For a simple dashboard or admin panel, that's a lot of ceremony. + +Tinkerdown skips all of it. You write a single markdown file, declare your data sources in frontmatter, and use `lvt-*` attributes to make things interactive. No frontend framework, no API layer, no build step. + +- **One file = one app.** Your entire app lives in a markdown file — data connections, layout, and interactions included. +- **8 data sources out of the box.** SQLite, PostgreSQL, REST APIs, JSON, CSV, shell commands, markdown files, and WASM. Declare them in frontmatter; they just work. +- **Instant feedback.** `tinkerdown serve` gives you hot reload and WebSocket-powered live updates. Change the file, see the result. +- **AI-friendly.** The format is simple enough that you can describe what you want to Claude or any LLM and get a working app back. + +If you've ever thought "I just need a quick UI for this database" — that's what Tinkerdown is for. + ## Quick Start ```bash From 414a567795180d72d3e2d95447dc619cc708ce8a Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 19 Mar 2026 23:02:13 +0000 Subject: [PATCH 03/12] Strengthen "Why Tinkerdown?" with deeper differentiators Reworked from docs/archive research: adds progressive complexity tiers, git-native/self-hosted angle, LLM determinism advantage over React, throwaway tools use case, and "build a UI for your scripts" pitch. https://claude.ai/code/session_01NhTvt3NdnN6vmUpwimuM81 --- README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 9b730b9..e35b8e8 100644 --- a/README.md +++ b/README.md @@ -14,10 +14,12 @@ Most internal tools start the same way: spin up a framework, wire up a database, Tinkerdown skips all of it. You write a single markdown file, declare your data sources in frontmatter, and use `lvt-*` attributes to make things interactive. No frontend framework, no API layer, no build step. -- **One file = one app.** Your entire app lives in a markdown file — data connections, layout, and interactions included. -- **8 data sources out of the box.** SQLite, PostgreSQL, REST APIs, JSON, CSV, shell commands, markdown files, and WASM. Declare them in frontmatter; they just work. -- **Instant feedback.** `tinkerdown serve` gives you hot reload and WebSocket-powered live updates. Change the file, see the result. -- **AI-friendly.** The format is simple enough that you can describe what you want to Claude or any LLM and get a working app back. +- **One file = one app.** Everything lives in a single markdown file — data connections, layout, and interactions. No project scaffolding, no 10-file boilerplate. If it's valid markdown, it's a working app. +- **Start simple, add power as needed.** Begin with pure markdown (headings become data, task lists become interactive checkboxes). Add YAML frontmatter for external databases. Drop to HTML + Go templates when you need full control. Each step is small and reversible. +- **8 data sources out of the box.** SQLite, PostgreSQL, REST APIs, JSON, CSV, shell commands, markdown files, and WASM. Declare them in frontmatter; they just work. Build a UI for your existing scripts in 30 seconds. +- **Git-native and self-hosted.** Your apps are plain text files in a git repo. Version history, grep, branching, offline access — all free. No vendor lock-in, no $10/month SaaS subscriptions. Your data stays yours. +- **AI-generation friendly.** Markdown is more deterministic for LLMs than React/JS — fewer files, fewer ways to fail. Describe what you want, get a working app back on the first try. And unlike generated React code, you can actually maintain it. +- **Built for throwaway tools.** Job search trackers, project dashboards, incident runbooks, expense logs. Apps you use for days or weeks, then archive. The markdown stays human-readable forever — even without Tinkerdown. If you've ever thought "I just need a quick UI for this database" — that's what Tinkerdown is for. From cfa91f4eb1ebb0a7e4f7e8c2235e147f5ef985a5 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 19 Mar 2026 23:02:34 +0000 Subject: [PATCH 04/12] Lead Why section with LLM-native pitch Reframes the section around the core value prop: Tinkerdown is a markdown format designed for LLMs to generate working UIs on the fly. Leads with the AI angle, follows with single-file simplicity and progressive power. https://claude.ai/code/session_01NhTvt3NdnN6vmUpwimuM81 --- README.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index e35b8e8..44674e6 100644 --- a/README.md +++ b/README.md @@ -10,18 +10,16 @@ Tinkerdown is a CLI tool for creating interactive, data-driven applications usin ## Why Tinkerdown? -Most internal tools start the same way: spin up a framework, wire up a database, write CRUD endpoints, build a UI. For a simple dashboard or admin panel, that's a lot of ceremony. +You need a quick UI — a dashboard, an admin panel, a tool for your team. With traditional frameworks, that means scaffolding a project, wiring up a database, writing API routes, and picking a frontend. For something you might only use for a week, that's way too much. -Tinkerdown skips all of it. You write a single markdown file, declare your data sources in frontmatter, and use `lvt-*` attributes to make things interactive. No frontend framework, no API layer, no build step. +Tinkerdown is a markdown format designed for LLMs to generate working UIs on the fly. Describe what you want, get a single markdown file back, run `tinkerdown serve`, done. No npm, no build step, no debugging generated React code. +- **LLM-native format.** Markdown is far more deterministic for LLMs than React/JS — one file, fewer ways to fail. AI gets it right on the first try, and unlike generated React code, you can actually read and maintain it. - **One file = one app.** Everything lives in a single markdown file — data connections, layout, and interactions. No project scaffolding, no 10-file boilerplate. If it's valid markdown, it's a working app. -- **Start simple, add power as needed.** Begin with pure markdown (headings become data, task lists become interactive checkboxes). Add YAML frontmatter for external databases. Drop to HTML + Go templates when you need full control. Each step is small and reversible. +- **Start simple, add power as needed.** Begin with pure markdown (task lists become interactive checkboxes, tables become editable grids). Add YAML frontmatter for external databases. Drop to HTML + Go templates when you need full control. Each step is small and reversible. - **8 data sources out of the box.** SQLite, PostgreSQL, REST APIs, JSON, CSV, shell commands, markdown files, and WASM. Declare them in frontmatter; they just work. Build a UI for your existing scripts in 30 seconds. -- **Git-native and self-hosted.** Your apps are plain text files in a git repo. Version history, grep, branching, offline access — all free. No vendor lock-in, no $10/month SaaS subscriptions. Your data stays yours. -- **AI-generation friendly.** Markdown is more deterministic for LLMs than React/JS — fewer files, fewer ways to fail. Describe what you want, get a working app back on the first try. And unlike generated React code, you can actually maintain it. -- **Built for throwaway tools.** Job search trackers, project dashboards, incident runbooks, expense logs. Apps you use for days or weeks, then archive. The markdown stays human-readable forever — even without Tinkerdown. - -If you've ever thought "I just need a quick UI for this database" — that's what Tinkerdown is for. +- **Git-native and self-hosted.** Plain text files in a git repo. Version history, grep, offline access — all free. No vendor lock-in, no SaaS subscriptions. Your data stays yours. +- **Built for throwaway tools.** Job search trackers, project dashboards, incident runbooks, expense logs. Use it for days or weeks, then archive. The markdown stays human-readable forever — even without Tinkerdown. ## Quick Start From 479efe8c6a08a1b1929c3f3187e102eb7a7cbda8 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 19 Mar 2026 23:03:35 +0000 Subject: [PATCH 05/12] Incorporate HN feedback into Why section Addresses key HN thread points: runtime vs MDX (compile-time), freezeable/reusable views, Kubernetes dashboard use case, and sharpens the on-the-fly UI pitch. https://claude.ai/code/session_01NhTvt3NdnN6vmUpwimuM81 --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 44674e6..23bad6b 100644 --- a/README.md +++ b/README.md @@ -14,10 +14,10 @@ You need a quick UI — a dashboard, an admin panel, a tool for your team. With Tinkerdown is a markdown format designed for LLMs to generate working UIs on the fly. Describe what you want, get a single markdown file back, run `tinkerdown serve`, done. No npm, no build step, no debugging generated React code. -- **LLM-native format.** Markdown is far more deterministic for LLMs than React/JS — one file, fewer ways to fail. AI gets it right on the first try, and unlike generated React code, you can actually read and maintain it. -- **One file = one app.** Everything lives in a single markdown file — data connections, layout, and interactions. No project scaffolding, no 10-file boilerplate. If it's valid markdown, it's a working app. +- **LLM-native format.** Markdown is far more deterministic for LLMs than React/JS — one file, fewer ways to fail. AI gets it right on the first try, and unlike generated React code, you can actually read and maintain it. Not a compile-time format like MDX — your UIs are live at runtime, with real data connections. +- **One file = one app.** Everything lives in a single markdown file — data connections, layout, and interactions. No project scaffolding, no 10-file boilerplate. If it's valid markdown, it's a working app. Generate it, save it, reuse it — every UI you create is a file you can freeze and come back to. - **Start simple, add power as needed.** Begin with pure markdown (task lists become interactive checkboxes, tables become editable grids). Add YAML frontmatter for external databases. Drop to HTML + Go templates when you need full control. Each step is small and reversible. -- **8 data sources out of the box.** SQLite, PostgreSQL, REST APIs, JSON, CSV, shell commands, markdown files, and WASM. Declare them in frontmatter; they just work. Build a UI for your existing scripts in 30 seconds. +- **8 data sources out of the box.** SQLite, PostgreSQL, REST APIs, JSON, CSV, shell commands, markdown files, and WASM. Declare them in frontmatter; they just work. Wire up a Kubernetes dashboard, a database admin panel, or a UI for your scripts in 30 seconds. - **Git-native and self-hosted.** Plain text files in a git repo. Version history, grep, offline access — all free. No vendor lock-in, no SaaS subscriptions. Your data stays yours. - **Built for throwaway tools.** Job search trackers, project dashboards, incident runbooks, expense logs. Use it for days or weeks, then archive. The markdown stays human-readable forever — even without Tinkerdown. From 38f9043a6186ad754ac3eb47fcffba1f8c6d2f61 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 19 Mar 2026 23:04:33 +0000 Subject: [PATCH 06/12] Rephrase Why section in original voice Rewrites all bullet points to avoid borrowed phrasing. Tightens the language and uses more concrete, specific examples throughout. https://claude.ai/code/session_01NhTvt3NdnN6vmUpwimuM81 --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 23bad6b..7acf076 100644 --- a/README.md +++ b/README.md @@ -14,12 +14,12 @@ You need a quick UI — a dashboard, an admin panel, a tool for your team. With Tinkerdown is a markdown format designed for LLMs to generate working UIs on the fly. Describe what you want, get a single markdown file back, run `tinkerdown serve`, done. No npm, no build step, no debugging generated React code. -- **LLM-native format.** Markdown is far more deterministic for LLMs than React/JS — one file, fewer ways to fail. AI gets it right on the first try, and unlike generated React code, you can actually read and maintain it. Not a compile-time format like MDX — your UIs are live at runtime, with real data connections. -- **One file = one app.** Everything lives in a single markdown file — data connections, layout, and interactions. No project scaffolding, no 10-file boilerplate. If it's valid markdown, it's a working app. Generate it, save it, reuse it — every UI you create is a file you can freeze and come back to. -- **Start simple, add power as needed.** Begin with pure markdown (task lists become interactive checkboxes, tables become editable grids). Add YAML frontmatter for external databases. Drop to HTML + Go templates when you need full control. Each step is small and reversible. -- **8 data sources out of the box.** SQLite, PostgreSQL, REST APIs, JSON, CSV, shell commands, markdown files, and WASM. Declare them in frontmatter; they just work. Wire up a Kubernetes dashboard, a database admin panel, or a UI for your scripts in 30 seconds. -- **Git-native and self-hosted.** Plain text files in a git repo. Version history, grep, offline access — all free. No vendor lock-in, no SaaS subscriptions. Your data stays yours. -- **Built for throwaway tools.** Job search trackers, project dashboards, incident runbooks, expense logs. Use it for days or weeks, then archive. The markdown stays human-readable forever — even without Tinkerdown. +- **LLM-native format.** LLMs produce reliable markdown far more consistently than multi-file JS projects. The output works on the first run, and the result is something a human can actually maintain. Unlike static formats like MDX, Tinkerdown files run live — they hold active connections to databases and APIs. +- **One file = one app.** Data connections, layout, and interactions all live in one markdown file. No scaffolding, no boilerplate. Once you have something useful, it's already a file you can stash in a repo and pull up again months later. +- **Start simple, add power as needed.** Pure markdown gets you surprisingly far — task lists become interactive checkboxes, tables become editable grids. When you outgrow that, add YAML frontmatter for external databases, or drop to HTML + Go templates for full control. +- **8 data sources out of the box.** SQLite, PostgreSQL, REST APIs, JSON, CSV, shell commands, markdown files, and WASM. Point at your existing infrastructure — a database, a cluster, an internal API — and have a working UI without writing any glue code. +- **Git-native and self-hosted.** Plain text in a repo means you get version history, search, offline access, and collaboration for free. No subscriptions, no platform lock-in. +- **Built for disposable tools.** The admin panel for this migration. The tracker for that hiring round. The runbook for on-call week. Tinkerdown is for tools with a shelf life — and when you're done, the markdown is still perfectly readable on its own. ## Quick Start From e5889410f8b1e450673793b42f5a4e16b4e395c3 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 19 Mar 2026 23:05:24 +0000 Subject: [PATCH 07/12] Condense Why intro to a single line https://claude.ai/code/session_01NhTvt3NdnN6vmUpwimuM81 --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 7acf076..ab31cdd 100644 --- a/README.md +++ b/README.md @@ -10,9 +10,7 @@ Tinkerdown is a CLI tool for creating interactive, data-driven applications usin ## Why Tinkerdown? -You need a quick UI — a dashboard, an admin panel, a tool for your team. With traditional frameworks, that means scaffolding a project, wiring up a database, writing API routes, and picking a frontend. For something you might only use for a week, that's way too much. - -Tinkerdown is a markdown format designed for LLMs to generate working UIs on the fly. Describe what you want, get a single markdown file back, run `tinkerdown serve`, done. No npm, no build step, no debugging generated React code. +Ask an LLM for a UI, get a markdown file, run it. No framework, no build step, no project to maintain. - **LLM-native format.** LLMs produce reliable markdown far more consistently than multi-file JS projects. The output works on the first run, and the result is something a human can actually maintain. Unlike static formats like MDX, Tinkerdown files run live — they hold active connections to databases and APIs. - **One file = one app.** Data connections, layout, and interactions all live in one markdown file. No scaffolding, no boilerplate. Once you have something useful, it's already a file you can stash in a repo and pull up again months later. From 2381c0dbd2e74aabeea6095b20e9edf250e9c178 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 19 Mar 2026 23:08:30 +0000 Subject: [PATCH 08/12] Use workflow framing for Why intro line https://claude.ai/code/session_01NhTvt3NdnN6vmUpwimuM81 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ab31cdd..dca77ae 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Tinkerdown is a CLI tool for creating interactive, data-driven applications usin ## Why Tinkerdown? -Ask an LLM for a UI, get a markdown file, run it. No framework, no build step, no project to maintain. +Prompt an LLM, get a markdown file, `tinkerdown serve`. That's the whole workflow. - **LLM-native format.** LLMs produce reliable markdown far more consistently than multi-file JS projects. The output works on the first run, and the result is something a human can actually maintain. Unlike static formats like MDX, Tinkerdown files run live — they hold active connections to databases and APIs. - **One file = one app.** Data connections, layout, and interactions all live in one markdown file. No scaffolding, no boilerplate. Once you have something useful, it's already a file you can stash in a repo and pull up again months later. From c9b94ecadde3a6a7746b41f989ec2e2070e46d5b Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 19 Mar 2026 23:08:45 +0000 Subject: [PATCH 09/12] Drop MDX reference from Why section https://claude.ai/code/session_01NhTvt3NdnN6vmUpwimuM81 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dca77ae..6714065 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ Tinkerdown is a CLI tool for creating interactive, data-driven applications usin Prompt an LLM, get a markdown file, `tinkerdown serve`. That's the whole workflow. -- **LLM-native format.** LLMs produce reliable markdown far more consistently than multi-file JS projects. The output works on the first run, and the result is something a human can actually maintain. Unlike static formats like MDX, Tinkerdown files run live — they hold active connections to databases and APIs. +- **LLM-native format.** LLMs produce reliable markdown far more consistently than multi-file JS projects. The output works on the first run, and the result is something a human can actually maintain. Tinkerdown files run live — they hold active connections to databases and APIs. - **One file = one app.** Data connections, layout, and interactions all live in one markdown file. No scaffolding, no boilerplate. Once you have something useful, it's already a file you can stash in a repo and pull up again months later. - **Start simple, add power as needed.** Pure markdown gets you surprisingly far — task lists become interactive checkboxes, tables become editable grids. When you outgrow that, add YAML frontmatter for external databases, or drop to HTML + Go templates for full control. - **8 data sources out of the box.** SQLite, PostgreSQL, REST APIs, JSON, CSV, shell commands, markdown files, and WASM. Point at your existing infrastructure — a database, a cluster, an internal API — and have a working UI without writing any glue code. From a3926ea1ffbf66a0562c4da02a21363e96b9f92a Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 19 Mar 2026 23:09:31 +0000 Subject: [PATCH 10/12] Rewrite Why intro to address the actual differentiator The previous intro described the workflow but didn't explain why markdown over React. Now directly addresses the maintenance and dependency burden that LLM-generated React still carries. https://claude.ai/code/session_01NhTvt3NdnN6vmUpwimuM81 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6714065..83fe8c2 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Tinkerdown is a CLI tool for creating interactive, data-driven applications usin ## Why Tinkerdown? -Prompt an LLM, get a markdown file, `tinkerdown serve`. That's the whole workflow. +An LLM can generate a React app, but you still need to install dependencies, debug build errors, and understand the code to change it. Tinkerdown apps are single markdown files — nothing to install, nothing to break, and anyone can read and edit the result. - **LLM-native format.** LLMs produce reliable markdown far more consistently than multi-file JS projects. The output works on the first run, and the result is something a human can actually maintain. Tinkerdown files run live — they hold active connections to databases and APIs. - **One file = one app.** Data connections, layout, and interactions all live in one markdown file. No scaffolding, no boilerplate. Once you have something useful, it's already a file you can stash in a repo and pull up again months later. From f8a23059af74c413abd2c3d7d697be5418283bc8 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 19 Mar 2026 23:19:26 +0000 Subject: [PATCH 11/12] Sharpen Why section with research-backed positioning Rewritten based on web research into vibe coding pain points, AI app builder failures, and the disposable software trend. Leads with the concrete problems of AI-generated React (context drift, dependency hell, debugging someone else's code), then positions Tinkerdown's declarative format as the fix: constrained enough for reliable AI generation, small enough for humans to fully understand. https://claude.ai/code/session_01NhTvt3NdnN6vmUpwimuM81 --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 83fe8c2..42bc4cb 100644 --- a/README.md +++ b/README.md @@ -10,14 +10,14 @@ Tinkerdown is a CLI tool for creating interactive, data-driven applications usin ## Why Tinkerdown? -An LLM can generate a React app, but you still need to install dependencies, debug build errors, and understand the code to change it. Tinkerdown apps are single markdown files — nothing to install, nothing to break, and anyone can read and edit the result. +AI app builders generate React projects with dozens of files, dependency trees, and build pipelines. When something breaks — and it will — you're debugging code you didn't write, burning tokens trying to fix context window drift, and wrestling with framework complexity that has nothing to do with your actual problem. Tinkerdown takes a different approach: the entire app is a single markdown file. There's no build step, no node_modules, and nothing to drift out of sync. -- **LLM-native format.** LLMs produce reliable markdown far more consistently than multi-file JS projects. The output works on the first run, and the result is something a human can actually maintain. Tinkerdown files run live — they hold active connections to databases and APIs. -- **One file = one app.** Data connections, layout, and interactions all live in one markdown file. No scaffolding, no boilerplate. Once you have something useful, it's already a file you can stash in a repo and pull up again months later. +- **Tiny surface area for AI.** A Tinkerdown file is declarative — data sources in YAML, layout in markdown, interactions via HTML attributes. There's no component tree to get tangled, no state management to misconfigure, no async rendering bugs. The format is constrained enough that LLMs get it right consistently, and small enough that you can read the whole thing and understand it. +- **One file = one app.** Data connections, layout, and interactions all live in one markdown file. No scaffolding, no boilerplate. Once you have something useful, it's already a file you can stash in a repo and pull up months later. - **Start simple, add power as needed.** Pure markdown gets you surprisingly far — task lists become interactive checkboxes, tables become editable grids. When you outgrow that, add YAML frontmatter for external databases, or drop to HTML + Go templates for full control. - **8 data sources out of the box.** SQLite, PostgreSQL, REST APIs, JSON, CSV, shell commands, markdown files, and WASM. Point at your existing infrastructure — a database, a cluster, an internal API — and have a working UI without writing any glue code. - **Git-native and self-hosted.** Plain text in a repo means you get version history, search, offline access, and collaboration for free. No subscriptions, no platform lock-in. -- **Built for disposable tools.** The admin panel for this migration. The tracker for that hiring round. The runbook for on-call week. Tinkerdown is for tools with a shelf life — and when you're done, the markdown is still perfectly readable on its own. +- **Made for disposable software.** The admin panel for this sprint. The tracker for that hiring round. The runbook for on-call week. Software you'd never justify scaffolding a React project for, but that's genuinely useful for a few days or weeks. When you're done, the markdown is still readable on its own. ## Quick Start From 732ba8800883d8b6b26a0fe4de91ab3236b96ced Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 19 Mar 2026 23:29:42 +0000 Subject: [PATCH 12/12] Address PR review comments on demo SVG and README - Remove invalid `y` attribute from circle element (only cx/cy/r valid) - Match clip path rx="10" to window frame border radius - Add timing comment to SMIL animation for maintainability - Improve alt text with descriptive content for accessibility https://claude.ai/code/session_01NhTvt3NdnN6vmUpwimuM81 --- README.md | 2 +- docs/assets/demo.svg | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 42bc4cb..36d4d3c 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ **Build data-driven apps with markdown**

- Tinkerdown demo: write markdown, get an interactive app + Animated demo showing a markdown file with YAML frontmatter and lvt attributes being served by Tinkerdown into a live interactive task manager with table, status badges, and action buttons

Tinkerdown is a CLI tool for creating interactive, data-driven applications using markdown files. Connect to databases, APIs, and files with zero boilerplate. Built on [LiveTemplate](https://github.com/livetemplate/livetemplate). diff --git a/docs/assets/demo.svg b/docs/assets/demo.svg index a648ed5..e67d8fb 100644 --- a/docs/assets/demo.svg +++ b/docs/assets/demo.svg @@ -54,8 +54,8 @@ - - + + @@ -202,13 +202,14 @@ + - + Live • Connected via WebSocket