Introducing Val Town Projects


Yonge Street Toronto, a blog & newsletter project by Victor
Today we’re releasing Val Town Projects in public beta to unlock a whole new level of complexity for what you can build in Val Town. Projects are groups of vals, files, and folders that are versioned collectively, and deployed on our serverless platform. They support powerful workflows, such as feature branches, that make it easy to build and deploy large applications.
Vals are too small
Projects solve the biggest problem with Val Town: vals are too small. A val is just a single file.
Despite that, you all have built incredible things with vals. Recently we’ve seen a transcription app, a p2p file transfer service, a Linear & Github daily LLM summarizer, citizen data journalism, and much more.
But vals become unwieldy after a couple hundred lines of code. The pain is especially acute when using an LLM to edit or rewrite hundreds of lines in a single val file.

A Personal CRM by Catherine Jue - built mostly by Townie AI. It became unwieldy after a thousand lines.
Unfortunately, things get worse if you break up a single val into multiple vals that import each other. For example, I broke up the Date Me Directory, an alternative dating website, into a handful of vals, one for each page in the site. Whenever I want to make a change without affecting production, I need to manually fork each of those vals one-by-one, and then manually update all the imports in each of them to point to the forked versions. Then getting the changes back into the production vals was similarly miserable.

Date Me Directory - an alternative dating website. It became an unwieldy collection of vals with many disorganized forks.
Instead most users either stuff all their code into a single super long val or just made all their changes directly to their main production vals (sometimes breaking it briefly). Or they moved off Val Town entirely. We needed a solution to dramatically increase the scope of what you can build on Val Town.
Enter Val Town Projects
Val Town Projects are groups of vals, files, and folders that are versioned, branched, forked, and merged collectively. With Projects, you can create feature branches and test changes without affecting production.
As you may know, Val Town deploys your code in 100ms. This is a magical way to code directly in the cloud – instead of on localhost and deploying to the cloud later. This kind of live feedback loop is incredibly fun. It’s almost addicting. It also means that you are building in the exact same environment that you deploy in, cutting out all the complexity of managing multiple environments.
But just because you’re deploying to the cloud on every save doesn’t mean you want to deploy to production on every save. Val Town Project branches give you the best of both worlds: you can rapidly prototype in the exact same environment that you’ll deploy to, but without affecting production. It’s like localhost and PR previews had a baby: super fast iteration cycles, paired with immediately hosted URLs you can share.
And the final kicker is scale. Once your app is running on Val Town, it’s fully deployed and you can rest easy. You don’t have to worry about provisioning more or less compute: our serverless platform will automatically scale your app to handle any number of users. To be clear, our Scale Plan is slated to launch in Q2 2025. Currently, Val Town scales to 100k and 1m runs per day on the Free and Pro plans, respectively.
Projects are not git repos
We considered building Projects as git repos, but decided that becoming a git host at scale was too much complexity for the small subset of git’s features that we wanted (diffs, branches, merges). We realized that it’d be much simpler to build our own version control system.
This sounds like sacrilege – even to us. Everyone at Val Town is a happy git user. Yet if you think about it, many pro tools had to build their own version control, including Google Docs, Figma, and Notion. We feel heartened to hear how speculative and uncertain this decision felt at Figma – to build their own multiplayer system instead of using OTs (operational transforms), which was the standard at the time given its success in Google Docs.
As a startup we value the ability to ship features quickly, and OTs were unnecessarily complex for our problem space. So we built a custom multiplayer system that’s simpler and easier to implement.
At the time, we weren’t sure building this feature was the right product decision. No one was clamoring for a multiplayer design tool—if anything, people hated the idea.
…Our bet paid off, and these days it’s obvious that multiplayer is the way all productivity tools on the web should work, not just design.
– Evan Wallace, Co-founder, Figma, How Figma’s multiplayer technology works
We too built something that nobody was clamoring for, but that we hope will seem obvious in the retrospect. Experienced programmers will feel right at home in Val Town Projects – branching, forking, merging, and pull requesting – collaborating directly within the same platform that you’re iterating and deploying on.
New programmers might never need to learn git at all. I can still remember the frustration of learning git for the first time, and I’m excited to think that we might be able to save a new generation of programmers from that pain. Particularly in this new age of LLM programming, we think there’s an opportunity to build something simpler.
And if you really need git, Projects are git-friendly, so we will soon build a way to sync them to and from a git repo. We’re racing to release a Beta API for Projects, which will allow you to have full control over your source code, sync to and from a git repo, and wherever else you want.
Learn more about Val Town Projects here in our docs.
What you can build
Up till now, Val Town has excelled at small pieces of code, such as little integrations and automations, such as social media monitoring, data sync, and single-page sites. We’re excited to see what you can build with a much larger scope in Projects, such as:
- internal tools
- durable workflows
- a backend for your app
- API prototypes – like Campsite, Glif
- a starter template for your API – like PostHog, Framer, tldraw, Browserbase,
- multi-page, full-stack apps
We want to highlight the biggest Project built so far. Nathanael is building JournalGroove, an app to help people get more insight from their journaling practice. The frontend of the app is simply Notion, and the backend is hosted on Val Town. Nathanael has a series of cron vals that run throughout the day to process your latest journal entries and deliver personalized, AI-generated reports back into your private Notion space.
Before Projects, Nathanael had dozens of vals scattered across folders, and versioned separately. He was able to migrate them all into a single Val Town Project in about 30 minutes.

JournalGroove - a project to help people get more insight from their journaling practice by Nathanael Silverman
“Val Town enabled me to grow this from an idea into a fully-fledged project much faster than I would have expected. I like that Projects are separate from my other random vals. And I look forward to using branches, eventually collaborating with other people.”
Start building
You can start building with Projects right now.
We can’t wait to see what you build! If you’re new to Val Town, you can sign up free here.
Edit this page