Pricing

Plans and prices

Every plan gets the same protection. Each app sits behind our sign-in, your code gets a signed identity for everyone who visits, and it all goes in the audit log. Paid plans give you more apps, people, usage and storage.

Free

$0per month

For trying it out, or for one small internal tool.

  • 3 apps, 3 members
  • JS, TypeScript and static apps
  • No container apps
  • 100,000 requests a month
  • 50,000,000 ms of CPU time a month
  • 1 GB of storage for site files, app files, key-value data and databases
  • Audit log kept 3 months
  • Community support
Start for free
Business

$215per workspace, per month

For a company where IT needs to see all of it.

  • 200 apps, 200 members
  • 4 container apps
  • 20,000,000 requests a month, then $3.78 per million
  • 400,000,000 ms of CPU time a month
  • 100 GB of storage for site files, app files, key-value data and databases
  • 5 custom domains
  • Connect up to 10 Postgres databases you already have†
  • Key-value storage and queues on 25 apps
  • Audit log kept 12 months
  • Usage insights for a year: who opens what, and which apps nobody uses
  • SSO, SCIM, custom roles, publish policy, audit log export and streaming for early customers, for a limited time
  • Priority email support
Start on Business
Enterprise

Contact usWe set the plan and its price up with you.

For a company that signs people in through its own identity provider.

  • Everything in Business
  • Higher limits set with you, custom domains included
  • SSO, SCIM, custom roles, publish policy, audit log export and streaming, with no time limit
  • Apps that reach your private network, and fixed outbound addresses†
  • Secrets sealed under your own encryption key
  • A support line
  • A DPA negotiated with your company
Email sales@forculuslabs.tech

Prices are in US dollars, per workspace, billed monthly through Stripe. Prices don't include tax. We are not registered for GST in Singapore, so we don't add GST. If that changes, or another tax becomes due, we add it at checkout and tell you first. A business that must account for tax itself under a reverse charge can enter its tax ID at checkout. Every workspace starts on Free with no card. Upgrade from its Billing tab.

On Team and Business, a month means your billing month, which starts on the day you subscribe. Usage past the allowances goes on that month's invoice. On Free, a month is the calendar month in UTC, and apps stop at the limit instead of costing more.

Paid workspaces also have a usage limit. Usage charges never go past your usage limit. If you lower it partway through an hour, that hour still counts against the higher limit. Usage is measured a little after it happens, so some can run past the limit before the apps stop, and that usage is on us. By default the limit is $0, so nothing beyond the plan's price is charged. When the allowances run out, apps pause until the next billing month. An owner can set another amount, or none, on the Billing tab. Stripe invoices usage charges early, as soon as they reach $100 in a month on Team or $400 on Business, if the usage limit is above that or there is none. You can export your data on every plan.

Compare plans

Every plan also has sign-in with passkeys, files and a database for each app, preview links, scheduled jobs, deploys from the dashboard and from GitHub Actions, MCP servers behind the same sign-in, and an agent that can deploy for you.

Per workspaceFreeTeamBusinessEnterprise
Price$0$49 / month$215 / monthContact us
Apps325200200
Members325200200
Container appsNone144
Container sizesNonelite, basiclite, basic, standard-1lite, basic, standard-1
Containers per appNone144
Container unitsNone104040
CPU time per request50 ms100 ms150 ms150 ms
Subrequests per request50505050
Bypass tokens per app550100100
Environment variables per app2550100100
Public paths per app3101010
Custom domains per workspaceNone355
Pull requests' previews at once3102525
Postgres connections per workspace, up to†None31010
Apps with key-value storageNone52525
Apps with a queueNone52525
Storage: site files, app files, key-value data and databases1 GB10 GB100 GB100 GB
Databases, within storage1 GB2 GB10 GB10 GB
Key-value data, within storageNone10 GB10 GB10 GB
Image pushes per workspace per dayNone20 GB100 GB100 GB
Requests included100,0002,000,00020,000,000Set in your contract
Allowances resetEach calendar monthEach billing monthEach billing monthEach calendar month
Requests countedAll served, public paths tooAll served, public paths tooAll served, public paths tooAll served, public paths too
Requests past thatStops at 200,000 (2×)$3.78 per million$3.78 per millionSettled by contract
CPU time included50,000,000 ms, then stops100,000,000 ms400,000,000 msSet in your contract
CPU time past thatNone$0.041 per million ms$0.041 per million msSettled by contract
Database rows read included50,000,000, then stops500,000,0005,000,000,000Set in your contract
Rows read past thatNone$2.50 per billion$2.50 per billionSettled by contract
Database rows written included100,000, then stops500,0005,000,000Set in your contract
Rows written past thatNone$2.25 per million$2.25 per millionSettled by contract
Database storage past its limitStops, then suspension$1.55 per GB-month$1.55 per GB-monthSettled by contract
Default usage limitNot charged$0 a month$0 a monthNone
Invoiced early atNot charged$100 of usage$400 of usagePer contract
Audit log kept3 months3 months12 months12 months
Usage insights look back30 days90 days365 days365 days
App logs readable for1 day7 days7 days7 days
App log lines per workspace per day20,000100,000300,000300,000
Log drains per workspaceNone255
SSO with SAML or OIDCNoneNoneEarly accessIncluded
SCIM provisioningNoneNoneEarly accessIncluded
Custom rolesNoneNoneEarly accessIncluded
Publish policyNoneNoneEarly accessIncluded
Audit log export as CSVNoneNoneEarly accessIncluded
Audit log streaming to a SIEMNoneNoneEarly accessIncluded
Audit log streams per workspaceNoneNone13
Private networks and fixed outbound addresses†NoneNoneNoneIncluded
Your own encryption keyNoneNoneNoneIncluded
ExportYesYesYesYes
SupportCommunityEmailPriority emailSupport line

Early access: SSO, SCIM, custom roles, publish policy, audit log export and streaming are included on Business for early customers, for a limited time. They are Enterprise features.

† Postgres connections and private networks aren't switched on yet, on any plan. The plans above say what each one gets once they are. Write to sales@forculuslabs.tech to hear when.

Questions

What counts as a request?

Every request our edge passes to an app in your workspace, whoever sent it. That means signed-in people, bypass tokens, anonymous visitors to a public path and webhook deliveries. Requests to the dashboard and the API don't count. We also rate-limit anonymous requests to a public path, per client.

On Team and Business the count starts again each billing month. That month starts on the day you subscribe, and it's the month each invoice covers. On Free the count starts again each calendar month, in UTC. The Billing tab shows this month's count, and it's the same count your invoice uses.

What counts as CPU time?

CPU time is the time your Worker apps' own code spends running, as Cloudflare records it for each request. Public paths and webhooks count too. Time spent waiting on a fetch or a database doesn't. Container apps and static sites aren't charged for CPU time. The code in front of them is ours, and your plan covers a container's computing.

Each billing month includes 100,000,000 ms on Team and 400,000,000 ms on Business, then $0.041 per million ms. Free stops for the month at 50,000,000 ms, and its apps then answer 402 until the month ends or you upgrade.

Each plan also limits the CPU time of a single request to a Worker app: 50 ms on Free, 100 ms on Team and 150 ms on Business. Cloudflare enforces it loosely: a request may run past it, even to a few seconds, or be stopped there, so keep requests under it. The limits page says what happens to a request that's stopped. A request that runs over is still counted in full, and on Team and Business charged like any other.

Can someone run up my bill?

Anonymous requests to a public path count like any other, so a flood of them would cost you something. Three things keep it small. Each client is rate-limited on each public path. Your usage limit stops your apps once usage charges reach it. By default the limit is $0, so nothing beyond the plan's price is charged unless an owner sets another amount, or none, on the Billing tab. Usage is measured a little after it happens, so some can run past the limit before the apps stop, and that usage is on us. And we email the owners along the way: at 80% and 100% of each allowance, as usage charges pass $10, the plan's price and each multiple of it, and at 80% and 100% of the usage limit.

What happens when a Free workspace runs out of requests?

Its apps keep running up to twice the allowance, 200,000 requests in a calendar month. After that they answer 402 until the month ends or you upgrade. An upgrade takes effect straight away. We email the owners when the workspace passes the allowance, and again if its apps stop.

Only requests served on Free count. When a workspace moves to Free after a cancellation, a downgrade or a failed payment, it counts from the hour the change takes effect. What it served on the paid plan doesn't count. For a cancellation or a downgrade, the change takes effect when the paid month ends. For a failed payment, it's the end of the two weeks of retries. Starting a checkout and leaving it unfinished changes nothing.

Team and Business don't stop at their request allowance. Requests past it are metered at $3.78 per million and added to that month's invoice, up to the workspace's usage limit.

What is a container app?

Any app that isn't a JavaScript Worker or a static site: a Python, Go, Rust or Node server, with or without a Dockerfile. It runs in a container behind the same edge. Team runs one container app, with one container at the lite or basic size. basic has a quarter of a vCPU and 1 GiB of memory.

Business runs four container apps, and gives them 40 container units to share. A container uses 4 units at lite, 10 at basic and 24 at standard-1, which has half a vCPU and 4 GiB of memory. An app can run up to four containers, and each request goes to one of them. So Business runs four basic apps, or one app on four basic containers, or a standard-1 app beside smaller ones. Enterprise contracts run more and bigger, up to standard-4 with 4 vCPUs and 12 GiB of memory. Write to us if you need that.

Free runs JS, TypeScript and static apps only. If a workspace moves to Free, its container apps stop answering until it's on a paid plan again, and so do apps with key-value storage or a queue. Until then the edge returns 402 with a page saying the app needs a paid plan.

What counts toward storage?

The files your sites serve, the files your apps keep, what they keep in key-value storage, and their databases. We measure apps' files every five minutes and each database about once an hour. If a workspace goes over its storage, nothing new deploys until it's back under. Once any app keeps files of its own, every app with a place for files also answers 507 to everyone, owners and admins included, until there's room, since nothing else would stop it writing more. Delete files with forculus files rm, delete rows, or move to a bigger plan. If the workspace stays over because of its apps' files, we delete those files after 7 days on Free and 30 on Team and Business, with an email to the owners a week before. We don't if the workspace would still be over without them.

What counts as a database row?

Cloudflare counts rows for each of your apps' databases. A query counts every row it reads, including rows it scans but doesn't return, and every row and index entry it writes. Queries made while serving public paths count, and so do database exports and forculus db commands.

Free stops for the month at 50,000,000 database rows read or 100,000 written. For that cut-off we use the lowest figure Cloudflare reports, so a Free workspace is never stopped early. If we can't measure a Free workspace's rows for two hours, its apps with a database answer 402 until we can.

Team includes 500,000,000 rows read and 500,000 written each billing month, and Business ten times that. Past those, rows read cost $2.50 per billion and rows written $2.25 per million. Invoices only use Cloudflare's exact figures, never an estimate.

What happens when a workspace's databases reach the limit?

All of a workspace's databases share one limit. It's 1 GB on Free, 2 GB on Team and 10 GB on Business. We measure them every few minutes and email the owners at 80%.

Over the limit, apps with a database answer only the workspace's owners and admins, so they can delete rows through the app. Everyone else gets 507, including bypass tokens, public paths and webhooks, and nothing new deploys. If the databases keep growing, or reach 10% over, those apps answer no one. Apps without a database keep answering throughout.

To get back under, delete rows through the app or with forculus db exec, export and remove data, or upgrade. On Team and Business, storage over the limit costs $1.55 per GB-month, charged by the hour for as long as it lasts. On Free, a workspace still over after 7 days is suspended. 30 days later we delete its largest databases until it's under, and we email 7 days and 1 day before we do.

Is billing per person?

No. You pay per workspace, and each plan includes a set number of members. One person can be in several workspaces on different plans.

How do I change a plan?

On the workspace's Billing tab. The dialog tells you exactly what will happen before you confirm.

An upgrade takes effect as soon as it's paid for, and starts a new billing month. The next answer explains how it's charged.

A downgrade takes effect at your renewal, when the month you've paid for ends. Until then you keep the higher plan, the Billing tab shows the day it moves, such as "Team from 28 October", and you can undo it. The renewal invoice is at the new price. You can't downgrade while the workspace uses more than the lower plan allows in container apps, their sizes, containers or units, or database data. The message tells you what to delete first.

If the new plan keeps less of the audit log, older events are deleted 30 days after the change, so export first.

What happens when I upgrade?

You start a new billing month on the new plan straight away, at its full price, and every allowance starts again. You get a credit for the unused time on the old plan, unless you've used the old plan's allowances much faster than the month has gone by. The dialog tells you which before you confirm. The old plan's usage so far is invoiced with the upgrade, at the old plan's prices. CPU time from about the last two hours before the upgrade, and database storage over the limit in the current hour, count in the new month, because we measure them later.

How do I cancel?

In Stripe's customer portal, which you open from the Billing tab. You also update cards and find invoices there. A cancellation takes effect when the month you've paid for ends. The workspace then goes back to Free: container apps and apps with key-value storage or a queue stop, Postgres connections and log drains turn off, and everything else keeps running within Free's limits. Free keeps 3 months of the audit log, and older events are deleted 30 days after the change, so export first. The refund policy covers the rest of a month you've paid for.

What if a payment fails?

If a payment fails, we retry for up to two weeks, and Stripe emails you each time. After that the workspace moves to Free: container apps and apps with key-value storage or a queue stop, Postgres connections and log drains turn off, and everything else keeps running within Free's limits. We email the owners three days before the move, and again when it happens. Pay the invoice and the plan comes back.

How much can I push?

Each container image push counts against two daily budgets, one for the workspace and one for the person pushing. A workspace can push 20 GB a day on Team and 100 GB on Business. On any plan, each person can push 20 GB a day. Both are rolling, so a push counts for 24 hours. If a push would go over either budget, it's refused until older pushes age out. The image you already deployed keeps running.

What if I go over a limit other than requests?

You can't create anything that would take you over a limit, like a new app, member or token. The message says which limit and which plan lifts it, for example "Team allows 25 apps". Everything you already have keeps running. Storage, the database limit and Free's monthly CPU time and database rows are different: past them, apps can stop answering, as the answers above say.

A few limits affect running apps. If a workspace's databases hold more than its plan allows, its apps with a database answer 507 to everyone except owners and admins. If a workspace stores more than its plan allows and any of its apps keeps files, every app with a place for files answers 507 to everyone until there's room. A Free workspace that uses 50,000,000 ms of CPU time, reads 50,000,000 database rows or writes 100,000 in a month has its apps paused until the next month.

No plan allows more than 10 public paths per app. The edge keeps each app's public paths in memory between requests, and more wouldn't fit.

Can I take my data out?

Yes, on every plan. A workspace owner can export the workspace from its Settings page. You get one JSON file with its configuration, members, sharing, the audit log your plan keeps, and the names of its tokens, secrets and environment variables. It never includes a value. An owner can also export an app's database as SQL from the app's page in the dashboard, or with forculus db export. A static site is the files you uploaded.

What happens when I delete an app or a workspace?

A deleted app or workspace is kept for 30 days, with its data, and an owner can restore it until then. It isn't billed and doesn't count toward your plan while it's kept. After the 30 days, or when you delete it for good, deletion is immediate and permanent, so export first. Nothing is kept while anyone who owns what you delete has yet to accept our terms: see when deletion is immediate. An app's scripts, databases and containers are removed from Cloudflare right away, along with its configuration, versions, sharing, tokens, secrets and environment variables. Its files go right away too, up to 5,000 of them. An app with more has the rest deleted over the following minutes, and in any case within two days. Its entries in the workspace's audit log stay for your plan's audit retention, like every other entry.

Deleting a workspace deletes its apps the same way. Once it's deleted for good, we keep our own records of the workspace for 30 days for accounting, but you can't restore anything. Deleting a workspace on a paid plan cancels its subscription at once, with no refund for the rest of the month, and a restored one comes back on Free. The confirmation dialog says so.

While the law requires us to keep a workspace's data, you can't delete the workspace or its apps. See section 10 of the terms.

Where are my invoices?

On Team and Business, in Stripe's customer portal, which you open from the Billing tab. Stripe issues and keeps every invoice and receipt. On Enterprise, the Billing tab lists the invoices Stripe sent for your contract, each with a link to read, download and pay it.

Do you offer invoicing or annual billing?

On Enterprise. We set up a contract with you, invoiced monthly or yearly, with up to 120 days to pay each invoice. Team and Business are monthly, paid by card through Stripe. Email sales@forculuslabs.tech.

Is there a discount for open source, education or non-profits?

Tell us about the project at support@forculuslabs.tech.