Skip to content

SEO Blogs (CRUD, Database sharading, server-side rendering)#3087

Open
aishwaripahwa12 wants to merge 12 commits into
mainfrom
crud-database-sharading-server-side-rendering
Open

SEO Blogs (CRUD, Database sharading, server-side rendering)#3087
aishwaripahwa12 wants to merge 12 commits into
mainfrom
crud-database-sharading-server-side-rendering

Conversation

@aishwaripahwa12

Copy link
Copy Markdown
Contributor

Latest SEO blogs

@appwrite

appwrite Bot commented Jul 7, 2026

Copy link
Copy Markdown

Appwrite Website

Project ID: 69d7efb00023389e8d27

Sites (1)
Site Status Logs Preview QR
 website
69d7f2670014e24571ca
Building Building View Logs Preview URL QR Code

Website (appwrite/website)

Project ID: 684969cb000a2f6c0a02

Sites (1)
Site Status Logs Preview QR
 website
68496a17000f03d62013
Queued Queued View Logs Preview URL QR Code


Tip

Messaging handles push notifications, emails, and SMS through one unified API

@greptile-apps

greptile-apps Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR adds three new SEO-focused blog posts (CRUD basics, database sharding, and server-side rendering) along with their cover images and corresponding .optimize-cache.json entries. All posts are marked unlisted: true, indicating they are staged for review before going live.

  • The CRUD post's code example demonstrates the TablesDB API (tablesDB.createRow/listRows/updateRow/deleteRow) but the Resources section links to the standard Documents API docs (/docs/products/databases/documents), which uses a different API shape (databases.createDocument, collectionId, documentId). The resource links need to be updated to match the API shown in the code.
  • The database sharding and SSR posts are well-structured with no content issues; the previously-reported duplicate Conclusion in the sharding post is not present in this version.
  • Cover image cache entries follow the existing repo convention where .png is recorded in the cache for .avif files on disk.

Confidence Score: 4/5

Safe to merge after fixing the mismatched resource link in the CRUD post; the sharding and SSR posts are clean.

The CRUD blog post's code example uses the TablesDB API but the Resources section links readers to the Documents API docs, which covers a different API with different method names and parameters. This will send readers to the wrong documentation and should be corrected before the post goes live.

src/routes/blog/post/what-is-crud-explained/+page.markdoc — the Resources section needs to point to TablesDB-specific documentation to match the code example.

Important Files Changed

Filename Overview
src/routes/blog/post/what-is-crud-explained/+page.markdoc New CRUD explainer blog post; code example uses the TablesDB API (tablesDB.createRow/listRows/updateRow/deleteRow) but the Resources section links to the standard Documents API (/docs/products/databases/documents), creating a terminology mismatch for readers.
src/routes/blog/post/what-is-database-sharding-a-beginners-guide/+page.markdoc New database sharding explainer blog post; content is well-structured and the previously-reported duplicate Conclusion section is not present in this version.
src/routes/blog/post/what-is-server-side-rendering-a-beginners-guide/+page.markdoc New SSR explainer blog post; content is clear and well-structured with no issues found.
.optimize-cache.json Adds three new cache entries for the blog cover images; extension mismatches (.png in cache vs .avif on disk) are intentional per repo convention, and all three new images have corresponding entries.

Reviews (12): Last reviewed commit: "Update +page.markdoc" | Re-trigger Greptile

Comment thread src/routes/blog/post/what-is-database-sharding-a-beginners-guide/+page.markdoc Outdated
Comment on lines +97 to +108
# Conclusion

Database sharding splits a large database into smaller shards spread across multiple servers, letting it scale horizontally to handle more data and traffic than any single machine could. The heart of a sharded system is the shard key, which determines how evenly data and load are distributed, and the strategy you choose, such as hash-based or range-based, shapes how your queries perform. Sharding is distinct from partitioning, which can happen on one server, and from replication, which copies data for availability rather than splitting it for scale.

The practical takeaway is that sharding is a powerful but complex tool best reserved for real scaling problems. Exhaust indexing, caching, and replication first, and lean on managed infrastructure so you're not carrying the operational weight of many databases by hand.

# Conclusion

Database sharding splits a large database into smaller shards spread across multiple servers, letting it scale horizontally to handle more data and traffic than any single machine could. The heart of a sharded system is the shard key, which determines how evenly data and load are distributed, and the strategy you choose, such as hash-based or range-based, shapes how your queries perform. Sharding is distinct from partitioning, which can happen on one server, and from replication, which copies data for availability rather than splitting it for scale.

The practical takeaway is that sharding is a powerful but complex tool best reserved for real scaling problems. Exhaust indexing, caching, and replication first, and lean on managed infrastructure so you're not carrying the operational weight of many databases by hand.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Two conclusion sections?

Comment on lines +101 to +103
Appwrite Cloud gives developers a fully managed backend so you can ship fast without provisioning or maintaining any infrastructure. You get storage, auth, databases, functions, and real-time out of the box, with file storage that scales automatically as your app grows. It provides server-side SDKs and SSR-friendly authentication, so you can fetch data and manage sessions securely on the server in frameworks like Next.js, Nuxt, and SvelteKit. With Databases, Storage, and Functions behind a clean API, the backend for your server-rendered app is ready to go.

Whether you're prototyping your next idea or scaling a production app, Appwrite gives you auth, databases, storage, functions, and real-time in one place, all open-source. [Sign up for Appwrite Cloud](https://cloud.appwrite.io/) or spin up a self-hosted instance in minutes, and give your next build a real backend to grow on.

@adityaoberai adityaoberai Jul 7, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We should have more info on how Sites actually supports this, this is too generic

Comment on lines +96 to +98
Appwrite Cloud gives developers a fully managed backend so you can ship fast without provisioning or maintaining any infrastructure. You get storage, auth, databases, functions, and real-time out of the box, with file storage that scales automatically as your app grows. Its Databases product gives you full CRUD out of the box through a clean API and SDKs for every major platform, so you can create, read, update, and delete records without writing and maintaining your own endpoints. Built-in permissions and queries mean the hard parts are handled for you.

Whether you're prototyping your next idea or scaling a production app, Appwrite gives you auth, databases, storage, functions, and real-time in one place, all open-source. [Sign up for Appwrite Cloud](https://cloud.appwrite.io/) or spin up a self-hosted instance in minutes, and give your next build a real backend to grow on.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We should have simple code examples here

Comment thread src/routes/blog/post/what-is-crud-explained/+page.markdoc Outdated

Appwrite Cloud gives developers a fully managed backend so you can ship fast without provisioning or maintaining any infrastructure. You get storage, auth, databases, functions, and real-time out of the box, with file storage that scales automatically as your app grows. It provides server-side SDKs and SSR-friendly authentication, so you can fetch data and manage sessions securely on the server in frameworks like Next.js, Nuxt, and SvelteKit. With Databases, Storage, and Functions behind a clean API, the backend for your server-rendered app is ready to go.

Whether you're prototyping your next idea or scaling a production app, Appwrite gives you auth, databases, storage, functions, and real-time in one place, all open-source. [Sign up for Appwrite Cloud](https://cloud.appwrite.io/) or spin up a self-hosted instance in minutes, and give your next build a real backend to grow on.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Sites?

Comment thread src/routes/blog/post/what-is-crud-explained/+page.markdoc Outdated
Co-authored-by: Aditya Oberai <adityaoberai1@gmail.com>
Comment thread src/routes/blog/post/what-is-crud-explained/+page.markdoc
Comment thread src/routes/blog/post/what-is-database-sharding-a-beginners-guide/+page.markdoc Outdated
Comment on lines +57 to +61
# What is hydration in server-side rendering?

Hydration is the step that makes server-rendered HTML interactive. When SSR sends a fully rendered page, that HTML is static at first, so buttons and other interactive elements don't work yet.

Once the browser loads the JavaScript, the framework ["hydrates"](https://react.dev/reference/react-dom/client/hydrateRoot) the page by attaching event listeners and application state to the existing HTML, turning the static page into a live, interactive app. Hydration is powerful but has a cost: shipping and running that JavaScript takes time, and heavy hydration can delay when a page becomes usable. Reducing this cost is a major focus of modern frameworks.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Why is this a separate section and not a part of other existing sections? Does it need to stand out separately?

Comment on lines +93 to +107
# Conclusion

Server-side rendering generates a page's HTML on the server for each request and sends it ready to display, so users see content faster and search engines can index it reliably. It differs from client-side rendering, which builds the page in the browser, and from static site generation, which builds pages once at build time. The tradeoff for SSR's speed and SEO benefits is more server work and added complexity, with hydration bridging the gap between static HTML and a fully interactive app.

The practical takeaway is to use SSR where first-load speed and search visibility genuinely matter, lean on a framework to handle it, and pair it with a backend that works cleanly on the server so data fetching stays fast and secure.

# Start building SSR apps with Appwrite

As the conclusion above puts it, SSR comes down to two things: a framework to do the rendering, and a backend that works cleanly on the server. Appwrite gives you a home for both.

[Appwrite Sites](/docs/products/sites) is where your server-rendered app runs. You deploy a framework like Next.js, Nuxt, or SvelteKit directly to Sites, and it executes the framework's server runtime for you, handling the per-request rendering this guide describes without you provisioning or maintaining servers. Because Sites lives in the same platform as the rest of your backend, your app renders right next to its data instead of reaching across the internet on every request.

That proximity is what makes the data-fetching step fast and secure. Appwrite's [server SDKs](/docs/sdks) and [SSR-friendly authentication](/docs/products/auth/server-side-rendering) let you load data and manage sessions on the server, so the first render already contains real content and no session secrets ever reach the browser. Databases, Storage, and Functions sit behind the same clean API, so everything your server render needs is one call away.

The result is the full SSR stack in one place: Sites runs the rendering, and Auth, Databases, Storage, and Functions feed it, all open-source and managed for you. [Sign up for Appwrite Cloud](https://cloud.appwrite.io/) or spin up a self-hosted instance in minutes, and give your next server-rendered build a real backend to grow on.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Why is the Conclusion not the final section?

Comment on lines +97 to +109
# Conclusion

Database sharding splits a large database into smaller shards spread across multiple servers, letting it scale horizontally to handle more data and traffic than any single machine could. The heart of a sharded system is the shard key, which determines how evenly data and load are distributed, and the strategy you choose, such as hash-based or range-based, shapes how your queries perform. Sharding is distinct from partitioning, which can happen on one server, and from replication, which copies data for availability rather than splitting it for scale.

The practical takeaway is that sharding is a powerful but complex tool best reserved for real scaling problems. Exhaust indexing, caching, and replication first, and lean on managed infrastructure so you're not carrying the operational weight of many databases by hand.

# Start building scalable apps with Appwrite

The recurring theme in this guide is that sharding is a last resort, and that for most apps the day you need it never comes. The catch is that scaling problems tend to arrive right when you have the least time to re-architect your data layer, so the real win is not having to make that call yourself.

That's the gap a managed backend fills. Appwrite's [Databases](/docs/products/databases) product gives you a scalable data layer behind a clean API, so the infrastructure decisions this article describes, when to partition, when to replicate, when to shard, stay the platform's problem instead of yours. You get indexing and [queries](/docs/products/databases/queries) to handle performance early, the simpler fixes you should reach for first, without provisioning or operating any of it yourself.

So you follow the advice above by default: build on a managed backend, use the cheap optimizations while they carry you, and defer the genuine complexity of sharding until you have a concrete problem that demands it. Appwrite also bundles auth, storage, functions, real-time, and Sites in the same place, all open-source. [Sign up for Appwrite Cloud](https://cloud.appwrite.io/) or spin up a self-hosted instance in minutes, and give your next build a real backend to grow on.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Conclusion before the final section?

Comment on lines +88 to +96
# Conclusion

CRUD stands for Create, Read, Update, and Delete, the four operations at the heart of nearly every application that stores data. The pattern is powerful because it's consistent: the same four ideas map cleanly onto HTTP methods in an API and onto statements in a database, which makes systems predictable and easier to build. CRUD is separate from REST, which is one common way to expose those operations over the web.

The practical takeaway is that once you can spot CRUD, most software becomes easier to understand and build, and you rarely need to write those four operations by hand when a good backend already provides them.

# Start building CRUD apps with Appwrite

Because CRUD is such a universal pattern, [Appwrite](https://appwrite.io/) gives you all four operations out of the box. Instead of standing up a database, writing a separate endpoint for each operation, and wiring permissions by hand, you define your data once and call ready-made methods from the SDK.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Conclusion before the final section?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants