
title: | Reintroducing Vals |
---|---|
description: | Vals now support multiple files, folders, branches, and more |
pubDate: | 2025-04-20T00:00:00.000Z |
author: | Steve Krouse |
We've unified our two platform primitives, vals and projects,
A "val" is a collaborative folder of versioned code, deployed on Val Town. Vals can be a backend services, apps, APIs, crons, websites, internal tools, and so much more.
Over the coming months we will work with all of you to upgrade your single-file vals into multi-file vals. You can manually upgrade your single-file vals today by clicking the "Upgrade" or "Move into multi-file val" buttons.
[ video of a notice on all single-file vals that the authors of them see: This is an single-file val. All single-file vals will be upgraded to multi-file vals on June 1, 2025, but you can update early. Learn more.. The user clicks upgrade and it takes them through the upgrade flow. ]
During this transitionary period we will refer to "single-file vals" and "multi-file vals", but once all single-file vals are upgraded, we will be able to simply talk about "vals" because they will all be multi-file.
On June 1, 2025, all remaining single-file vals will be auto-upgraded. All single-file val HTTP endpoints, crons, and email handlers will continue to function through the upgrade. As always, we are here to help every single one of you, so please reach out to help@val.town if there's anything we can do to ensure this upgrade goes smoothly for you.
Val Town Projects will not require any upgrades. They are being renamed to "multi-file vals", but will continue to function as normal, with a slight naming rearrangement.
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.