Public
CRM UI demo: HTML rendered from val SQLite + blob data
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
A tiny CRM where every screen is HTML rendered straight from the val — pulled live from the val's own SQLite + Blob. Built to probe how far the Val Town MCP's HTTP rendering goes inside a chat.
| Route | Renders | Data source |
|---|---|---|
/ | Leads index | SQLite contacts |
/c/:id | Lead card (+ photo) | SQLite contacts |
/c/:id/timeline | Touchpoint timeline | SQLite touchpoints |
/c/:id/email | AI-drafted email | generated from data |
/c/:id/enrich | Enrichment panel | Blob crm_enrich_* |
/signups | 30-day signup chart | SQLite signups |
Try c1 (Maya Krishnan) for the richest record; c2–c6 also seeded.
- Self-seeds fake data on first request (idempotent — checks
COUNT(*)). - Photos are fetched once from randomuser.me and cached as base64 in the contact row, so they render even inside a sandboxed iframe with no network access.
- Every view is static HTML + inline SVG, zero client JS — so it renders anywhere the response is shown.
Rendering mermaid diagram...
Files: main.ts (routes) · data.ts (seed + queries) · ui.ts (rendering).