Public
signalnode.com — site, lead capture, Twilio missed-call demo
leadssignal-nodetwiliowebsite
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.

What's the easiest way to put a form online and save submissions?

Remix this val. It serves a contact form (name, email, message) at /, saves every submission to the val's own SQLite database, and lists everything received at /submissions. No external services, no API keys, no env vars.

Setup

  1. Remix this val.
  2. Open the HTTP endpoint of main.tsx — that is your live form. Share the URL.
  3. Visit /submissions on the same URL to see what people sent.

Each remix gets its own private SQLite database, so your submissions stay with your copy.

Files

  • main.tsx — Hono routes: GET / (form), POST /submit (save), GET /submissions (list)
  • db.ts — creates the submissions table and holds the two queries
  • components/Layout.tsx — shared page shell with Tailwind (via Twind)
  • components/FormPage.tsx — the form
  • components/SubmissionsPage.tsx — the list

Notes

  • /submissions is public by default. If your form collects anything sensitive, protect that route before sharing the form URL.
  • No client-side JavaScript: the form is a plain HTML POST.