
title: | Reintroducing Vals |
---|---|
description: | Vals now have been rebuilt from the ground up to multiple files, folders, branches, and more |
pubDate: | 2025-04-20T00:00:00.000Z |
author: | Steve Krouse |
The core primitive of Val Town is the val. Today we are reintroducing vals to support bigger projects, companies, and teams. Now vals support:
- multiple files
- folders
- branches
- isolated environment variables
- claimable short urls (
whatever-you-want.val.run
)
Now you can think of a "val" as a collaborative folder of deployed code. Vals can be backend services, apps, APIs, crons, websites, internal tools, and so much more.
We will be upgrading all legacy vals to the new val infrastructure on April 25th, 2025. All your vals will continue to function through this upgrade.
If you would like to upgrade early, you can do so by going to your legacy val and clicking upgrade.
Val Town Projects do not require any upgrading. They have automatically been converted to the new val format with zero downtime.
What we used to refer to as a "val type" will now be called "a trigger." #8683 In other words, multi-file vals will only contain files and folders, and you can attach HTTP, cron, or email "triggers" to those files to create HTTP servers, scheduled functions, or code that gets triggered on incoming emails, respectively. We used to allow you to create normal files vs "val files" in Projects, but this was confusing. Now it's just normal files only – plus triggers. In our web UI, triggers are configured by point-and-click, and in local dev, they are configured in a vt.json file.
We are now deprecating our v1 API in favor of a v2 API that is soon to be released. The v1 API will continue to run indefinitely, but the /v1/vals API is becoming read-only on June 1, 2025.