Val Town Newsletter 12

Steve Krouse on

We’re on Product Hunt! Please show us some love by leaving a review ❤️🙏

August was a busy month! We announced our plans for the Runtime v3, totally revamped how you build API endpoints on Val Town with our new web-standard Web API, added another column on desktop so you can view multiple vals side-by-side, “public but unlisted” vals for private-ish use-cases, TypeScript intelligence generally available, notifications when folks comment or like your vals, the ability to properly fork vals, dark mode, and many more features and fixes, a bunch of tutorials, blogs, video, podcasts, and did I mention we’re live on Product Hunt right now?

Val Town is on Product Hunt

If you’re reading this on Sept 5th, then we would love your support on Product Hunt! Show off some of your cool vals, tell a story, or give us some feedback. We’d really appreciate you helping new folks discover us by leaving a review ❤️

Screenshot 2023-09-05 at 07.12.07@2x.png

Blogs, podcasts, tutorials

Runtime v3 is in development

We recently wrote about issues with our current runtime, and how the v3 runtime is going to correct them. We’re moving away from custom JavaScript features in favor standard JavaScript, made delightful with editor support. What was implicit and magical will become explicit and robust — but keeping the magical vibes without the headaches.

A snippet of code from the current v2 runtime:

let result = await;

Our plan for the v3 runtime:

import { fetchJSON } from "vt/stevekrouse/fetchJSON";
import { email } from "vt/std/email";
let result = await fetchJSON("...");

You’ll notice the absence of the @ symbol and standard imports (via import maps). Read more here, and let us know what you think. We know we’re removing some of your favorite features, but we are confident we can replace them with web-standard equivalents that you’ll like just as much or more!

Ain’t No Party Like A JavaScript Party

We featured on a recent episode of JSParty and talked about all things Val Town including where the idea came from, how vals are discovered and interact and our tech stack.

JS Party 287: Take me to Val Town – Listen on

Steve on Scaling Devtools

My podcast tour finishes up strong with an episode with Jack Bridger, focused a bit more on the business side of things.

Discord Bot Tutorial

We’ve been making it easier than ever to get started hosting a Discord bot on Val Town. We now have a new tutorial and video.

Handling <form> data

We released a quick tutorial about handling HTML Form data using vals, which is perfect for static sites.

Val Town 🤝 GPT

We wrote a guide on fine-tuning a ChatGPT-3.5 model for use in your own domains. It’s not quite the right time for Val Town to head in this direction, but we’re actively working on getting LLMs to help you write vals.



We released our new Web API, the future of building servers on Val Town. A Val conforms to the Web API interface when it:

  1. accepts a Request
  2. returns a Response

That’s it! We love it and we think it’s a huge step forwards towards building Vals that adhere to web standards and run anywhere.

Here are a couple of examples to see how simple yet powerful it can be:

Unlisted Vals

For your vals that need to be open to the internet but not discoverable on Val Town by anyone, we have the new “Unlisted” mode. This complements the Private and Public modes and can be changed using the same switch.


There was a lot of feedback on our New Val button, and how it opens up in a modal that obscure other vals. We took that feedback to heart, and Tom prototyped a bunch of other solutions, and we finally landed on one we’re really happy with:

  1. Preview of vals when hovering over @references
  2. Pinning vals to a sidebar (from the preview or the … menu)

The pinned vals column is resizable by dragging its border. Note that this is desktop-only, since there’s not quite enough room for two panes on a phone.

Types for everyone

We recently added TypeScript editor support, but it was buggy and slow, so we kept it as an opt-in beta feature. However, we polished it up, and moved it to a web worker, freeing up the main thread to keep our UI nice and snappy. We moved it out of beta, so now everyone will get lovely type support throughout Val Town.

Val Templates

Now when you create a new val, you get a handy list of templates to get you started. We’re particularly excited for how this can help new users discover what they can make in Val Town. This feature also foreshadows one of our most exciting UI improvements coming soon…

Screenshot 2023-09-05 at 08.47.23@2x.png


We’re building out proper notification infrastructure. We’ve got comments, likes, and references so far. Look out for forks, mentions, and errors — as well as push notifications via email & webhook coming soon!

Screenshot 2023-09-05 at 08.50.41@2x.png

Email anyone from Val Town

Val Town Pro users can now email anyone from Val Town. This opens up lots of possibilities for creating more dynamic services on Val Town. Check out, and these email bots for ideas. This val is a small taste of how we’ll make APIs like web standard. It’s a bit clunky at the moment, but we have lots of ideas on how to improve it.

Screenshot 2023-08-30 at 12.30.38.png

READMEs and Comments get images and references

A picture paints a thousand words, so keep your READMEs and comments easy to understand by adding some with our new drag-and-drop image functionality.

Fork vals

At long last, you can properly fork a val, and have its provenance tracked in the database. Before we just added a // Forked from @someones.val comment at the bottom of forked vals. We also migrated as many of those old-style forked vals over as possible. Now a forked val has a little icon in the bottom left of the val. You can also fork your own val — the option to do so is in the menu.

Screenshot 2023-09-05 at 08.37.41@2x.png

Screenshot 2023-09-05 at 08.38.01@2x.png

Dark mode

Val Town now has Dark mode! There’s also Auto mode to assume the system setting. We’re one of the cool kids now 😎

Val Town Universe

Tom created Val Town Universe, a way to explore vals and their connections visually.


Val Town wouldn’t be a social site without tagging, so now you can tag people in Val READMEs and comments.

Response body decoded

When your web val returns a Response, it technically could be anything (ie binary) so we show the base64 encoded value. However that’s annoying when you know it’s just text, ie HTML or JSON. Now we show you the parsed response body when available.


Embed vals in Notion

Copy and paste a val link to Notion to embed it. (Before you had to specifically copy the “Embed Link”, but now it auto-converts any val link.) Thanks, friends at Notion and Iframely!


  • The app now opens val references without opening a new tab by default.
  • Feedback button has been reintroduced to the navbar.
  • The favicon is outlined in white so you can see it in dark browsers
  • Updated Codemirror
  • Updated Deno to 1.36.2 (from 1.35)
  • Improvements in handling tooltips, tabbing, and dialog interactions.
  • Rotated the three dots menu from vertical to horizontal
  • Refined various APIs, and shipped the new references API, runs API and val versions API


  • Runtime v3
  • Transpiler (Runtime v2 → v3)
  • Notifications (forks, errors, mentions, push to email & webhook)
  • Pull Requests
  • Custom domains
  • AI generated vals
  • Val Types (ie Web API val, function val, JSON val, with UI clarifications for each)
  • Improvements to embedded val

😎 Cool Vals

Edit this page