Aller au contenu
Bastide Connexion Créer un compte
Press / to search

Limits per tier

FrançaisMarkdownv0.3.0

This page gathers Bastide's limits: those of each tier, grouped by theme, then the platform's, which apply to everyone. Per-tier values are those of the published grid; prices and what is billed beyond them are in Billing.

Reading these tables

A per-tier limit applies per project unless stated otherwise. « Negotiated » means the value is set in the Sovereign tier's quotation. When a limit is reached, the platform refuses with a code and a sentence naming the limit and its value; it never cuts silently. A storage or minutes limit never stops the service delivered to the visitors of a site already online.

Note. A project starts in Discovery and changes tier through the Palier (Tier) screen. Pro opens subject to available capacity; Sovereign is quoted on request and its dedicated node is not served yet.

Compute

DiscoveryStandardProSovereign
ProductionSleeps after 15 minAlways warmAlways warmDedicated, hot replica
Memory per web instance512 MB512 MB2 GBnegotiated
Guaranteed CPU share0.05 vCPU0.16 vCPU1 vCPUnegotiated
Processes (PID cap)2565121,024negotiated
Ephemeral disk /tmp512 MB1 GB4 GBnegotiated
Services per project11025negotiated
Instances per service1310negotiated
Scheduled tasks per project520100500
Custom environments021010

A workload that exceeds its memory is killed by the kernel (memoire_depassee); the report gives the observed value and the limit. A glowsoft.json declaring more services or scheduled tasks than the tier allows is refused before any build (declaration_refusee), naming the cap.

Database

DiscoveryStandardProSovereign
IsolationShared clusterShared clusterDedicated PostgreSQL instanceDedicated instance and node
Included database1 GB8 GB50 GB250 GB
Database branches132550
PostgreSQL extensions20, allow-list50, allow-listAnyAny
Connections, client / server30 / 360 / 5200 / 15negotiated
Statement / idle transaction timeout30 s / 60 s30 s / 60 s300 s / 300 s300 s / 300 s
BackupDailyHourly over 48 h, then dailyPoint-in-time recovery (PITR) to the secondPITR and synchronous replica
Backup retention7 days30 days35 days90 days
Contractual RPO / RTO24 h / 4 h1 h / 2 h5 min / 30 min5 min / 30 min

Realtime

DiscoveryStandardProSovereign
Messages per second1005002,500negotiated
Concurrent connections2002,00010,000negotiated

Storage and emails

DiscoveryStandardProSovereign
Included object storage5 GB50 GB250 GB1 TB
Maximum file size50 MB5 GB50 GBproject quota
Included image transformations per month5,00050,000250,0001,000,000
Transactional emails per month1,00010,00050,000200,000

An upload is refused if it exceeds the type or size allowed by the bucket, the tier's maximum file size or the project's quota; the refusal names which of the three applies. Beyond the included transformations, the image is served as is.

Network

DiscoveryStandardProSovereign
Outbound traffic, fair use500 GB/month2 TB/month10 TB/month50 TB/month
Sustained outbound throughput per project20 Mb/s50 Mb/s200 Mb/s500 Mb/s
Concurrent outbound connections per container2565122,0484,096, negotiated
Request budget per project, 10 s burst100 req/s250 req/s1,000 req/s2,500 req/s
Custom domains per project110100500

Outbound throughput is never refused nor truncated: a ten-second burst goes at full speed, then the edge paces sending down to the cap. At 80 % of the burst, the platform emits the project.egress.threshold event to the project's endpoints (see Webhooks).

Build and deployment

DiscoveryStandardProSovereign
Build minutes per month1005002,00010,000
Concurrent builds125negotiated
Concurrent previews132550

The minutes allowance is a hard cap: once reached, it refuses further builds until the first of the month (UTC), billing no overage. A build cancelled by a newer push does not count; a failed build does.

Observability

DiscoveryStandardProSovereign
Runtime log retention7 days30 days90 days365 days
Project audit log30 days12 months24 months36 months

Team, security and support

DiscoveryStandardProSovereign
SeatsUnlimitedUnlimitedUnlimitedUnlimited
Single sign-on and SCIM—IncludedIncludedIncluded
Preview protection, 4 modesIncludedIncludedIncludedIncluded
Committed availability99.5 %99.9 %99.9 %99.95 %
SupportDocumentation, forumTicket, email, 9 am – 6 pm working daysTicket, email, phone, 8 am – 7 pm working daysTicket, phone, named contact, 8 am – 8 pm working days

Note. During the beta, Bastide runs in a single region, in France, and the numeric availability commitment is not in force yet.

The free project

Each verified person's free project has its own limits, tighter than Discovery:

LimitValue
Sleepafter 15 min without a request
Dormancyafter 30 days with neither a visit nor a deployment
Database500 MB
Object storage1 GB
Build minutes100 per month
Emails100 per month
Custom domains1
Outbound networkclosed by default, opened host by host; no outbound SMTP
Sustained CPU0.25 core

Platform limits

These limits apply to every tier.

API rate

Each token (or the console session standing in for it) has two limits, over a sliding window:

LimitValueApplies to
General600 calls per 60 sEvery operation
Sensitive60 calls per 60 sWrites, and reads that return a secret, on top of the general one

Every response carries RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset (in seconds) and RateLimit-Policy; a refusal returns 429 rate_limited with Retry-After. Each operation's reference page publishes its limits. Other caps protect specific actions:

ActionCap
Project creations by an agent5 per rolling day per tenant (plafond_de_creations_de_projet)
Sign-in failures5 within 15 minutes for an account from one address, then a doubling wait (trop_de_tentatives)
Personal tokens per account50
Active second factors per account5
Deployment hooks per project20
Projects connected to the same repository within an organisation50

Environment variables

An environment holds at most 1,000 variables and 262,144 bytes in total; beyond that, the write is refused (quota_exceeded).

Requests served by the edge

ParameterValueAdjustableBeyond
URL length16 KBno414
Request headers100, 32 KB in totalno431
Request body100 MBup to 5 GB (requests.maxBodyMegabytes)413
Connection to the application10 sno502
Application response headers15 snot yet504
Full response (guard timeout)300 s30 to 3,600 s (requests.timeoutSeconds)504
Long-lived connection (WebSocket, event stream)60 minnot yetconnection ends
Concurrent connections per source address200noconnection refused

Both settings are declared in the repository's glowsoft.json (see Routing).

Build

A repository's Dockerfile is read within bounds: 256 KiB, 4,000 lines, 32 KiB per logical line (dockerfile_trop_grand). The image produced targets linux/amd64, the fleet's only runtime architecture. A build that runs too long, logs too much or uses too much stops with a code that says so (build_limite_duree, build_limite_journal, build_limite_memoire, build_limite_disque); see Builds.

Coming from Supabase

The known gaps between Bastide and Supabase (1,000 rows per REST response, the pooler's transaction mode, realtime without postgres_changes…) are listed and reproduced by a test on the public page https://bastide.app/limites-supabase, and repeated in Migrate from Supabase.

See also: Billing, Builds, Database, Storage, Troubleshooting.

Report a mistake on this page