What’s a val?
A val is a collaborative, versioned folder of deployed code—like a GitHub repo that can run. They can be used to create websites, APIs, MCP servers, crons, agents, slack bots, email handlers and more with JavaScript and SQLite. Vals come with:
- HTTP, Cron, and Email triggers
- SQLite and blob storage
- Environment variables
- Import from npm, http, node, and more
- Access controls for URLs
- Permissions for source code (public, private, unlisted)
- Version control & collaboration: branching, remixes, pull requests
- The Deno runtime
- Logs & traces
- Analytics for HTTP triggers
Triggers
A trigger is what causes some code to run (in a file in a val). There are 3 types of triggers that JavaScript files within a val can have:
- HTTP — Triggered by HTTP requests (for APIs, websites, webhooks, etc.)
- Cron — Triggered by a timer or cron expression
- Email — Triggered by an incoming email
Versioning & collaboration
Every file change is automatically versioned. Rollbacks are instantaneous. You can create branches and remixes for development and collaborating.
- Branches — Create branches for feature development, testing, and sharing
- Remixes — Remix another user's val to make changes and send a pull request
- Pull Requests — Merge changes from a branch or remix back into the parent val
Last updated