• Blog
  • Docs
  • Pricing
  • We’re hiring!
Log inSign up
dcm31

dcm31

crm

Open source CRM - contacts, companies, deals, activities
Public
Like
crm
Home
Code
5
pages
5
README.md
components.tsx
db.ts
H
main.ts
Environment variables
Branches
1
Pull requests
Remixes
1
History
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.
Sign up now
Code
/
Code
/
Search
main.ts
https://dcm31--6756222e02de11f1b5a742dde27851f2.web.val.run
README.md

CRM

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.

Live Demo

Features

Dashboard

  • Pipeline value and revenue stats at a glance
  • Recent deals feed
  • Activity timeline

Contacts

  • Full CRUD with search
  • Linked to companies
  • Job title, email, phone, location tracking
  • Color-coded avatar initials

Companies

  • Domain, industry, size tracking
  • Contacts auto-linked on detail page
  • Search and filter

Deals Pipeline

  • Kanban board -- visual pipeline with Lead / Qualified / Proposal / Negotiation / Won / Lost stages
  • Table view -- sortable list of all deals
  • One-click stage transitions from the detail page
  • Amount, probability, close date, linked contact and company

Activities

  • Log notes, calls, emails, meetings, and tasks
  • Link to contacts, companies, or deals
  • Due date tracking
  • Chronological timeline view

Tech Stack

  • Runtime: Val Town (Deno)
  • Database: Val Town SQLite (persistent, zero-config)
  • Server: Hono with JSX -- server-side rendered HTML pages
  • Styling: Tailwind CSS via CDN
  • No build step, no client-side JS framework

Project Structure

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

API / Routes

All pages are server-rendered HTML. Forms POST directly and redirect.

Dashboard

GET / -- Dashboard with aggregate stats

Contacts

  • GET /contacts -- List (with ?search= support)
  • GET /contacts/new -- Create form
  • POST /contacts -- Create
  • GET /contacts/:id -- Detail view
  • GET /contacts/:id/edit -- Edit form
  • POST /contacts/:id -- Update
  • POST /contacts/:id/delete -- Delete

Companies

Same pattern as contacts at /companies/*

Deals

  • GET /deals -- Pipeline or table view (with ?view=pipeline|table)
  • GET /deals/new -- Create form
  • POST /deals -- Create
  • GET /deals/:id -- Detail with stage quick-change buttons
  • POST /deals/:id/stage -- Change stage
  • GET /deals/:id/edit -- Edit form
  • POST /deals/:id -- Update
  • POST /deals/:id/delete -- Delete

Activities

  • GET /activities -- Timeline view
  • GET /activities/new -- Log form
  • POST /activities -- Create
  • POST /activities/:id/delete -- Delete

Deal Stages

lead / qualified / proposal / negotiation / won / lost

Activity Types

note / call / email / meeting / task

Extending

Some ideas for what to build on top:

  • CSV import/export for bulk contact uploads
  • Email integration via Val Town email vals
  • Webhooks on deal stage changes
  • Custom fields per entity type
  • Multi-user auth with Val Town environment variables
  • Reporting -- win rate, avg deal size, sales velocity charts
Code
pagesREADME.mdcomponents.tsxdb.ts
H
main.ts
FeaturesVersion controlCode intelligenceCLIMCP
Use cases
TeamsAI agentsSlackGTM
DocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
PricingNewsletterBlogAboutCareers
We’re hiring!
Brandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Open Source Pledge
Terms of usePrivacy policyAbuse contact
© 2026 Val Town, Inc.