Val Town Newsletter 20
The newest version of Townie is incredible at writing vals. It creates deployed apps with a backend and database in seconds. Honestly, if you have five minutes, you gotta try it out!
We shipped a number of other improvements, including a huge speedup to vals, lockfiles to secure your code, the ability to receive email attachments, a new version history UI, and opened up support for hundreds more NPM packages.
Quick hiring update: we’re still looking for a couple more engineers to join our founding team in Brooklyn. If you have any brilliant friends in NYC, please send them our way!
There was such an overwhelming amount of amazing vals created this month that I had to build a custom tool to help me write the “community vals” section of this newsletter. You guys rock!
🤖 Townie AI
This month we released our third wholesale rewrite of Townie, and it’s incredible. It’s now able to generate full-stack applications with a backend and database in seconds. It’s like Claude Artifacts, with a backend.
If you want more Townie demos, I’m tweeting up a storm of them. If you want to know the backstory behind Townie, JP released an excellent blog post about how we prototyped Townie.
⚡️ Faster Vals
Vals now run way faster. You’ll see 2-10x speedups, depending on the context. We’re finally competitive with premier hosting providers. For example if you hit an HTTP val’s endpoint in NYC, you’ll often get a response in under 100ms. (Our servers are in Ohio. Multi-region is still a while off. Sorry Japan!)
This is thanks to our new load balancer, which:
- Routes around a slow part of our stack (more on this later)
- Directs traffic to where your val is already running, so you skip cold starts
Expect more improvements and a fuller blog on this shortly!
🔒 Lockfiles
We’ve introduced lockfiles in Val Town to enhance stability, security, and performance. When you save a val, a deno.lock file is generated, ensuring the same versions of dependencies are used in the future. This prevents issues caused by changing libraries and malicious dependencies, and improves performance by caching the dependency tree. Learn more in our announcement post.
💸 We joined the OSS Pledge
We’re excited to announce that we’ve joined the OSS Pledge. We commit to donating at least $2k per year per full-time developer at Val Town to open-source. You can learn more in our announcement post. We donated have donated $9,600 so far in 2024:
Project | What it does | Amount |
---|---|---|
esm.sh | CDN for ESM modules | $1000 |
Sindre Sorhus | Prolific open source maintainer | $1000 |
tsx | Easy way to run TypeScript directly | $1000 |
Fastify | Web framework | $1000 |
Zod | Data validation library | $1000 |
Unified | Markdown transformation module ecosystem | $1000 |
Drizzle | Database query builder | $800 |
CodeMirror | Code editor framework | $800 |
Mock Service Worker | Testing helper modules | $500 |
rclone | Upload and download files to S3 and more | $500 |
Hono | Web standards-based web framework | $500 |
husky | Nice way to set up git hooks | $500 |
🎉 Other updates
- Email handler vals can now receive attachments – thanks danielrw7 for the feature request 🙏
- New version history UI for vals
- Support for hundreds more NPM packages
- Ability to trigger LLM completions manually (alt-\)
- Go to a val’s full-screen editor by pressing . (like on GitHub) - thanks David Siegel for the suggestion 🙏
- Redesigned Profile menu (in the top-right corner)
- Ability to set HTTP headers in
@std/email
- thanks wilhelm for the suggestion 🙏 - Val READMEs are now CodeMirror, with LLM completions (triggered manually, alt-\)
- A new val settings tab
- Protections for certain kinds of denial of service attacks
- “Forked from” information on val cards
- Updated Deno to 1.46.3
🛣️ Roadmap
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.
- Continued Townie AI improvements
- Rolling out
HTTP (Preview)
as the defaultHTTP
val type - Continued performance improvements
- LLM-generated READMEs
🌟 Community vals
- Guy Dupont made an incredible digital “bumper sticker” that shows what he’s listening to right now + an amazing video explaining it!
- Ben Bleikamp wrote a couple of crons to automate some posts on campsite.co and send posts to Slack
- Schpet built a val that sends a daily post to Slack listing all the Linear issues assigned to you that changed status, powered by Val Town
- Guy Dupont injected a val into his hand!!!
- csl_ built a DNDoodle, a scheduling app for D&D groups with improved features like setting poll end dates and identifying the DM’s availability separately
- charmaine made a val to help her at work (Snapchat) track all mentions of SnapAR or Lens Studio on Twitter
- @isidentical built a Flux Image Generator that generates images from user prompts using the fal.ai API in under 1 minute from scratch with Townie!
- Larry Hudson made a netifly plugin that allows you to redirect with authentication so you can submit to private vals
- Sam Rose built a collaborative 6-word story app
- Simon Willison wrote an excellent blog post on Townie’s prompt
- David Siegel used Glide’s bulk API to sync all of Glide’s issues and PRs into an app
- Moe built an awesome SpaceX Launch tracker that displays upcoming and past SpaceX launches with data visualizations
- @wilg made tax.moi to explain how graduated federal income tax works
- Perbhat Kumar built an app that weighs his coffee using the mac trackpad
- @jxnblk rebuilt jxnblk.com on val town – it’s awesome!
- @moe created a P5.js helper for Val Town and used it to make two awesome examples
- The Cannoli docs teach their users how to use Val Town!
- David Thyresson built a Bedtime Story Maker that generates personalized children’s stories with illustrations using OpenAI and Fal AI
- Jackson built test, a utility and badge to show test suite status in your val readme.
- Justin Bennett is creating content-addressable JavaScript
- Peter Liu revamped their VT App v2 with JWT authentication, user accounts, and a way to change emails or delete accounts.
- Carl Lange made a site that can measure your tennis speed based on the sound of the ball hitting the racket
- yawnxyz built Newsly, a val that stores emails in a SQLite database, allowing you to access your newsletters
- @jdan built an interactive Wikipedia Family Tree Crawler that visualizes parent-child relationships by crawling Wikipedia infoboxes
- @moe created an awesome Number Chain Puzzle game where players drag between adjacent squares with the same number to score points
- @roramigator built a Hacker News digest that emails you the top stories from Hacker News every 3 days
- Giles built an email expenser that processes email content using GPT-4, extracts key information like income and expenses, and logs it to a Google Sheet, powered by Val Town.
- roramigator created a idle clicker game about spreading a religion
- @stevekrouse built a typing challenge game where you can test your typing speed and submit your score to a leaderboard
- David Thyresson generating movie mashups with posters, titles, and treatments.
- @ankit built a website that tracks clicks and adds confetti with each click, backed by a SQLite database.
- @all built an Icon Explorer that lets you search, filter, and copy React icon components from popular libraries like Feather, Font Awesome, and Ant Design.
- David Thyresson built Play Me A Song, a web app that lets you search for and open songs in Spotify.
- Adam Kazwell built a site that helps you know understand your personal healthy boundaries
- @szymonator made a an API demo to showcase how the Teamsurfboard API can be used
- @all built a Val Town Prompt Generator that creates optimized prompts for Val Town
- @thatsmeadarsh built a script that allows OpenAI assistants to star a GitHub repository via natural language commands, powered by Composio
- Alex Phan and Sarah Chieng built Slack Scout, which sends Slack notifications whenever your keywords are mentioned on Twitter, Hacker News, or Reddit, powered by Browserbase
- Max Krass built a gateway to access Microsoft Graph data for event catalogs, powered by a val.
- Brent Jackson built a service to generate OG images for his blog, powered by Val Town.
- @weaverwhale created FindTrendsUsingGPT, which analyzes merchant transaction data and generates a markdown report with charts and tables identifying trends, fraud regions, refund rates, and merchant profit/loss analyses.
- @movienerd created a pixel-art idle clicker game where you can earn money and upgrade various factories and workers, all written in React and powered by Val Town.
- Dan Thyresson built a GraphQL API to query Spotify tracks he has listened to
- Jackson built a minimal web-based markdown editor with vim keybindings
- Kaz built a “Would You Rather” game that ranks answers with an Elo-based system and tracks progress.
- Sharan Babu built a Text Summarization Comparison Tool that uses the Cerebras LLM API to generate summaries through direct and extractive + cohesive methods
- @pinjasaur built a proxy for Kagi’s Smallweb RSS feed to limit the size and make it more RSS reader-friendly
- Curt built a QR Code Scanner that uses your device’s camera to decode QR codes and display their content and additional information
- Jackson built Indirection, a game of riddles to play with friends by guessing words from clues
- jdan created dialog, a val that renders Windows 98-style dialog boxes as SVGs
- EJ Fox built a daily contribution checkerboard for Val Town
- @tempdev built a RabbitStream val that provides an easy-to-deploy TypeScript implementation for quickly accessing RabbitStream video sources
- Sharan Babu built a search engine prototype with autocomplete functionality powered by the Cerebras LLM API and cached in the browser
- Mauricio built a cat feeding app that allows you to log when you fed your cats and which cats were fed
- @tempdev created a Flix, a movie and TV show streaming platform with search, watch, and info pages
- @gio built Razza, a web app that generates QR codes for initiating SMS conversations, categorized by topics like Film, Technology, and Sports
- @yawnxyz built Diesel, a lightweight data manipulation library for querying and transforming JSON, YAML, CSV, and TOML data
- @gio built The Here Times, a map-based news aggregator using the Google Maps API, Geonames, and NewsAPI
- @cephalization built a SMS Journaler Text Relay that lets you have conversational SMS exchanges with an AI assistant to organize your daily work activities
- @stevekrouse built lucia_middleware, a middleware for handling user authentication and sessions, backed by Val Town SQLite
- @vawogbemi built a URL shortener
- David Thyresson created a Hono demo app with Unkey rate-limiting middleware that limits requests to 2 per minute
- Matthew Weaver built FindFraudTrendsUsingGPT, which generates real-time fraud trend reports using GPT-4o, complete with data tables and Mermaid charts.
- Carl Lange created his redfloatplane.lol, hosted on Val Town
- Alex built a val that monitors Hacker News and Lobsters for posts from certain sites and sends an email notification with the matched stories
- Jackson built an example of using his test val to test his tuna val, showcasing tuna’s CSS-in-JS features.
- Sam Rose built a simple feature flag implementation that uses hashing and rollout percentages to determine flag behavior for users.
- Matt created a val that supercharges query params to allow for operators like
>
,<
, and!=
in addition to=
. - Kyle built a Dependency License Checker that generates a table of licenses for all dependencies in a package.json file
- Kian built a webcam-based image processing app that applies fun effects like Pink Zone, Goth Girl, and Weed Mode to your webcam feed.
- @yawnxyz created a Perlin Noise Fabric Color Generator that renders a hypnotic, organic pattern using Processing.js and the Perlin noise function
- @roramigator created a Loot Generator API that generates random legendary loot items with adjectives, materials, and item types, based on a rarity algorithm.
- Steve Krouse built a Virtual Confessional where users can confess sins and receive penance in the form of Catholic prayers from ChatGPT
- @yawnxyz reorganized Val Town’s SQLite adapter for Lucia, making it easier to work with SQLite databases for authentication.
- Sam Willis got WASM Posgres running in Val Town
- Raul Galera made a surf forecast for his hometown with Townie
- Midas built a quote image generator in just a couple requests in Townie
- Will Krouse made an infosite for Jumpchain
- Peter Hartree made a 5 min Townie demo video of an app that summarizes blogs
- Austin Crim built a notes app that works with iPhone shortcuts
- Marcus Sandstrom made mood tracker app
- Will Krouse made a Safari Extension to stream in ChatGPT to define words inline
- Steve Krouse made demo that shows Cerebras 8b generating HTML pages in under a second