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.
One booking page, two URLs. page.ts renders it; each HTTP file is a separate
subdomain, so either can be killed without touching the other.
| file | url | notes |
|---|---|---|
main.ts | https://charliechat.val.run | open, indexable |
slackbot.ts | https://charlieslackchat.val.run | gated, noindex, disposable |
Edit SLOTS in page.ts to change time slots and Google Calendar links.
Identical page, but the slots point at /go/15|30|45 — a redirect that counts
click-throughs before handing off to Google Calendar. Three ways to shut it
off, softest to hardest:
- Manual —
GET /close?key=$SLACKBOT_KEY. Also/open,/status,/reset. - Automatic —
CAPclick-throughs per rolling 7 days, then it closes itself. - Nuclear — delete
slackbot.ts. The subdomain 404s; charliechat.val.run is unaffected.
Closed replaces the three slots with a single email button. /go/* stops
redirecting too, so a copy-pasted deep link can't sneak past the gate.
State lives in the val-scoped blob slackbot-gate. SLACKBOT_KEY is an env
var on this val.
Rendering mermaid diagram...
Light/dark via system preference. No dependencies.