Plans and limits
This page summarizes Keelson’s numerical limits. See the pricing page for pricing.
Limits by plan
Section titled “Limits by plan”| Starter | Plus | Team | |
|---|---|---|---|
| Concurrent apps | 1 | 2 | 4 |
| Developers (Owner / Admin / Developer seats) | 1 | 2 | 3 |
| Scheduled Jobs executions / month | 1,000 | 5,000 | 15,000 |
| Cron entries / app | 3 | 5 | 10 |
| Minimum cron interval | 60 minutes | 15 minutes | 5 minutes |
| Maximum timeout per cron run | 3 minutes | 5 minutes | 10 minutes |
| Builds / month | 100 | 300 | 1,000 |
| Build time / month | 500 minutes | 1,500 minutes | 5,000 minutes |
| Concurrent builds | 1 | 1 | 2 |
| Daily backup retention | 1 generation | 3 generations | 7 generations |
| PITR (point-in-time recovery) window | 24 hours | 7 days | 14 days |
| Storage (workspace total) | 10 GB | 20 GB | 50 GB |
| Database capacity (per DB) | No fixed limit | No fixed limit | No fixed limit |
| Priority start | — | Yes | Yes |
| Custom domains | — | — | Up to 10 |
| Access log retention | 30 days | 90 days | 180 days |
| App log retention | 7 days | 14 days | 30 days |
The Enterprise plan is in preparation. Contact us if your requirements exceed these limits.
Included in every plan
Section titled “Included in every plan”- Unlimited app users
- Paid plans allow an unlimited number of stored apps. Only the number that can run concurrently is limited. During the trial, separate limits apply to owned and concurrently running apps; see Limits during the trial below
- Authentication, access control, and IP restrictions
- Daily backups, manual snapshots (five per app per day), PITR, and backup downloads
- Managed SQLite (databases isolated by app and workspace)
- A 14-day free trial (once per account). You can start Starter and Plus without registering a card
Terminology
Section titled “Terminology”Concurrent apps
Section titled “Concurrent apps”The number of web apps running concurrently. A slot is automatically released about five minutes after the last access, so only apps accessed within the last five minutes consume slots.
- Sleeping and suspended apps do not consume slots
- Apps that only run cron jobs do not consume slots; they run in a separate allocation
- Static sites do not use app slots, and there is no limit to how many you can create
- Apps configured for Priority start always reserve a slot. On Plus and above, you can configure Priority start for up to one fewer app than the effective number of slots
Developers
Section titled “Developers”Developer seats are used by accepted members with the Owner, Admin, or Developer role and by unaccepted invitations that have not expired. An unaccepted invitation reserves one seat when created and is included in usage. Only accepted members are counted when checking limits for accepting invitations and changing roles. App Users are not counted.
Storage
Section titled “Storage”Storage is the workspace total for app artifacts, Files / Media SDK files, and snapshots. Logs are not included. Managed SQLite capacity is managed separately from this allocation and has no fixed per-plan limit.
Limits during the trial
Section titled “Limits during the trial”- Except for apps deployed as static sites, a trial workspace can own at most 3 apps. Undeployed apps and apps that use a server count toward this limit, and creating a 4th is rejected
- Every trial workspace can run at most 3 apps at the same time, regardless of its plan. This replaces the plan’s app-slot limit during the trial and does not include extra-app add-ons, so Team drops from 4 slots to 3
- Builds are limited to 7 per day
- Builds are limited to 30 for the entire trial. Because these 30 builds are cumulative, the allowance does not reset when the month changes
- Build time and concurrent-build limits remain at the values for your plan
- When you move to a paid plan, the owned-app limit is removed and the concurrent-app limit returns to your plan’s app slots plus any extra-app add-ons
What happens when you reach a limit
Section titled “What happens when you reach a limit”| Limit | Behavior |
|---|---|
| Concurrent apps | You cannot start or deploy a new app. Running apps are unaffected. If you access a sleeping app when no slot is available, an HTTP 503 information page appears. A slot is released after about five minutes |
| Developers | You cannot invite a member to a developer role or change a member to one. You can still invite App Users |
| Scheduled Jobs executions | Remaining executions for the current month are skipped. The quota resets the next month |
| Cron entries / minimum interval / timeout | A deployment is rejected if keelson.yaml does not comply with the plan |
| Builds / build time (monthly) | New builds are rejected. Both allowances reset the next month. The trial’s cumulative limit of 30 builds does not reset, so you must move to a paid plan to continue |
| Concurrent builds | While the limit is reached, new builds are rejected until a running build finishes |
| Storage | Service does not stop immediately. Support will contact you about the excess usage |
| Database capacity | There is no fixed per-plan limit. However, technical limits of the underlying infrastructure apply. Keelson may also restrict or stop an app if it detects a load that significantly exceeds ordinary business use or usage that affects platform stability, other customers, or Keelson’s reasonable operating costs. In an emergency, Keelson may impose restrictions without advance notice |
Add-ons (Team and above)
Section titled “Add-ons (Team and above)”| Add-on | Unit |
|---|---|
| Additional storage | +50 GB |
| Additional concurrent apps | +1 slot |
| Additional Developers | +1 seat |