Val Town Newsletter 19
In the last month, we shipped a full-screen val Editor, a new 5x faster HTTP val runtime, a Dashboard for your account, a new Search experience, a redesign for our AI bot Townie and the ability to use tools, a new Trending leaderboard, User Profile filters and sorts, and a bunch of other improvements and bug fixes.
We’ve also been on a blogging spree: Moving from Express to Fastify, Here’s why we’re also using TypeBox, and Why spawning a new process in Node is so slow?.
On the livestream, I coded with Mary Rose Cook on concert ticket alerts, Sahil Lavingia on a stock buyback form, and Peter van Hardenberg on a Automerge change notifier.
↔️ Full-screen editor
At long last, you can edit your vals in full-screen. This new editor also features a classic left-sidebars with all your vals and folders. Thanks bcjordan and hunter for the feature requests 🙏
Try it out: val.town/editor
One of my favorite features is the ability to multi-select vals (shift-click) and drag them into folders to clean up your workspace.
⚡️ 5x Faster HTTP vals at scale
We built a new runtime for HTTP vals that is much faster at scale by re-using existing Deno processes. We’ve seen up to a 5x speedup for some vals. Try it out by selecting HTTP (Preview)
for your val’s type. Learn more in our announcement post.
📊 Dashboard
We built a Dashboard to help you more quickly navigate your vals and see what’s happening in Val Town. Thanks nbbaier for the feature request 🙏
You can access your dashboard today at val.town/dashboard.
🔎 Val Search
Search results are now powered by exact matching, exact phrase matching, and “vibes-based” vector search. We sort results in part by indicators of that val’s quality, ie how many times it’s been forked or liked. You can filter results by val type and by whether the val was created by you or not.
Try some searches: anthropic | openai | substrate | embeddings | react client side
🤖 Townie redesign & tool-use
Townie has a new look! It can also use the entire Val Town API for you. This means you can ask Townie to list, create, update, and delete not only vals but also blobs and sqlite data – it can run anything in our new API. Townie automatically performs GET requests and asks you to confirm before running any mutative action.
In the following demo video, you’ll notice a couple times Townie didn’t do exactly what I wanted, but we were able to work around it by doing it ourselves or asking it again. Townie is still a work in progress, but it’s a lot of fun to play with.
🦾 VALL-E Demo
LLM code generation is so exciting right now that we weren’t able to limit ourselves to just Townie. We built a prototype inspired by Anthropic Projects called VALL-E that’s great at writing vals for you. We built another prototype, VALL-E Draw, which embeds it in TLDraw! Both were built entirely in vals – so you can fork and tweak em!
The video below demos how to create multiple apps simultaneously with VALL-E Draw: a Hacker News clone with a real backend and a simple hello world example app with craazzzy styles. Here’s two demos of the original VALL-E.
🔥 Trending
Collect likes, forks, and references to gain fame and fortune – well at least fame – on the new and improved Val Town trending leaderboard. The new trending has a fresh look and much more useful rankings.
Check it out: val.town/trending
❤️ Profile filters and sorts
Profile pages now have filters and sorts to help you find the vals you’re looking for. You can filter by val type and sort by date created, date updated, likes, and alphabetically.
Try it out on some power users’ profiles: pomdtr | iamseeley | nbbaier | substrate | yawnxyx
🎉 Other updates
- Cancel a running val. Thanks Dan Shipper, Matt McClure, and Jan Zheng for requesting this feature 🙏
- Added a refresh button on the http preview iframe
- Fixed links to errors in stacktraces
- Upgraded the README editor to CodeMirror
- Upgraded OpenAI in the standard library to
gpt-4o-mini
for free users (up fromgpt-3.5
) - Support updating val types through the API
- Cleaned up Val Town SDK
- Rewrote our Saving data from a web page guide. Thanks mharris717 for the request
- Automatically generate the new Val Town SDK when our API changes
- Val Town took stewardship of val-town-playground and val-town-vscode from the amazing pomdtr
🛣️ Roadmap
💪 What we’re working on
Next month we focusing on onboarding, polish, performance, reliability, and hiring – join us!
- Rolling out
HTTP (Preview)
as the new defaultHTTP
val type - Val runtime performance
- LLM-generated vals, ie Townie and VALL-E improvements
🔜 Coming soon
Here’s some of the top features we’re planning to work in the coming months. Please make feature requests and vote on what you’d like to see next.
🌟 Community Vals
- The Substrate is on 🔥 with a dozen vals that show how much faster they run multi-step LLM flows: sub.audio, Illustrated Primer, Hacker News RAG, Similar Sites, Spanish Lesson, WebSim
- Kayla built a yenny.app, a yen conversion app, powered by Val Town
- Nico gave ChatGPT the ability to install python packages, powered by a val
- Sam Rose built Ping so you can send him anonymous messages, powered by a val
- Achille found a way to embed a full stack vite + honojs app in a single JSR import, ie excalidraw!
- Jan built a Japanese Translator in Google Sheets, a clone of a viral drag effect, and a function to get citations
- pvh built a cron that notifies of changes to Automerge documents
- Mux built an API to dub videos using Sieve
- Lu “todepond” Wilson built a magic iframe powered by Val Town
- I built a bunch of fun utilities: “the create react app” of Val Town and a video explaining React, SSR, and Val Town, website load performance tester, DNS lookup site, lookup your internet twin with ExaAI, played around with Browserbase, explained when esm.town transpiles
- Jackson built a VIM-mode markdown editor
- Max built a Infinite Graph of SVGs
- Pete Millspaugh wrote and sent the June 2024 Edition of his wonderful newsletter
- dglazkov built a better Discord helper function, a sample implementation of the Breadboard Servive Endpoint, a BaaS (Breadboard As a Service), and a CORS-safe proxy for qdrant
- mharris717 wrote a guide to use vals in tools for LLM calls
- Peter Zakin built a similar websites explorer
- Will built a jumpchain.net (source), an info site and resource guide for the Jumpchain community
- Sam ran Postgres Lite in a val, which runs much faster on our new HTTP runtime
- Triozer built a API to query if someone is live on YouTube or Twitch
- Kyle built a git release notes generator
- Brian built a cap friendly scraper
- Steve put the Ace editor in a val
- Matthias built a SAGA scraper and notifier
- Park built a clean simple BTC price site
- bohaska built a cron that automatically answers issues from NationStates using sentiment analysis
- vipshek built a cron that detects new website contents
- jonbo built an API that generates a fake server-side delay
- Seeley built a enterprise-grade FizzBuzz
- edgeeffect built a smart garbage day notifier
- Will built a work time calculator