diff --git a/package.json b/package.json index 600b74c611..ea038066ea 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", "clean": "rm -rf node_modules && rm -rf .svelte_kit && bun install", "dev": "vite dev", - "format": "prettier --write .", + "format": "prettier --write --cache .", "format:check": "prettier --check .", "generate:icons": "bun ./src/icons/optimize.js", "icons:build": "bun ./src/icons/build.js", diff --git a/src/lib/utils/references.ts b/src/lib/utils/references.ts index 25dd15aad8..ed87d3b0d7 100644 --- a/src/lib/utils/references.ts +++ b/src/lib/utils/references.ts @@ -161,10 +161,12 @@ export const serviceMap: Record = { }; export const preferredVersion = writable( - globalThis?.localStorage?.getItem('preferredVersion') as Version + browser ? (globalThis?.localStorage?.getItem('preferredVersion') as Version) : null ); function getInitialPlatform(): Platform { + if (!browser) return Platform.ClientWeb; + const stored = globalThis?.localStorage?.getItem('preferredPlatform') ?? Platform.ClientWeb; // return if this platform is valid if (VALID_PLATFORMS.has(stored as Platform)) { diff --git a/src/routes/(marketing)/(components)/pricing.svelte b/src/routes/(marketing)/(components)/pricing.svelte index 2985d1681a..18f248a70f 100644 --- a/src/routes/(marketing)/(components)/pricing.svelte +++ b/src/routes/(marketing)/(components)/pricing.svelte @@ -99,7 +99,7 @@
- {#each visiblePlans as { name, price, tag: label, subtitle, description, event }} + {#each visiblePlans as { name, price, tag: label, subtitle, description, event }, index (`${name},${label},${index}`)} {@const isEnterprise = name === 'Enterprise'}
diff --git a/src/routes/changelog/(entries)/2026-01-19.markdoc b/src/routes/changelog/(entries)/2026-01-19.markdoc new file mode 100644 index 0000000000..b5cac6c8c7 --- /dev/null +++ b/src/routes/changelog/(entries)/2026-01-19.markdoc @@ -0,0 +1,21 @@ +--- +layout: changelog +title: "Execution logs retention limits per plan" +date: 2026-01-19 +--- + +We've introduced execution logs retention limits to maintain platform sustainability and performance. + +Starting today, execution logs for functions and sites will be retained based on your plan: + +- **Free plan**: 100 execution logs per function/site +- **Pro plan**: 1,000 execution logs per function/site +- **Enterprise plan**: Custom + +These limits apply on a rolling basis - as new logs are created, older logs beyond the limit will be automatically removed. + +If you have any questions, please contact us at billing@appwrite.io. + +{% arrow_link href="/docs/products/functions" %} +Learn more about Appwrite Functions +{% /arrow_link %} diff --git a/src/routes/pricing/compare-plans.svelte b/src/routes/pricing/compare-plans.svelte index cc155ac964..96c4f1b1c1 100644 --- a/src/routes/pricing/compare-plans.svelte +++ b/src/routes/pricing/compare-plans.svelte @@ -71,6 +71,14 @@ pro: '3.5M / month', scale: '3.5M / month', enterprise: 'Custom' + }, + { + title: 'Execution logs', + free: '100', + pro: '1000', + scale: 'Unlimited', + enterprise: 'Custom', + info: 'Number of execution logs retained per function/site' } ] },