diff --git a/.optimize-cache.json b/.optimize-cache.json index 19d7e339101..f19a932c500 100644 --- a/.optimize-cache.json +++ b/.optimize-cache.json @@ -12,8 +12,9 @@ "static/assets/logotype/white.png": "a6c0a516cafa38798b578597a50e1edc967494e986ee1a74e9170e3fa45c67fc", "static/assets/visuals/auth.jpg": "a310ed768b63e73eb09452352ffa5a59638b4223aebbcaac80bdb232b24de64f", "static/assets/visuals/auth.png": "6634419bdf4972706d08a03a148fbf2f0053377dca85ffd7d95ecc3e016a009b", + "static/assets/visuals/dashboard-screenshot.png": "931eec1e7232b5754684e2652999648f3fada876b3d39351360a5bb87008367c", "static/assets/visuals/dashboard.jpg": "fbb2bae3d39f500337d6c4bca64ddaaea163a177ab3db77641ecd7050c43c10e", - "static/assets/visuals/dashboard.png": "544b8af8bdb33546d5746fac6427c815248b2c321c4f28c3be7870c040b265b3", + "static/assets/visuals/dashboard.png": "931eec1e7232b5754684e2652999648f3fada876b3d39351360a5bb87008367c", "static/assets/visuals/databases.jpg": "0de2e6b470f9903db803120d03e1b3abe21728802564d2702989a48128bd0abc", "static/assets/visuals/databases.png": "d50ce8119e31f7b8099e9b98fe38a7066adcf421eb061756db900b5e60f257fe", "static/assets/visuals/functions.jpg": "cb9dc9f434329949a8a0bd1302033e4106d4e6f16e05dada696529800e7236b3", diff --git a/src/hooks.server.ts b/src/hooks.server.ts index 66129564789..52e9f50e9d4 100644 --- a/src/hooks.server.ts +++ b/src/hooks.server.ts @@ -106,6 +106,7 @@ const securityheaders: Handle = async ({ event, resolve }) => { 'https://*.appwrite.io', 'https://*.appwrite.org', 'https://*.appwrite.network', + 'https://status.appwrite.online', 'https://*.sentry.io', 'https://*.plausible.io', 'https://plausible.io', diff --git a/src/lib/components/FooterCloudStatusBadge.svelte b/src/lib/components/FooterCloudStatusBadge.svelte new file mode 100644 index 00000000000..5a27508bf80 --- /dev/null +++ b/src/lib/components/FooterCloudStatusBadge.svelte @@ -0,0 +1,180 @@ + + + trackEvent('footer-cloud-status-badge-click')} +> + + {labelFor(aggregateState)} + + + diff --git a/src/lib/components/FooterNav.svelte b/src/lib/components/FooterNav.svelte index 4275c44eb15..c9344b39990 100644 --- a/src/lib/components/FooterNav.svelte +++ b/src/lib/components/FooterNav.svelte @@ -47,10 +47,6 @@ { label: 'Docs', href: '/docs' }, { label: 'Integrations', href: '/integrations' }, { label: 'Community', href: '/community' }, - { - label: 'Backend as a service (BaaS)', - href: '/blog/post/backend-as-a-service' - }, { label: 'Init', href: '/init' }, { label: 'Threads', href: '/threads' }, { label: 'Changelog', href: '/changelog' }, @@ -91,6 +87,40 @@ { label: 'Education', href: '/education' }, { label: 'Partners', href: '/partners' } ], + Compare: [ + { + label: 'Appwrite vs. Supabase', + href: '/blog/post/appwrite-compared-to-supabase' + }, + { + label: 'Appwrite vs. Firebase', + href: '/blog/post/open-source-firebase-alternative' + }, + { + label: 'Appwrite vs. Neon', + href: '/blog/post/appwrite-vs-neon-ai-backends' + }, + { + label: 'Appwrite vs. Vercel', + href: '/blog/post/open-source-vercel-alternative' + }, + { + label: 'Appwrite vs. Netlify', + href: '/blog/post/open-source-netlify-alternative' + }, + { + label: 'Appwrite vs. Cloudinary', + href: '/blog/post/appwrite-vs-cloudinary' + }, + { + label: 'Appwrite vs. Auth0', + href: '/blog/post/appwrite-vs-auth0' + }, + { + label: 'Backend as a service (BaaS)', + href: '/blog/post/backend-as-a-service' + } + ], About: [ { label: 'Company', href: '/company' }, { label: 'Pricing', href: '/pricing' }, @@ -118,16 +148,29 @@ class="web-footer-nav relative mt-24" class:web-u-sep-block-start={!noBorder} > - +