As ever, we have plenty of new features and niceties in Val Town since last month: Val Town Access, Deno 2.9, Pro & Business trials, the “Learn Val Town” video series, new models in Townie, and more.

Val Town Access

Last month, we launched Val Town Access. Tom wrote an announcement post with full detail, but the tl;dr is that vals can now be shared like Google docs—restricted to your team, shared via email, or fully public.

App view for HTTP vals

Vals now have an App view that embeds a rendered website alongside your code, logs, analytics, storage, et cetera.

App view for a val

Free trials for Pro & Business

To try before you buy [features like Access^], we now have 14-day free trials for Pro and Business accounts.

“Learn Val Town” video series

We’ve started to record a good old fashioned video tutorial series, “Learn Val Town,” published on YouTube. It feels very 2010s devrel, but to be embarrassingly honest, we’re also trying to feed the language models. Still, if you’re standing your ground as a human programmer (as you should!), the videos are for you.

Deno 2.9

This week, we upgraded the Val Town runtime to Deno 2.9.6, up from 2.7.5. The headliner, for me, is text imports: you can now directly read HTML, CSS, Markdown, and other files from within a val without having to call the API via readFile in std/utils. We recorded a video on imports in Val Town.

The upgrade also brings performance upgrades, like faster cold starts, and increased compatibility with both browser APIs and node: builtins—Deno now passes >75% of the Node test suite, up from 42% in 2.7.

Townie “Auto” mode & new models

We replaced Townie’s “Normal” mode with the similar “Auto” mode. In Auto mode, Townie won’t ask your permission for low-risk tool calls like reading files, but you’ll still approve potentially destructive actions like writing to SQLite.

Townie also has some new models to play with: GLM-5.3 Flash replaced 5.2, Fable 5.1 replaced 5, and DeepSeek V4 Flash is Townie’s new default model. We also: added back web search to non-Anthropic models thanks to an upstream fix from Vercel’s AI Gateway; made a few small performance wins to speed up Townie’s responses; and now surface each model’s “thinking” in an expandable section, if you want to see under the hood.

Templates for MCP servers, AEO, webhooks

As always, we’re adding templates for your remixing pleasure. We have new ones for building your own MCP server (along with a companion video); doing AEO research for your brand; and handling GitHub webhooks. We also have a new Discover page that gathers templates, staff picks, integration guides, and vals by tag.

Adding custom domains & email addresses

Custom domains in val.town/settings/domains now have a setup wizard dialog instead of an inline form. We also recorded videos on both custom domains and custom subdomains. Custom email addresses moved out of the domains settings page into their own val.town/settings/emails page.

MCP server improvements

The Val Town MCP server allows your agent to do pretty much anything you can do in the Val Town UI. Now, org-scoped API tokens allow creating and remixing and listing vals, creating branches, running code, and granting access, among other new tools. MCP clients can also link environment variable groups to vals. For better privacy defaults, remixing now sets org remixes to private, authorizes the target org up front, and disconnects remixes of templates org vals from upstream. Commits made through your MCP client record the client, and val history shows an MCP badge with the client name in the tooltip—Claude, ChatGPT, or whomever. (Attribution also now covers the CLI and API, along with Townie and MCP clients.) We also fixed MCP OAuth for Cursor.

Lightning round

  • API tokens now record which org member created them
  • Free plans are now limited to 10 cron triggers per val on Free plans (which should be more than enough) and 100 on paid plans
  • The file tree dropdown menu now has buttons to collapse or expand all folders
  • Auto-closing brackets can now be turned off in editor settings
  • You can now create a branch from a past version, reachable from the history/commits list and the diff view
  • History now shows deleted files with a diff view for the deleted file and full history so you can revert the deletion
  • Diffs on merges and PRs now have a hide-whitespace option
  • The shortcut Cmd + Shift + L now toggles the logs drawer
  • Log traces now show the file path on hover, org-wide logs show the project name, and log URL params are preserved in links
  • Line-number links on the latest version of a file now include the version (e.g. #L32@64) and warn when the latest version no longer matches
  • Deleting a val now requires typing the val name to confirm
  • README markdown now supports url:<filename>.ts to link to an HTTP file’s endpoint
  • A val’s overview shows HTTP, cron, and email trigger badges, and clicking a badge lists the files for that trigger
  • Spaces are auto-transformed to hyphens when naming a val
  • Townie will now (often) nudge you to claim a nice custom subdomain for HTTP vals
  • Townie can now cancel long-running tool calls that appear to be hanging
  • You can now book a demo call right from your val dashboard
  • Val settings now explain who can edit a val and allow you to invite contributors

We're hiring!

Are you an infra engineer who cares about the joy of programming?

View position →