Tinkerdown: One-File AI App Builder
Build working web apps in a single markdown file. No React. No build step. Just run.
When to Use Tinkerdown
Use Tinkerdown for:
- •Internal tools - Admin dashboards, data viewers, CRUD apps
- •Prototypes - Quick interactive demos
- •Personal utilities - Task managers, trackers, simple apps
- •Data displays - Tables, forms, dashboards connected to databases/APIs
Don't use Tinkerdown for:
- •Public-facing marketing sites (use static site generators)
- •Apps requiring complex client-side state (use React/Vue)
- •Real-time multiplayer games
Quick Start
1. Create a markdown file
Create myapp.md:
markdown
---
title: "My App"
---
# My App
\`\`\`lvt
<div>
<h2>Add Item</h2>
<form lvt-submit="save" lvt-persist="items">
<input type="text" name="title" required>
<button type="submit">Add</button>
</form>
<h2>Items</h2>
{{if .Items}}
<ul>
{{range .Items}}
<li>
{{.Title}}
<button lvt-click="Delete" lvt-data-id="{{.Id}}">Delete</button>
</li>
{{end}}
</ul>
{{else}}
<p>No items yet.</p>
{{end}}
</div>
\`\`\`
2. Run it
bash
tinkerdown serve myapp.md
3. Open in browser
Navigate to http://localhost:3000 - your app is running!
Key Concepts
| Concept | What It Does |
|---|---|
lvt-persist | Auto-saves form data to SQLite. Creates table, generates CRUD. |
lvt-source | Connects to external data (PostgreSQL, REST API, CSV, JSON, scripts) |
lvt-click | Triggers server action on click |
lvt-submit | Handles form submission |
lvt-data-* | Passes data with actions (e.g., lvt-data-id="123") |
| frontmatter sources | Define data sources in frontmatter - no tinkerdown.yaml needed! |
Reference
See reference.md for complete API documentation:
- •File structure and frontmatter
- •All
lvt-*attributes - •Source configuration (pg, rest, csv, json, exec)
- •Template syntax (Go templates)
- •Components (datatable, dropdown)
Examples
See examples/ for complete working apps:
- •Todo App - Basic CRUD with
lvt-persist - •Dashboard - Data display with
lvt-source - •Contact Form - Form handling
- •Blog - Multi-page with partials
- •Inventory - PostgreSQL integration
- •Survey - Multi-step forms
- •Booking - Date/time handling
- •Expense Tracker - CSV import
- •FAQ - Accordion component
- •Status Page - Real-time updates