A full-featured, open-source CRM built entirely on Val Town. Manage contacts, companies, deals, and activities with a clean light UI -- no external infrastructure needed.
main.ts Hono entry point, mounts all page routers
db.ts SQLite schema, types, and all data access functions
components.tsx Shared layout, sidebar, stat cards, badges, SVG icons
pages/
dashboard.tsx Dashboard with stats and recent activity
contacts.tsx Contacts list, detail, create, edit
companies.tsx Companies list, detail, create, edit
deals.tsx Deals pipeline (kanban + table), detail, create, edit
activities.tsx Activity log with create and delete
All pages are server-rendered HTML. Forms POST directly and redirect.
GET / -- Dashboard with aggregate stats
GET /contacts -- List (with ?search= support)GET /contacts/new -- Create formPOST /contacts -- CreateGET /contacts/:id -- Detail viewGET /contacts/:id/edit -- Edit formPOST /contacts/:id -- UpdatePOST /contacts/:id/delete -- DeleteSame pattern as contacts at /companies/*
GET /deals -- Pipeline or table view (with ?view=pipeline|table)GET /deals/new -- Create formPOST /deals -- CreateGET /deals/:id -- Detail with stage quick-change buttonsPOST /deals/:id/stage -- Change stageGET /deals/:id/edit -- Edit formPOST /deals/:id -- UpdatePOST /deals/:id/delete -- DeleteGET /activities -- Timeline viewGET /activities/new -- Log formPOST /activities -- CreatePOST /activities/:id/delete -- Deletelead / qualified / proposal / negotiation / won / lost
note / call / email / meeting / task
Some ideas for what to build on top: