Skip to content

Commit 26ef85d

Browse files
feat(tables): raise per-plan table limits (free 5/50k, pro 100/100k, max 1k/500k)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 63a3e6d commit 26ef85d

3 files changed

Lines changed: 17 additions & 17 deletions

File tree

apps/sim/app/(landing)/components/pricing/pricing.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ const PRICING_TIERS: PricingTier[] = [
3838
features: [
3939
'1,000 credits (trial)',
4040
'5GB file storage',
41-
'3 tables · 1,000 rows each',
41+
'5 tables · 50,000 rows each',
4242
'1 personal workspace',
4343
'5 min execution limit',
4444
'7-day log retention',
@@ -56,7 +56,7 @@ const PRICING_TIERS: PricingTier[] = [
5656
features: [
5757
'6,000 credits/mo · +50/day',
5858
'50GB file storage',
59-
'25 tables · 5,000 rows each',
59+
'100 tables · 100,000 rows each',
6060
'Up to 3 personal workspaces',
6161
'50 min execution · 150 runs/min',
6262
'Unlimited log retention',
@@ -74,7 +74,7 @@ const PRICING_TIERS: PricingTier[] = [
7474
features: [
7575
'25,000 credits/mo · +200/day',
7676
'500GB file storage',
77-
'25 tables · 5,000 rows each',
77+
'1,000 tables · 500,000 rows each',
7878
'Up to 10 personal workspaces',
7979
'50 min execution · 300 runs/min',
8080
'Unlimited log retention',
@@ -91,7 +91,7 @@ const PRICING_TIERS: PricingTier[] = [
9191
features: [
9292
'Custom credits & infra limits',
9393
'Custom file storage',
94-
'10,000 tables · 1M rows each',
94+
'Custom tables & rows',
9595
'Unlimited shared workspaces',
9696
'Custom execution limits',
9797
'Unlimited log retention',

apps/sim/lib/core/config/env.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,12 @@ export const env = createEnv({
7575
TABLE_SNAPSHOT_CACHE: z.boolean().optional(), // Mount tables into sandboxes by reference via a version-keyed CSV snapshot in object storage instead of draining the whole table into web-process heap
7676

7777
// Table feature limits (per plan). Apply when billing is disabled (free tier defaults) or for billed plans.
78-
FREE_TABLES_LIMIT: z.number().optional(), // Max user tables per workspace on free tier (default: 3)
79-
FREE_TABLE_ROWS_LIMIT: z.number().optional(), // Max rows per table on free tier (default: 1000)
80-
PRO_TABLES_LIMIT: z.number().optional(), // Max user tables per workspace on pro tier (default: 25)
81-
PRO_TABLE_ROWS_LIMIT: z.number().optional(), // Max rows per table on pro tier (default: 5000)
82-
TEAM_TABLES_LIMIT: z.number().optional(), // Max user tables per workspace on team tier (default: 100)
83-
TEAM_TABLE_ROWS_LIMIT: z.number().optional(), // Max rows per table on team tier (default: 10000)
78+
FREE_TABLES_LIMIT: z.number().optional(), // Max user tables per workspace on free tier (default: 5)
79+
FREE_TABLE_ROWS_LIMIT: z.number().optional(), // Max rows per table on free tier (default: 50000)
80+
PRO_TABLES_LIMIT: z.number().optional(), // Max user tables per workspace on pro tier (default: 100)
81+
PRO_TABLE_ROWS_LIMIT: z.number().optional(), // Max rows per table on pro tier (default: 100000)
82+
TEAM_TABLES_LIMIT: z.number().optional(), // Max user tables per workspace on team tier (default: 1000)
83+
TEAM_TABLE_ROWS_LIMIT: z.number().optional(), // Max rows per table on team tier (default: 500000)
8484
ENTERPRISE_TABLES_LIMIT: z.number().optional(), // Max user tables per workspace on enterprise tier (default: 10000)
8585
ENTERPRISE_TABLE_ROWS_LIMIT: z.number().optional(), // Max rows per table on enterprise tier (default: 1000000)
8686

apps/sim/lib/table/constants.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export const TABLE_LIMITS = {
3131
* keyset-select and cancel/ownership-check granularity. */
3232
DELETE_PAGE_SIZE: 10000,
3333
/** Row count above which an export runs as a background job instead of a synchronous stream.
34-
* Matches the default per-table row cap, so non-enterprise tables keep instant downloads. */
34+
* Tables at or under this stream instantly; larger ones fall back to an async export job. */
3535
EXPORT_ASYNC_THRESHOLD_ROWS: 10000,
3636
/** Cap on the exclusion set ("select all, minus these") sent to an async delete job. */
3737
MAX_EXCLUDE_ROW_IDS: 10000,
@@ -44,16 +44,16 @@ export const TABLE_LIMITS = {
4444
*/
4545
export const DEFAULT_TABLE_PLAN_LIMITS = {
4646
free: {
47-
maxTables: 3,
48-
maxRowsPerTable: 1000,
47+
maxTables: 5,
48+
maxRowsPerTable: 50000,
4949
},
5050
pro: {
51-
maxTables: 25,
52-
maxRowsPerTable: 5000,
51+
maxTables: 100,
52+
maxRowsPerTable: 100000,
5353
},
5454
team: {
55-
maxTables: 100,
56-
maxRowsPerTable: 10000,
55+
maxTables: 1000,
56+
maxRowsPerTable: 500000,
5757
},
5858
enterprise: {
5959
maxTables: 10000,

0 commit comments

Comments
 (0)