• Townie
    AI
  • Blog
  • Docs
  • Pricing
  • We’re hiring!
Log inSign up
petermillspaugh

petermillspaugh

vt-blog

Remix of valdottown/blog
Public
Like
vt-blog
Home
Code
9
components
12
posts
14
routes
6
styles
2
utils
9
IMAGES.md
README.md
TODOs.md
H
index.ts
Branches
1
Pull requests
Remixes
History
Environment variables
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
/
posts
/
2025-10-02-in-val-out.md
Code
/
posts
/
2025-10-02-in-val-out.md
Search
10/2/2025
Viewing readonly version of main branch: v20
View latest version
2025-10-02-in-val-out.md
title:
In, Val, Out
description:
I/O with a val in the middle
pubDate:
2025-10-02:00:00.000Z
author:
Pete Millspaugh

One of the most common patterns in Val Town is to take data input from some external source, do something useful with that data, and send output to another external source.

I/O but with a val in the middle: I/V/O. In, val, out.

in-val-out.svg

The canonical example is a user signup alert:

  1. Receive a webhook when a user signs up (e.g., from Supabase)
  2. Process or enrich the data in a val (e.g., with Clay)
  3. Notify your team (e.g., on Slack)

Dozens of examples are listed on the I/V/O docs, but the best examples will be the vals you create and use. Consider this a Call For Vals.

In

Input could be customer support email you receive, stars or new issues on your GitHub repo, failed payments from Stripe, user signups from Supabase, calendar invites, Sentry errors, form submissions—you name it.

Val

Once you've piped input into a val, you could analyze or classify data with OpenAI or Anthropic, enrich it with browser automation via Browserbase or Kernel, verify data with Twilio, or pipe it directly to an output channel.

Out

After input and processing, you could notify yourself over email or Slack, create a Linear issue, open a GitHub PR, write to a Notion doc or Airtable, update a Google Sheet, persist data in SQLite or Supabase, or whatever else would be useful to you and your team.

Call For Vals

Reach out to the Val Town team on Discord or over email if you'd like a hand setting up I/V/O, or feel free to open a docs PR linking to your val.

FeaturesVersion controlCode intelligenceCLI
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
© 2025 Val Town, Inc.