- Thousands of developers scale with Appwrite_
+ Over half a million developers scale with Appwrite_
“{@render children()} Thanks to Appwrite and advances in technology, we were able to get an MVP out in 2/3 months with 1 developer.
-We appreciate how UNDŌ is leveraging Appwrite to support businesses with eco-friendly, sustainable practices. We definitely look forward to their future endeavors. You can learn more about them by visiting their [website](https://undo.software/).
+We appreciate how UNDO is leveraging Appwrite to support businesses with eco-friendly, sustainable practices. We definitely look forward to their future endeavors. You can learn more about them by visiting their [website](https://undo.software/).
diff --git a/src/routes/blog/post/image-transformation-with-appwrite-storage/+page.markdoc b/src/routes/blog/post/image-transformation-with-appwrite-storage/+page.markdoc
index a8d5e661a03..767d703191d 100644
--- a/src/routes/blog/post/image-transformation-with-appwrite-storage/+page.markdoc
+++ b/src/routes/blog/post/image-transformation-with-appwrite-storage/+page.markdoc
@@ -15,6 +15,8 @@ Instead of manually editing images before uploading them or storing multiple var
This guide will walk you through everything you need to know about image transformation with Appwrite, and how to use the Storage preview endpoint to transform images. By the end, you'll be able to integrate image transformations into your app without touching an image editor.
+If you are deciding between Appwrite Storage previews and a dedicated media CDN, see [Appwrite vs Cloudinary](/blog/post/appwrite-vs-cloudinary) for trade-offs around features, CDN delivery, and pricing.
+
# Why dynamic image transformations?
Here are some of the benefits of transforming images dynamically:
diff --git a/src/routes/blog/post/storage-previews-vs-ssr-image-optimization/+page.markdoc b/src/routes/blog/post/storage-previews-vs-ssr-image-optimization/+page.markdoc
index a980e299df6..0d3425d1d24 100644
--- a/src/routes/blog/post/storage-previews-vs-ssr-image-optimization/+page.markdoc
+++ b/src/routes/blog/post/storage-previews-vs-ssr-image-optimization/+page.markdoc
@@ -16,6 +16,8 @@ This raises an important question: if frameworks can now handle image processing
In this post, we'll compare service-based image transformations with SSR image functions, examine their tradeoffs, and help you decide which approach fits your needs.
+For a separate comparison of Appwrite Storage against dedicated media platforms (not framework SSR), read [Appwrite vs Cloudinary](/blog/post/appwrite-vs-cloudinary).
+
# What are service-based image transformations?
Service-based image transformations handle image processing through a dedicated API, completely separate from your application server. With Appwrite Storage previews, you upload an image once, and the service generates transformed versions on demand using URL parameters.
diff --git a/src/routes/products/auth/+page.svelte b/src/routes/products/auth/+page.svelte
index e80abb3fc39..1504bb131fe 100644
--- a/src/routes/products/auth/+page.svelte
+++ b/src/routes/products/auth/+page.svelte
@@ -14,7 +14,7 @@
import Features from './(components)/features/Features.svelte';
import Pricing from '$routes/(marketing)/(components)/pricing.svelte';
- const title = 'Auth' + TITLE_SUFFIX;
+ const title = 'Appwrite Auth' + TITLE_SUFFIX;
const description =
'Enable secure and reliable user login with Appwrite Auth. We support multiple authentication methods with compliance features out of the box.';
const ogImage = DEFAULT_HOST + '/images/open-graph/website.avif';
diff --git a/src/routes/products/functions/(components)/Testimonials.svelte b/src/routes/products/functions/(components)/Testimonials.svelte
index b9d71aa0db4..e5eebdaf21d 100644
--- a/src/routes/products/functions/(components)/Testimonials.svelte
+++ b/src/routes/products/functions/(components)/Testimonials.svelte
@@ -10,7 +10,7 @@
{
name: 'David Forster',
copy: `We really loved working with Appwrite for launching our bootstrapped "Open Mind" App. I am still surprised how easy the implementation into Flutter was.`,
- image: '/images/testimonials/open-mind.avif',
+ image: '/images/testimonials/david-forster.avif',
title: 'Founder',
company: 'Open Mind'
},
@@ -60,7 +60,9 @@
@@ -86,7 +88,9 @@
diff --git a/src/routes/products/functions/+page.svelte b/src/routes/products/functions/+page.svelte
index 4ca7420574d..8ee94aba918 100644
--- a/src/routes/products/functions/+page.svelte
+++ b/src/routes/products/functions/+page.svelte
@@ -17,7 +17,7 @@
import { PUBLIC_APPWRITE_DASHBOARD } from '$env/static/public';
import ProductCards from '$lib/components/product-pages/product-cards.svelte';
- const title = 'Functions' + TITLE_SUFFIX;
+ const title = 'Appwrite Functions' + TITLE_SUFFIX;
const description =
'Appwrite Functions offer everything you need to deploy and scale serverless functions easily, without any server management overhead.';
const ogImage = DEFAULT_HOST + '/images/open-graph/website.avif';
diff --git a/src/routes/products/messaging/+page.svelte b/src/routes/products/messaging/+page.svelte
index 7c9e40c150c..69d98a61e9f 100644
--- a/src/routes/products/messaging/+page.svelte
+++ b/src/routes/products/messaging/+page.svelte
@@ -12,7 +12,7 @@
import { getAppwriteDashboardUrl } from '$lib/utils/dashboard';
import { Button } from '$lib/components/ui';
- const title = 'Messaging' + TITLE_SUFFIX;
+ const title = 'Appwrite Messaging' + TITLE_SUFFIX;
const description =
'Appwrite Messaging allows you to communicate with your audience across various mediums. Push notifications, SMS and emails - set up within minutes!';
const ogImage = DEFAULT_HOST + '/images/open-graph/website.avif';
diff --git a/src/routes/products/sites/+page.svelte b/src/routes/products/sites/+page.svelte
index d97c4670874..1ee5e470549 100644
--- a/src/routes/products/sites/+page.svelte
+++ b/src/routes/products/sites/+page.svelte
@@ -16,7 +16,7 @@
import Network from './(components)/network.svelte';
import Scale from '$routes/(marketing)/(components)/scale.svelte';
- const title = 'Sites' + TITLE_SUFFIX;
+ const title = 'Appwrite Sites' + TITLE_SUFFIX;
const description =
'Appwrite Sites, the open-source Vercel alternative. Develop, deploy, and scale your web applications directly from Appwrite, alongside your backend.';
const ogImage = DEFAULT_HOST + '/images/open-graph/website.avif';
diff --git a/src/routes/products/sites/offer-300/+page.svelte b/src/routes/products/sites/offer-300/+page.svelte
index d28b37deb6f..086e0378717 100644
--- a/src/routes/products/sites/offer-300/+page.svelte
+++ b/src/routes/products/sites/offer-300/+page.svelte
@@ -17,7 +17,7 @@
import Scale from '$routes/(marketing)/(components)/scale.svelte';
import { page } from '$app/state';
- const title = 'Sites' + TITLE_SUFFIX;
+ const title = 'Appwrite Sites' + TITLE_SUFFIX;
const description =
'Appwrite Sites, the open-source Vercel alternative. Develop, deploy, and scale your web applications directly from Appwrite, alongside your backend.';
const ogImage = DEFAULT_HOST + '/images/open-graph/website.avif';
diff --git a/src/routes/products/sites/open-source-netlify/+page.svelte b/src/routes/products/sites/open-source-netlify/+page.svelte
index a0343bcd1eb..7aca6a00627 100644
--- a/src/routes/products/sites/open-source-netlify/+page.svelte
+++ b/src/routes/products/sites/open-source-netlify/+page.svelte
@@ -16,7 +16,7 @@
import Network from '../(components)/network.svelte';
import Scale from '$routes/(marketing)/(components)/scale.svelte';
- const title = 'Sites' + TITLE_SUFFIX;
+ const title = 'Appwrite Sites' + TITLE_SUFFIX;
const description =
'Appwrite Sites, the open-source Netlify alternative. Develop, deploy, and scale your web applications directly from Appwrite, alongside your backend.';
const ogImage = DEFAULT_HOST + '/images/open-graph/website.avif';
diff --git a/src/routes/products/storage/(components)/OpenSource.svelte b/src/routes/products/storage/(components)/OpenSource.svelte
index cc2225abb9c..e43560557a6 100644
--- a/src/routes/products/storage/(components)/OpenSource.svelte
+++ b/src/routes/products/storage/(components)/OpenSource.svelte
@@ -26,8 +26,9 @@
Powered by open source
- Appwrite is a 100% open source project, giving you the flexibility and support you
- need to get your project started.
+ Appwrite is a 100% open source project. Storage runs alongside Auth, databases, and
+ Functions in one stack—so your files and previews live in the same control plane as
+ the rest of your backend.
-
Optimized for small and large files
+
Fast uploads, lighter transfers
- Appwrite offers chunked uploads for large files and several compression options for
- optimized upload times.
+ Chunked uploads handle large video and design files, while compression and preview
+ parameters keep everyday images efficient on browsers and mobile networks.