Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .optimize-cache.json
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@
"images/blog/announcing-auto-increment-support/cover.png": "83a7b1dd0e31ae86e49fa873cde0b6c0319a552b27dc447b4a214efd7f3fd534",
"images/blog/announcing-bulk-api/cover.png": "78a0fdf3b54ce8412bf6be1880eb4a42bcac2cb04420045a60bce888c8999c6f",
"images/blog/announcing-bun-and-dart/bun-and-dart.png": "ea94af00a5c035cefb6474a9061441803db0160b7cc194fb5a71fbe05abf0d12",
"images/blog/announcing-cname-flattening/cover.png": "3d79ccb4a7f1bac9e32e0456e31fe09f4475e87368e582591799445a7d4a6f3a",
"images/blog/announcing-csv-export/cover.png": "a330a6cc463d94635f905f5b48e6ee8b7c1b3f48b1c7ca0fada2e2b6f62b4ccf",
"images/blog/announcing-csv-imports/cover.png": "47b77b504bdb691afcdf7769b70a5edc610ad525364bff8747d813cc674d549c",
"images/blog/announcing-csv-imports/csv-import.png": "160d2eaa3aacbfc3dee93ffe909dafd848479079bf47cd4149fd915b2cd9b6e1",
Expand Down
47 changes: 47 additions & 0 deletions src/routes/blog/post/announcing-cname-flattening/+page.markdoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
layout: post
title: "Announcing CNAME flattening support: Connect your domain without changing nameservers"
description: Appwrite Sites now supports CNAME flattening, so you can connect custom domains by adding a DNS record with your existing provider instead of migrating nameservers.
date: 2026-03-05
cover: /images/blog/announcing-cname-flattening/cover.png
timeToRead: 4
author: matej-baco
category: announcement
featured: false
Comment on lines +1 to +10
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Add the required draft and lastUpdated frontmatter.

src/routes/blog/content.ts treats both fields as required and reads them for every post. Leaving them out here will produce incomplete post metadata (draft: undefined, lastUpdated: Invalid Date) in the generated blog index.

🛠️ Minimal fix
 ---
 layout: post
+draft: false
 title: "Announcing CNAME flattening support: Connect your domain without changing nameservers"
 description: Appwrite Sites now supports CNAME flattening, so you can connect custom domains by adding a DNS record with your existing provider instead of migrating nameservers.
 date: 2026-03-06
+lastUpdated: 2026-03-06
 cover: /images/blog/announcing-cname-flattening/cover.png
 timeToRead: 4
 author: matej-baco
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
---
layout: post
title: "Announcing CNAME flattening support: Connect your domain without changing nameservers"
description: Appwrite Sites now supports CNAME flattening, so you can connect custom domains by adding a DNS record with your existing provider instead of migrating nameservers.
date: 2026-03-06
cover: /images/blog/announcing-cname-flattening/cover.png
timeToRead: 4
author: matej-baco
category: announcement
featured: false
---
layout: post
draft: false
title: "Announcing CNAME flattening support: Connect your domain without changing nameservers"
description: Appwrite Sites now supports CNAME flattening, so you can connect custom domains by adding a DNS record with your existing provider instead of migrating nameservers.
date: 2026-03-06
lastUpdated: 2026-03-06
cover: /images/blog/announcing-cname-flattening/cover.png
timeToRead: 4
author: matej-baco
category: announcement
featured: false
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/routes/blog/post/announcing-cname-flattening/`+page.markdoc around lines
1 - 10, This post is missing required frontmatter keys "draft" and "lastUpdated"
which src/routes/blog/content.ts expects; open the +page.markdoc for this post
and add a draft field (e.g., draft: false) and a lastUpdated field with an ISO
date string (e.g., lastUpdated: 2026-03-06 or the same value as date) in the
YAML frontmatter so the blog index metadata is populated correctly.

---

If you've connected a custom domain to Appwrite Sites, you know the process required changing your nameservers to Appwrite. For developers already managing DNS through Cloudflare or similar providers, that meant giving up control over caching, security, email routing, and other configurations just to connect a single site.

Appwrite Sites now supports **CNAME flattening**, so you can connect your domain by adding a DNS record with your existing provider instead of migrating nameservers.

# Add a record, not a migration

With CNAME flattening support, connecting a custom domain is just a DNS record away. Keep your existing provider, add a CNAME or ALIAS/ANAME record pointing to Appwrite, verify the domain in the Console, and your site is live with SSL automatically configured.

This is especially useful for teams that rely on their DNS provider for more than just domain resolution. If Cloudflare handles your caching, security headers, or MX records, you no longer have to choose between that setup and Appwrite Sites.

# How CNAME flattening works

Standard DNS rules don't allow CNAME records at the root domain (`example.com`). Only subdomains (`www.example.com`) can use CNAME. CNAME flattening works around this: your DNS provider accepts a CNAME-like configuration at the root, resolves the target internally, and returns the corresponding IP addresses to the client.

Depending on your provider, this goes by different names. Cloudflare calls it **CNAME flattening**, Route 53 uses **ALIAS records**, and some providers support **ANAME records**. The implementation varies, but the result is the same: your root domain can point to a hostname without breaking DNS standards.

# Connect your domain

1. Open your site settings in the Appwrite Console.
2. Add your custom domain.
3. Appwrite provides a DNS target.
4. Go to your DNS provider and create the required record. Use a CNAME for subdomains, or an ALIAS/ANAME record for the root domain.
Copy link
Member

@adityaoberai adityaoberai Mar 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In Cloudflare, this is achieved through a CNAME record for the root domain too

Besides, CNAME flattening is only relevant to root domains, so we don't need to talk about subdomains here tbh

5. Return to Appwrite and verify the domain.

# Available now

CNAME flattening support is available today on **Appwrite Cloud**. Head to your site settings, add a custom domain, and follow the updated DNS instructions.

As always, we'd love to hear your feedback. If you run into any issues, join the [Appwrite community](https://appwrite.io/discord) and let us know.

# More resources

- [Read the custom domains documentation](/docs/products/sites/domains)
- [Learn about Appwrite DNS](/docs/products/network/dns)
- [Set up a custom domain for your Appwrite project](/docs/advanced/platform/custom-domains)
14 changes: 14 additions & 0 deletions src/routes/changelog/(entries)/2026-03-05.markdoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
layout: changelog
title: "CNAME flattening support for Appwrite Sites"
date: 2026-03-05
cover: /images/blog/announcing-cname-flattening/cover.png
---

You can now connect a custom domain to Appwrite Sites without changing your nameservers. Appwrite Sites now supports CNAME flattening and similar apex-domain features provided by modern DNS providers.

Instead of migrating nameservers to Appwrite, you can add a DNS record with your existing provider, verify the domain in the Console, and go live. This works with CNAME flattening (Cloudflare), ALIAS records (Route 53), and ANAME records, depending on your provider.

{% arrow_link href="/blog/post/announcing-cname-flattening" %}
Read the announcement
{% /arrow_link %}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.