Skip to content
Ditchly
Menu

Last checked November 11, 2026

Free alternatives to Val Town

Val Town runs TypeScript on Deno. A val can answer HTTP, run on a schedule, keep a SQLite database, store blobs, and read environment variables. Steve Krouse's November 10, 2026 post (https://blog.val.town/winding-down) says Val Town is winding down. New signups and plan upgrades stop that day. Billing is paused, existing subscriptions are serviced free, and a prepaid annual plan gets a partial refund. Read-only mode starts December 10, 2026, and that mode does not include SQLite and blob storage. Other services end January 10, 2027. The post says Val Town will be open-sourced on February 1, 2027, which is after the service ends. The same post points at migration guides for Cloudflare Workers, Vercel Functions, Netlify Functions, and Render. The runtime page, updated September 8, 2026, says vals run on Deno. Deno Deploy is also shutting down. Ryan Dahl's October 9, 2026 post says that hosting service keeps operating for six months and then shuts down, with migration help for paying customers moving to Cloudflare Workers. The where-to-migrate page, updated November 7, 2026, says Cloudflare is the most feature-equivalent platform and that some of the Val Town team moved the blog and docs there. This checklist scores the hosts that can take an HTTP handler, a schedule, and the data.

DevelopersIndividualsPrice checked

What you pay for Val Town

Billing paused on November 10, 2026. Existing subscriptions are serviced free. A prepaid annual plan gets a partial refund. The post does not print a dollar price.

Checked November 11, 2026. https://blog.val.town/winding-down, by Steve Krouse on November 10, 2026, says billing is paused that day, existing subscriptions are serviced free, and prepaid annual plans get a partial refund. It does not print the old monthly price or the refund amount. The timeline in that post is: new signups and plan upgrades stop November 10, 2026; read-only mode, not including SQLite and blob storage, on December 10, 2026; all other services on January 10, 2027; open-sourcing on February 1, 2027. https://docs.val.town/reference/std/blob still says blob data counts toward 10 MB on the free plan and 1 GB on Pro. This page did not find a separate live price table.

Val Town website·Price page

For developers and individuals. Its price on file: Billing paused on November 10, 2026. Existing subscriptions are serviced free. A prepaid annual plan gets a partial refund. The post does not print a dollar price. It is in the Infrastructure group.

How to switch

The closest free app on the checklist is Cloudflare Workers. Cost and details. Move from Val Town to Cloudflare Workers.

Cloudflare Workers vs Netlify Functions vs Vercel Functions

These scores are from the checklist on this page. A full score means it matches our checklist. It is not a drop-in replacement. We check each app against public docs and price pages.

Cloudflare Workers is #1 (92). Netlify Functions is #2 (85). Vercel Functions is #3 (77). Render is #4 (73).

Cloudflare Workers

#1 · Closest

7 of 7 checked features. A full score means it matches our checklist. It is not a drop-in replacement.

What you give up: edit the code in the browser.

Netlify Functions

#2

7 of 7 checked features. A full score means it matches our checklist. It is not a drop-in replacement.

What you give up: edit the code in the browser. You only get part of: a SQLite database for the app.

Vercel Functions

#3

7 of 7 checked features. A full score means it matches our checklist. It is not a drop-in replacement.

What you give up: a SQLite database for the app and edit the code in the browser.

Render

#4

7 of 7 checked features. A full score means it matches our checklist. It is not a drop-in replacement.

What you give up: store a file or a blob and edit the code in the browser. You only get part of: a SQLite database for the app.

Where they differ

  • A SQLite database for the app

    Worth 8 points. Cloudflare Workers does all of it. The D1 overview calls it a serverless database with SQLite's SQL semantics, on Free and Paid plans. Val Town's Cloudflare SQLite guide says a raw SQLite file cannot be imported directly. Netlify Functions does part of it. Netlify Database is managed Postgres. The functions overview queries it with SQL. A Val Town SQLite dump is not a Postgres database. Vercel Functions does none of it. The pricing page lists Blob and Functions and does not list SQLite. Val Town's where-to-migrate table, updated November 7, 2026, leaves SQLite unchecked for Vercel. Render does part of it. There is no managed SQLite. A paid web service can attach a disk. The free-instance doc says a local SQLite file on a Free service is lost on spin-down, and Free services cannot attach a disk.

  • Store a file or a blob

    Worth 6 points. Cloudflare Workers does all of it. R2 is object storage. The pricing page, updated October 30, 2026, includes 10 GB-month, 1 million Class A operations, and 10 million Class B operations a month before charges. Netlify Functions does all of it. The blobs page says you can store and retrieve blobs, and browse and download them in the UI. The pricing page lists blob storage on the free plan. Vercel Functions does all of it. Hobby includes 1 GB of Blob storage a month, plus 10,000 simple operations and 2,000 advanced operations. Render does none of it. The pricing page lists disks, Postgres, and Key Value. It does not list object storage. A disk is not a blob store, and cron jobs cannot mount one.

Cloudflare Workers, Netlify Functions, Vercel Functions, and Render do all of these: an http endpoint that returns a response, write that code in typescript or javascript, run code on a schedule, and environment variables or secrets.

Also ranked: Windmill is #5 (63).

Deno Deploy

No score

The hosting service Val Town's runtime is built on is itself shutting down. Not scored on this checklist.

Turso

No score

The database named under Val Town SQLite. It does not run the HTTP app or the schedule. Not scored on this checklist.

How close is it?

How this works

A full score means it matches our checklist. It is not a drop-in replacement. #1 is the closest free app that did not pay us. An ad, when one is sold, is marked and sits after #1. Paying does not change the score. Open source means you can use, change, and share the code. Run it yourself means the app can live on a computer you control.

  1. #1 · ClosestFree, but the code is closed.

    Cloudflare Workers

    TypeScript on Cloudflare's network, with cron, D1, and R2. The free plan allows 10 ms of CPU.

    7 of 7 checked features. A full score means it matches our checklist. It is not a drop-in replacement.

    What you give up: edit the code in the browser.

    Last checked November 11, 2026 · License: Proprietary

    Not open source.

    Web
  2. #2Free, but the code is closed.

    Netlify Functions

    TypeScript functions, scheduled functions, and blobs. The built-in database is Postgres.

    7 of 7 checked features. A full score means it matches our checklist. It is not a drop-in replacement.

    What you give up: edit the code in the browser. You only get part of: a SQLite database for the app.

    Last checked November 11, 2026 · License: Proprietary

    Web
  3. #3Free, but the code is closed.

    Vercel Functions

    TypeScript functions, cron, and Blob on Vercel. Hobby cron runs once a day. No SQLite product.

    7 of 7 checked features. A full score means it matches our checklist. It is not a drop-in replacement.

    What you give up: a SQLite database for the app and edit the code in the browser.

    Last checked November 11, 2026 · License: Proprietary

    Web
  4. #4Free, but the code is closed.

    Render

    A Node web service and a cron job. Free services spin down. No object storage on the price page.

    7 of 7 checked features. A full score means it matches our checklist. It is not a drop-in replacement.

    What you give up: store a file or a blob and edit the code in the browser. You only get part of: a SQLite database for the app.

    Last checked November 11, 2026 · License: Proprietary

    Web
  5. #5Open source

    Windmill

    An AGPL script runner with a web IDE, schedules, and webhooks. Not a site host.

    7 of 7 checked features. A full score means it matches our checklist. It is not a drop-in replacement.

    What you give up: a SQLite database for the app and store a file or a blob. You only get part of: an HTTP endpoint that returns a response.

    Last checked November 11, 2026 · License: AGPL-3.0

    WebRun it yourself

Feature by feature

Full means it does the whole job. Partial means it does some of it. Missing means it does not. Not checked counts as zero. The number under each feature is how much it counts. A bigger number moves the score more.

Scroll sideways to see every app.

Feature comparison. Full, partial, missing, or not checked.
FeatureCloudflare Workers#1 · 927 of 7 checked featuresNetlify Functions#2 · 857 of 7 checked featuresVercel Functions#3 · 777 of 7 checked featuresRender#4 · 737 of 7 checked featuresWindmill#5 · 637 of 7 checked features
An HTTP endpoint that returns a responseCounts for 10FullThe secrets page shows a fetch handler that returns a Response. That is the HTTP entry.FullThe functions overview shows a TypeScript handler that returns a Response and sets a path such as /hello.FullThe functions docs show a fetch handler and a GET route that return a Response.FullA web service is a public URL. The free-instance doc says Free web services spin down after 15 minutes and take about a minute to start again.PartialThe schedules page lists webhooks as a way to run a script. That is one URL for a job, not a val that serves its own routes.
Write that code in TypeScript or JavaScriptCounts for 10FullThe TypeScript page, updated October 27, 2026, says TypeScript is a first-class language and that Workers APIs are typed.FullThe same overview uses .mts files. The scheduled-functions page says an inline cron expression works for TypeScript and JavaScript.FullThose samples are TypeScript. The docs list Node.js, Python, Go, and other runtimes.FullThe pricing page lists Node as a runtime. It does not name TypeScript. A TypeScript app is a Node build you bring, and it is a long-running service.FullThe product page and the schedules page both name TypeScript as a script language.
Run code on a scheduleCounts for 8FullCron Triggers map a cron expression to a scheduled handler. The docs say changes can take up to 15 minutes to propagate, and triggers run on UTC.FullScheduled Functions are on every plan and use a cron expression in UTC. A run stops at 30 seconds, and scheduled functions do not run on their schedule for deploy previews.FullCron jobs are on every plan and invoke a function. Hobby is limited to once a day, with timing inside the hour. Pro can run once a minute.FullCron jobs run a command on a UTC cron expression. Billing has a $1 monthly minimum. A cron job cannot use a persistent disk, and Render stops a run after 12 hours.FullA schedule is a script or flow, arguments, and a cron expression. You can turn on a primary schedule from the script settings.
A SQLite database for the appCounts for 8FullThe D1 overview calls it a serverless database with SQLite's SQL semantics, on Free and Paid plans. Val Town's Cloudflare SQLite guide says a raw SQLite file cannot be imported directly.PartialNetlify Database is managed Postgres. The functions overview queries it with SQL. A Val Town SQLite dump is not a Postgres database.MissingThe pricing page lists Blob and Functions and does not list SQLite. Val Town's where-to-migrate table, updated November 7, 2026, leaves SQLite unchecked for Vercel.PartialThere is no managed SQLite. A paid web service can attach a disk. The free-instance doc says a local SQLite file on a Free service is lost on spin-down, and Free services cannot attach a disk.MissingThe pages checked here do not list SQLite. The product page mentions data tables and DuckDB, marked alpha, which is a different engine.
Store a file or a blobCounts for 6FullR2 is object storage. The pricing page, updated October 30, 2026, includes 10 GB-month, 1 million Class A operations, and 10 million Class B operations a month before charges.FullThe blobs page says you can store and retrieve blobs, and browse and download them in the UI. The pricing page lists blob storage on the free plan.FullHobby includes 1 GB of Blob storage a month, plus 10,000 simple operations and 2,000 advanced operations.MissingThe pricing page lists disks, Postgres, and Key Value. It does not list object storage. A disk is not a blob store, and cron jobs cannot mount one.MissingThe pricing table lists 10 GiB of workspace object storage on the free edition. The pages checked here do not show a get-and-put API for an app's files.
Environment variables or secretsCounts for 6FullSecrets are encrypted bindings read from env. The docs also distinguish plaintext variables from secrets and say not to commit .dev.vars.FullThe environment-variable page says values can be limited to Functions and can differ by deploy context. It says the key is stored on Netlify when you use the UI, CLI, or API.FullEnvironment variables can be Config or Secret. The docs say function execution can read them, and a change applies to the next deployment.FullThe pricing table includes environment variables and secret files on Hobby, including for cron jobs. The cron doc says a cron job can set variables such as a database URL.FullThe free-edition list includes variables and resources. The schedules page says a handler can use the variables and resources the schedule owner can access.
Edit the code in the browserCounts for 4MissingThe pages checked here deploy with Wrangler or a git push. They do not show a browser editor that is the place you keep the val.MissingFunctions deploy with the site from git. The pages checked here do not show a browser editor that holds the function the way a val does.MissingThe functions docs deploy code from the project. They do not show a browser editor that stores the function the way a val does.MissingYou connect a Git repo or a Docker image. The pages checked here do not show a browser editor for the app.FullThe product page says you can build in the web IDE, in the browser, or from a local CLI and git.

What it costs

Cloudflare Workers

Free plan
Workers Free is $0. It includes 100,000 requests a day and 10 milliseconds of CPU time per invocation. D1 on the free plan includes 5 GB and 10 databases. R2's free tier includes 10 GB-month of Standard storage.
The paid Workers plan is a $5 monthly minimum and includes 10 million requests a month.
Free D1 stops queries after 5 million rows read or 100,000 rows written in a day.
They host it
Workers Free is $0. Workers Paid is a $5 monthly minimum. Checked November 11, 2026. Above the included 10 million requests, the paid plan lists $0.30 per extra million. CPU time above 30 million milliseconds is $0.02 per extra million. D1 and R2 bill on their own pages. R2 Standard storage is $0.015 per GB-month after 10 GB-month.
Run it yourself
This app does not run on your own computer. The pricing page is for Workers on Cloudflare's network. This listing did not find a supported install of the hosted product.

Netlify Functions

Free plan
Free is $0 and includes 300 credits, functions, blob storage, and Netlify Database. Scheduled functions are on every plan.
Personal is $9 a month with 1,000 credits. Pro is $20 a month with 3,000 credits.
A scheduled function stops at 30 seconds. Production deploys cost 15 credits each.
They host it
Free is $0 with 300 credits. Personal is $9 a month. Pro is $20 a month. Checked November 11, 2026. The pricing page lists compute at 10 credits per GB-hour, bandwidth at 20 credits per GB, and web requests at 2 credits per 10,000. A database that is active consumes credits. The database page, updated June 16, 2026, said storage space is free until July 1, 2026. This listing did not find a storage price after that date.
Run it yourself
This app does not run on your own computer. Functions run on Netlify. This listing did not find an install of the hosted product.

Vercel Functions

Free plan
Hobby is $0 a month. It includes 1 million function invocations, 4 hours of Fluid active CPU, 360 GB-hours of provisioned memory, and 1 GB of Blob storage a month.
Pro is $20 a month.
Hobby cron jobs run at most once a day. Pro cron jobs can run once a minute.
They host it
Hobby is $0 a month. Pro is $20 a month. Checked November 11, 2026. Hobby Blob limits on the pricing page are 1 GB, 10,000 simple operations, 2,000 advanced operations, and 10 GB of data transfer a month. Cron jobs are included and then billed as function invocations.
Run it yourself
This app does not run on your own computer. Functions run on Vercel. This listing did not find an install of the hosted product.

Render

Free plan
A Hobby workspace is $0 a month plus compute. A Free web service is $0, with 512 MB of RAM, and it spins down after 15 minutes without traffic.
Free web services cannot attach a persistent disk. Free Postgres expires 30 days after creation and is limited to 1 GB.
A cron job has a $1 monthly minimum. The smallest listed rate is $0.00016 a minute for 512 MB.
They host it
Hobby is $0 a month plus compute. A Free web service is $0. The next web service is $7 a month. Checked November 11, 2026. Persistent disks are $0.25 per GB a month and are not available on Free web services. Hobby includes 5 GB of bandwidth, then $0.15 per GB. The workspace plan does not remove Free instance limits.
Run it yourself
This app does not run on your own computer. Services run on Render. This listing did not find an install of the platform.

Windmill

Free plan
The open-source column says unlimited executions, 50 users, 3 workspaces, and 10 GiB of workspace object storage.
The pricing page says Enterprise is from $120 a month and shows $20 a month per builder.
They host it
The open-source edition lists unlimited executions. Enterprise is from $120 a month on the pricing page. Checked November 11, 2026. The same page shows $20 a month per builder and $10 a month per non-builder in the price breakdown. The $120 line is the Enterprise heading, not a quote this listing calculated.
Run it yourself
Setup: medium. The pricing page says the open-source edition deploys on Fargate, Docker, or Kubernetes. You bring the machine. This listing did not price a server.

Did you switch?

If you left Val Town, tell us if it worked and how long it took. Notes stay private until we approve them. Nothing is shown until at least five are approved.

How did it go?

Closest pair

Move from Val Town to Cloudflare Workers

Copy the val, its env vars, SQLite, and blobs before the shutdown dates. A Worker does not import a val, and the free plan allows 10 ms of CPU.

Read how to switch

Infrastructure alternatives

Switch guides

Free apps in this group

Questions

When does Val Town stop?
Steve Krouse's November 10, 2026 post says new signups and plan upgrades stop that day, and billing pauses the same day. Existing subscriptions are serviced free, and a prepaid annual plan gets a partial refund. Code goes read-only on December 10, 2026. The post's table says that read-only mode does not include SQLite and blob storage. Other services end January 10, 2027. Open-sourcing is dated February 1, 2027, after the service ends. The migration guide, updated November 7, 2026, says code is read-only on December 10, 2026 and vals keep running until January 10, 2027. The redirect guide, updated November 10, 2026, says you can add and edit val.run redirects until December 10, 2026, and that redirects already set become permanent that day.
What is the closest free app?
Cloudflare Workers. The docs show a TypeScript fetch handler, a scheduled handler, Worker secrets, D1 with SQLite's SQL semantics, and R2 for objects. The Workers free plan is $0, with 100,000 requests a day and 10 milliseconds of CPU time per invocation. The paid plan is a $5 monthly minimum. Checked November 11, 2026. Netlify Functions is next. It has TypeScript functions, scheduled functions on every plan, blobs, and environment variables. Its database is Postgres, not SQLite. Vercel Functions has TypeScript handlers, cron on every plan, Blob, and environment variables, and the pricing page does not list SQLite. Render runs a Node web service and a cron job, and it does not list object storage. Windmill is the open-source script runner, with a web IDE and schedules, and it is not a site host.
What has to be copied before December 10?
The code, the environment values, and any val.run redirect. Code becomes read-only on December 10, 2026, so a new export script cannot be added after that. The redirect guide says redirects can be added and edited until that day, then the ones you set become permanent. Set a redirect only after the new URL works, because the val stops receiving requests as soon as the redirect is on. Webhook providers often do not follow a redirect, so change those URLs at the provider. SQLite and blobs are outside the read-only line in the November 10 post. The SQLite admin page can dump SQL, and the blob page says scoped blobs can be downloaded from the val. Copy both before January 10, 2027, when other services end. Turso is the database Val Town names under its SQLite. It is not a place to move the whole val.
Why is Deno Deploy not on the list?
Deno Deploy is also shutting down. Ryan Dahl's October 9, 2026 post says the hosting service will keep operating for six months and then shut down, and that paying customers get migration help toward Cloudflare Workers. The Val Town migration guide says the core maintainers will not support the Deno runtime beyond October 2027, and it tells people to move to Node, Bun, or a provider runtime such as Cloudflare Workers or Vercel Functions. Waiting for the February 1, 2027 open-source drop does not keep vals online. The service end in the post is January 10, 2027.