Val Town Newsletter 21
Townie, our AI code assistant, got huge upgrades this month. We fixed a dozen bugs and shipped many of your feature requests. We also made big strides in HTTP val performance, are deprecating some old APIs, and made a number of other upgrades and fixes, detailed below.
You all created hundreds of awesome vals last month! Our favorite 50 are featured at the bottom of this newsletter.
🤖 Townie upgrades
Townie can blow-your-mind and it can make you tear your hair out. We’re working hard to make it more of the former and less of the latter. Here’s some of the improvements we’ve made:
- Townie can create & edit any kind of val (not just HTTP vals)
- You can upload images to Townie to help it understand your request
- You can view requests and logs from within Townie
- We made it easier to revert to past versions (more improvements incoming)
- Townie can detect and fix syntax errors and client-side errors
- Tom fundamentally re-architected to be less buggy
- Jackson setup a suite of evals to improve Townie’s accuracy
- Townie diffs are copyable without the
+
and-
characters - Diffs are off by default. You can request them explicitly
- Townie doesn’t overwrite your hand-written code as often
- Townie has a docs page with tips & tricks
Please continue to reach out when Townie does something amazing or awful. Your feedback is invaluable. And as some of you know, I (Steve) am always happy to jump on a call or try to fix bugs for you. I’m steve@val.town.
⚡️ Fast Vals
Vals continue to get faster and more scalable. Now a ‘hello world’ val responds in about 50ms, which is comparable to other cloud providers. Our servers are in Ohio and we’re testing here in New York, so your mileage may vary if you live further from Ohio.
Deprecating old APIs
We are deprecating a number of old APIs that are no longer in use:
- Express vals – discontinued on 10/7/2024
- Old HTTP runtime – migrating on 10/20/2024 (how to upgrade)
- Eval API – discontinuing on 11/1/2024
These changes effect less than 1% of our users. If you’re effected, you will receive an email with more information on how to upgrade.
The exciting part about deprecations is that it means we’ll be able to ship faster because we won’t be maintaining old code that almost nobody is using. Max rebuilding our code-running infrastructure to even faster and more scalable, and not having to support these old APIs will make his job a lot easier.
Prettier errors
HTTP vals now have prettier errors. They sometimes have stack traces and link to the relevant source. (We’re working improving the stack traces & links.)
Videos
Videos are a great way to learn the pro tips & tricks for Val Town.
I did two livestreams with wonderful guests:
- Creating design tools with Alexander Vilinskyy – remaking his viral SVG generator with Townie
- Creating a Dog-E-Dex with Cynthia, a designer at Notion, who has a dream to meet every breed of dog
And a handful of other videos:
- How to add Google Login to your val in 30 seconds - quick demo, longer explanation
- Watch AI make me a SQLite Dashboard from 7 in minutes
- Watch me make & deploy a blog in 24 minutes with AI
- Lucia Auth is DEAD! Long live implementing sessions by hand?
- Building a Bookshelf Scanner with AI
🎉 Other updates
- The Val Town team now gets woken up for downtime (PagerDuty) 🚨
- AI bots are blocked from HTTP vals
- Updated Deno types
- Fixed a renaming bug – thanks Robin Sloan for the report 🙏
- Fixed logs and errors with new HTTP runtime
- Removed pinned vals UI cruft
- Changed the order of logs (newest at the bottom)
- Disabled autofill on env variables – thanks Matthew Bunday for the suggestion 🙏
- Improved our list of adjectives for new val names
- Made POST v1/vals/id a no-op if no changed – thanks Andres Rodriguez for the request 🙏
🛣️ Roadmap
The main projects over the next couple months are:
- Discontinuing the old HTTP runtime and Eval API
- Continued Townie AI improvements
- Fine-grained API Token Scopes
- Val Projects (to manage complex multi-val collections)
- Townie writing READMEs
- New val runtime architecture for faster & more scalable vals
Please make feature requests and vote on what you’d like to see next.
🌟 Community vals
- Dan made a bunch of vals to work with the Campsite API and a demo video
- Sarah made a Slack notifier whenever topics of interest are mentioned on Twitter, Hacker News, and Reddit, powered by Browserbase
- Jonnie made a Slack bot that reminds designtown.nyc folks of the keypad code
- Guy generates X slams Y memes, autotweeted to Mastadon
- Thej wrote an excellent blog on AQI alerts in India
- Steve upgraded his twitter alert to use SocialData’s API, so any Val Town Pro user can seamlessly fork it
- Guy built a site to convert Landscape Video -> Blurred Portrait
- Steve converts error emails from Render into alerts on Discord and Github Issues, assigned to the right person, in the current milestone
- The Crossmint team made a bunch of awesome vals
- Nathan made a color app for his daughter
- Steve launched stringify.org a mini-site that converts any text into a valid string you can paste into a JS file
- Ash made a chore app for his daughter
- Eric’s eight-year-old made a word picture match game for his two-year-old using Townie
- Aman built a flux playground with Modal
- Eli made an info site for California’s 2024 ballot propositions
- Seamus made a perlin noise animation generator
- Wolf made a chrome extension to run github gists in Val Town
- Steve made a domain name finder
- Seamus made a drum machine
- Steve made a github graph drum machine and Tom made it sound nicer
- Harry made a snazzy LangChain Ambassador card
- Steve made a synth playground where you can create melodies with a sequencer and play them
- Carl built a DnD character creator
- Jan made a very good prompt for news & research with Groq
- Sharan made a personal writing assistant with Cerebras
- Max sent some Val Town users personalized deprecation emails
- Steve created helper functions for base64 encoding images for sending to ChatGPT, Anthropic, and Gemini
- Stefan made an allergy food tracker
- Moe made a hex maze visualization
- Ankit made a hold the clock button game
- Dustin made a slack bot that translates messages to pirate speak
- Steve made a realtime chess game where you play as the king and move with the arrow keys
- Paras made a book recommendation mind map
- Steve made a bookshelf scanner with Gemini 1.5 flash
- Ash made a val to show how to get and render images from Val Town Blob Storage
- Steve made a demo showing how Cerebras is an LLM fast enough for sliders
- Konrad made a retro car inventory app
- @macro21kgb made a site to convert WebP images to PNG
- DT made a twist on the classic Game of Life
- Steve made a mini-site for calculating idealized weekly growth
- Nico made a JSON visualizer
- Steve cloned Dan Shipper’s book photo analyzer