From 8db19587cf00b18095116483cfc6ebe5e6270111 Mon Sep 17 00:00:00 2001 From: Aishwari Pahwa Date: Tue, 21 Jul 2026 13:46:26 +0530 Subject: [PATCH 1/4] latest seo blogs --- .optimize-cache.json | 3 + .../+page.markdoc | 176 ++++++++++++++++++ .../+page.markdoc | 138 ++++++++++++++ .../+page.markdoc | 153 +++++++++++++++ .../cover.avif | Bin 0 -> 26120 bytes .../cover.avif | Bin 0 -> 20263 bytes .../cover.avif | Bin 0 -> 22493 bytes 7 files changed, 470 insertions(+) create mode 100644 src/routes/blog/post/nextjs-vs-react-explained-which-should-developers-use/+page.markdoc create mode 100644 src/routes/blog/post/what-is-cors-cross-origin-resource-sharing-explained/+page.markdoc create mode 100644 src/routes/blog/post/what-is-database-caching-a-beginners-guide/+page.markdoc create mode 100644 static/images/blog/nextjs-vs-react-explained-which-should-developers-use/cover.avif create mode 100644 static/images/blog/what-is-cors-cross-origin-resource-sharing-explained/cover.avif create mode 100644 static/images/blog/what-is-database-caching-a-beginners-guide/cover.avif diff --git a/.optimize-cache.json b/.optimize-cache.json index 828a3aaef7..67bb73b9d8 100644 --- a/.optimize-cache.json +++ b/.optimize-cache.json @@ -906,6 +906,7 @@ "static/images/blog/nextjs-starter-sites/deployed.png": "f3b309dd4747796f1a8272635096a29e01314fbced8f26222afa60185b3af16d", "static/images/blog/nextjs-starter-sites/deployment-logs.png": "2873669c7ab6b816bf574d190a8a51b0c1edfd35b28423022fbf64055d97cac2", "static/images/blog/nextjs-starter-sites/template.png": "0138c956f06c8275b87d103c1b5bdf54b6cf31d42285c43f5caec5b5d497421c", + "static/images/blog/nextjs-vs-react-explained-which-should-developers-use/cover.png": "43967b74e33e432d0bf74d18ae55e9f9d1157a108db78e5ec9badd951b041fe5", "static/images/blog/nodejs-v25-whats-new/cover.png": "49e3fa3a669bdd6d5d1aa1eea54693ea75c9c98aa8a1e3035e1c19c97598f007", "static/images/blog/nuxt-starter-sites/add-platform.png": "3b13ba983ea1d2529a1f34a719acef903ec0b58879ed511012280a28ccbde17e", "static/images/blog/nuxt-starter-sites/congrats.png": "5dfa4f03b67e0110936126f36329a17aa37bdfc4f148d61deb9aacf5d10d0981", @@ -1272,6 +1273,8 @@ "static/images/blog/what-is-ciam/cover.png": "45a5261ae1bb8a38777f60a21ea60426c0832e3d58bf3164100548400d388ce1", "static/images/blog/what-is-cicd-a-complete-guide-for-developers/cover.png": "7abddce55b1467188faab83abd58189173bf9aba84de3d9f28fff0be8c6e9276", "static/images/blog/what-is-cloud-storage-an-expert-guide-for-developers/cover.png": "b7f545dbe9334d60f214e748ddfcea47484530a97f30ecf579d064a053c2821d", + "static/images/blog/what-is-cors-cross-origin-resource-sharing-explained/cover.png": "273b18d33a81fe119a2d8f51869375de14005546052d80cb1a237a2348ffa328", + "static/images/blog/what-is-database-caching-a-beginners-guide/cover.png": "d4c8a0be9a1b0167e295648260779e4a26ad3a1957653f4cb16268f724c25664", "static/images/blog/what-is-docker-a-simple-guide-for-developers/cover.png": "acd9c50ad749fcf676dd58b38cc6bbffba913bf5d817c6b725bd2c305088689e", "static/images/blog/what-is-kubernetes-an-expert-guide-for-developers/cover.png": "a7601f375841b143d62511fe3bbfb4bacb6989ddc56613f772b7dcd3d5e90688", "static/images/blog/what-is-mcp/claude-mcp-chat.png": "26842cfebca3ec2cec89448e1c0d7ddb3f5421cc57acdb8780d48d30a54cad82", diff --git a/src/routes/blog/post/nextjs-vs-react-explained-which-should-developers-use/+page.markdoc b/src/routes/blog/post/nextjs-vs-react-explained-which-should-developers-use/+page.markdoc new file mode 100644 index 0000000000..98a691f0f0 --- /dev/null +++ b/src/routes/blog/post/nextjs-vs-react-explained-which-should-developers-use/+page.markdoc @@ -0,0 +1,176 @@ +--- +layout: post +title: "Next.js vs. React explained: Which should developers use?" +description: Compare React and Next.js to understand their key differences, what Next.js adds, and which option best fits your app’s SEO, performance, and project needs. +date: 2026-07-21 +cover: /images/blog/nextjs-vs-react-explained-which-should-developers-use/cover.avif +timeToRead: 5 +author: aditya-oberai +category: comparisons +featured: false +unlisted: true +faqs: + - question: Is Next.js better than React? + answer: Next.js is better for projects that need SEO, server-side rendering, file-based routing, and production features out of the box. React is better when you want maximum flexibility or are building a client-side application that does not need server rendering. + - question: What is the main difference between React and Next.js? + answer: React is a JavaScript library for building user interfaces. Next.js is a full-stack framework built on React that adds routing, server rendering, backend functions, and build optimizations. + - question: Is Next.js built on React? + answer: Yes. Next.js uses React for building components and adds the infrastructure needed to route, render, optimize, and deploy complete web applications. + - question: Can I use Next.js without React? + answer: No. Next.js is built on React, so every Next.js application uses React underneath. + - question: Is Next.js faster than React? + answer: Next.js can provide faster initial page loads through server rendering, static generation, and React Server Components. A lightweight React application may perform equally well for highly interactive applications where most content loads after sign-in. +--- +Ask a room of developers whether they use Next.js or React, and half of them will say "both" without realizing the question has a real answer. The confusion is understandable: Next.js is built on top of React, so the line between them blurs the moment you start a project. But they solve different problems, and picking the wrong one adds complexity you'll pay for later. + +This is the core of the Next.js vs. React debate. **React** is a library for building user interfaces. **Next.js** is a framework that wraps React with routing, rendering, and infrastructure decisions already made for you. Knowing which layer you actually need saves you from either reinventing a framework or fighting one you didn't want. + +This article breaks down what each does, what Next.js adds on top of React, and how to decide which fits your project. + +# What is React? + +React is an open-source JavaScript library for building user interfaces, maintained by Meta. It gives you a component model, a virtual DOM for efficient updates, and hooks like `useState` and `useEffect` for managing state and side effects. That's the scope: React renders components and keeps the UI in sync with your data. + +What React deliberately does **not** include is just as important: + +- No routing. You add a library like React Router yourself. +- No built-in data fetching conventions or server rendering out of the box. +- No opinion on your build tooling, folder structure, or deployment. + +React is unopinionated by design. You assemble the rest of the stack from separate packages. That flexibility is powerful when you know what you're building, and a burden when you'd rather not make a dozen infrastructure decisions before writing a feature. + +```jsx +import { useState } from "react"; + +export default function Counter() { + const [count, setCount] = useState(0); + return ; +} +``` + +# What is Next.js? + +Next.js is a React framework built by Vercel that adds structure and infrastructure on top of the React library. It ships with a router, multiple rendering strategies, a build system, and production optimizations, so you start from a working full-stack setup instead of an empty canvas. + +When you use Next.js, you're still writing React components. The difference is that Next.js decides how those components are routed, rendered, and served. It fills in the gaps React leaves open, which is why so many teams reach for it by default. + +Next.js has two routing systems: the older **Pages Router** and the newer **App Router**, which is built around [React Server Components](/blog/post/client-vs-server-components-react) and is the recommended default in current versions. Recent releases have leaned further into server-first rendering, streaming, and partial pre-rendering. If you want a deeper look at the latest changes, see [everything new in Next.js 16](/blog/post/everything-new-in-nextjs16). + +# Next.js vs. React: what's the core difference? + +**React is a library; Next.js is a framework built on React.** A library gives you a tool to solve one problem (rendering UI). A framework gives you a structure and makes the surrounding decisions for you (routing, rendering, bundling, and deployment conventions). + +Put simply: you can use React without Next.js, but you can't use Next.js without React. + +Here's how the two compare across the decisions that matter most: + +| | React | Next.js | +| --- | --- | --- | +| Type | UI library | Full-stack framework built on React | +| Routing | Not included (add React Router) | File-based routing included | +| Rendering | Client-side by default | SSR, SSG, ISR, and RSC out of the box | +| SEO | Requires extra setup for server rendering | Strong defaults for crawlable HTML | +| Data fetching | Bring your own pattern | Server components and built-in conventions | +| Backend/API | Separate service required | API routes and server functions included | +| Build tooling | You configure it (Vite, etc.) | Preconfigured and optimized | +| Flexibility | High, you assemble the stack | Opinionated, decisions made for you | + +The trade-off is straightforward. React gives you maximum control and minimum assumptions. Next.js gives you speed and sensible defaults at the cost of some flexibility. + +# What Next.js adds on top of React + +Since Next.js is React underneath, the useful comparison is not "which renders UI better." It's "what does Next.js hand you that you'd otherwise build yourself." The main additions: + +- **File-based routing:** Create a file in the right directory and it becomes a route. No route configuration to maintain by hand. +- **Multiple rendering modes:** Server-side rendering (SSR), static site generation (SSG), incremental static regeneration (ISR), and client-side rendering, chosen per route. Plain React is client-side rendered unless you build the server layer yourself. +- **React Server Components:** Render components on the server and ship less JavaScript to the browser. See our breakdown of [client vs. server components in React](/blog/post/client-vs-server-components-react). +- **API routes and server functions:** Write backend endpoints inside the same project, so light server logic doesn't require a separate service. +- **Built-in optimizations:** Automatic code splitting, image optimization, and font optimization that you'd otherwise wire up manually. +- **Preconfigured build tooling:** Bundling, transpilation, and production builds work out of the box. + +If you find yourself installing React Router, setting up a custom SSR pipeline, and hand-tuning your bundler on top of a React project, you're rebuilding a large part of what Next.js already provides. + +# Next.js vs. React for SEO and performance + +**For SEO, Next.js is the stronger default.** A standard client-side React app sends the browser a near-empty HTML shell and builds the page with JavaScript after load. Search crawlers and social preview bots can struggle with content that only appears after the bundle executes, and the page metadata isn't present in the initial HTML. + +Next.js renders HTML on the server (or at build time), so crawlers receive fully formed content and metadata on the first request. That directly benefits indexing, link previews, and pages where organic search matters. This is the same SSR vs. CSR trade-off covered in [SSR vs. CSR with Next.js](/blog/post/csr-vs-ssr-with-nextjs). + +On raw performance, the picture is more nuanced: + +- **Initial load:** Next.js typically wins because the browser can paint server-rendered HTML immediately instead of waiting for JavaScript to fetch data and build the DOM. +- **Bundle size:** Server components in Next.js ship less JavaScript to the client, which speeds up interaction readiness on content-heavy pages. +- **Highly interactive apps:** For a dashboard behind a login where SEO is irrelevant, a lean client-side React app can perform just as well without the framework overhead. + +Performance is not automatically better with either choice. It depends on whether your app is content-first (favoring Next.js) or interaction-first (where plain React is fine). + +# When should you use React on its own? + +Reach for React without a framework when: + +- You're building a **single-page application** behind authentication, like an internal dashboard or admin panel, where SEO doesn't matter. +- You want **full control** over your stack and are comfortable choosing your own router, data layer, and build setup. +- You're adding interactivity to **part of an existing page** rather than building a full site. +- You're targeting a **non-web platform**, where React Native, not Next.js, is the relevant tool. + +A modern React app with Vite starts fast and stays lightweight. If you don't need server rendering or file-based routing, adding a framework is complexity you won't use. + +# When should you use Next.js? + +Choose Next.js when: + +- **SEO matters:** marketing sites, blogs, e-commerce, documentation, or any page you want indexed and shared with rich previews. +- You want **routing, rendering, and tooling decided for you** so you can start shipping features immediately. +- Your app benefits from a **mix of static and dynamic pages**, using SSG for content and SSR for personalized routes. +- You want to keep **light backend logic** (form handling, webhooks, simple APIs) in the same project via API routes. + +For most new web projects that face the public internet, Next.js is the pragmatic default. You get production-ready patterns without assembling them yourself. + +# Next.js vs. React: which should developers use? + +There's no universally correct answer in the Next.js vs. React decision, but there is a correct answer for your project. Use this as the short version: + +- **Public-facing site where SEO and first-load speed matter?** Use Next.js. +- **Interactive app behind a login where SEO is irrelevant?** React on its own is enough. +- **Want decisions made for you so you can ship fast?** Next.js. +- **Want full control over every layer of your stack?** React with the libraries you choose. + +Remember that this is not React *or* Next.js as competing technologies. Next.js is React with the surrounding infrastructure filled in. The real question is how much of that infrastructure you want to own yourself versus have handled for you. + +# Adding a backend to your Next.js or React app + +Whichever you pick, the frontend is only half the story. Both React and Next.js still need somewhere to authenticate users, store data, handle files, and run server-side logic. Next.js API routes cover light backend needs, but a growing app usually wants a real backend rather than stretching route handlers into one. + +This is where [Appwrite](/docs) fits. It gives your React or Next.js frontend a complete backend: [Authentication](/docs/products/auth) with OAuth, MFA, and phone login; [Databases](/docs/products/databases) with real-time subscriptions; file [Storage](/docs/products/storage) with per-user permissions; and serverless [Functions](/docs/products/functions). Because Appwrite is client-agnostic, the same setup works whether your frontend is a plain React SPA or a server-rendered Next.js app. + +```js +import { Client, Account } from "appwrite"; + +const client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") + .setProject(""); + +const account = new Account(client); +const user = await account.get(); +``` + +For SSR in Next.js, Appwrite supports server-side session handling with the Node.js SDK, so authenticated requests work correctly on the server. The [SSR vs. CSR with Next.js](/blog/post/csr-vs-ssr-with-nextjs) guide walks through both patterns in detail. + +# Deploy your Next.js or React app with Appwrite + +The Next.js vs. React choice comes down to how much infrastructure you want to own. Use React when you need control and don't need server rendering. Use Next.js when SEO, first-load performance, and sensible defaults matter more than raw flexibility. Either way, you'll need a backend and a place to host it. + +[Appwrite Sites](/docs/products/sites) hosts both React and Next.js apps with Git-based deployments, global edge distribution, and full support for SSR and React Server Components. Pair it with Appwrite's backend services and your frontend and backend live in one platform. [Sign up for Appwrite Cloud](https://cloud.appwrite.io) for free, or self-host using the [installation guide](/docs/advanced/self-hosting). + +Resources: + +- [Deploy a Next.js app to Appwrite Sites](/blog/post/deploy-nextjs-app-to-appwrite-sites) +- [Client vs. server components in React](/blog/post/client-vs-server-components-react) +- [SSR vs. CSR with Next.js](/blog/post/csr-vs-ssr-with-nextjs) +- [Everything new in Next.js 16](/blog/post/everything-new-in-nextjs16) +- [Appwrite Sites documentation](/docs/products/sites) +- [React documentation](https://react.dev) +- [Next.js documentation](https://nextjs.org/docs) +- [Join the Appwrite Discord](https://appwrite.io/discord) + + \ No newline at end of file diff --git a/src/routes/blog/post/what-is-cors-cross-origin-resource-sharing-explained/+page.markdoc b/src/routes/blog/post/what-is-cors-cross-origin-resource-sharing-explained/+page.markdoc new file mode 100644 index 0000000000..20b894b0fc --- /dev/null +++ b/src/routes/blog/post/what-is-cors-cross-origin-resource-sharing-explained/+page.markdoc @@ -0,0 +1,138 @@ +--- +layout: post +title: What is CORS? Cross-origin resource sharing explained +description: Learn what CORS is, why it exists, how it works, what preflight requests are, why CORS errors happen, and how to fix them on the server, in this dev guide. +date: 2026-07-21 +cover: /images/blog/what-is-cors-cross-origin-resource-sharing-explained/cover.avif +timeToRead: 5 +author: aditya-oberai +category: security +featured: false +unlisted: true +faqs: + - question: What is CORS in simple terms? + answer: CORS is a browser security mechanism that uses HTTP headers to control whether a web page on one origin can read a response from another origin. + - question: What does CORS stand for? + answer: CORS stands for Cross-Origin Resource Sharing. + - question: What causes a CORS error? + answer: A CORS error occurs when the server does not return the headers the browser expects for a cross-origin request. Common causes include a missing allowed origin, a failed preflight request, or an origin mismatch. + - question: What is the same-origin policy? + answer: The same-origin policy is a browser security rule that prevents scripts on one origin from reading responses from another origin unless the server explicitly allows it through CORS. +--- +# What is CORS? Cross-origin resource sharing explained + +You wire up a frontend, call your API, and the browser throws a wall of red: `Access to fetch at 'https://api.example.com' from origin 'https://app.example.com' has been blocked by CORS policy`. The request worked fine in Postman and in `curl`, so it looks like the browser is getting in your way for no reason. + +It isn't. **CORS (Cross-Origin Resource Sharing)** is a browser security mechanism that decides whether JavaScript on one origin is allowed to read a response from another origin. The confusing part is that CORS is enforced by the browser, not your server, and the error you see rarely tells you what actually went wrong. This guide explains what CORS is, why it exists, how it works under the hood, what preflight requests are, and how to fix CORS errors properly instead of papering over them with a wildcard. + +## What is CORS in simple terms? + +**CORS is a set of HTTP headers that lets a server tell the browser which other origins are allowed to read its responses.** Without those headers, the browser blocks cross-origin JavaScript from reading the result, even if the request itself reached the server and returned data. + +An **origin** is the combination of scheme, host, and port. These three URLs are all different origins: + +* [`https://app.example.com`](https://app.example.com) and [`http://app.example.com`](http://app.example.com) (different scheme) +* [`https://app.example.com`](https://app.example.com) and [`https://api.example.com`](https://api.example.com) (different host) +* [`https://app.example.com`](https://app.example.com) and [`https://app.example.com:8080`](https://app.example.com:8080) (different port) + +If any of the three differ between the page making the request and the resource being requested, the request is **cross-origin**, and CORS rules apply. + +## Why does CORS exist? + +To understand CORS, you first have to understand the rule it relaxes: the **same-origin policy**. By default, browsers stop a script loaded from one origin from reading responses from a different origin. This is one of the oldest and most important protections on the web. + +The reason is cookies. Browsers automatically attach your cookies to requests sent to a domain, including cross-origin requests. Imagine you are logged into your bank at `bank.com` and then open a malicious page at `evil.com`. Without the same-origin policy, JavaScript on `evil.com` could quietly call `bank.com/account` in the background, ride along on your session cookie, and read your balance and transaction history. That class of attack is the whole reason the boundary exists. + +The same-origin policy is deliberately strict, but plenty of legitimate apps need to talk across origins. A React app on `app.example.com` calling an API on `api.example.com` is completely normal. **CORS is the controlled exception**: it gives the server a way to say "these specific origins are allowed to read my responses," so browsers can permit safe cross-origin access without dropping the protection for everyone else. + +## How CORS works + +CORS is a conversation between the browser and the server carried out through HTTP headers. The browser adds an `Origin` header to cross-origin requests, and the server answers with `Access-Control-*` headers describing what it permits. If the response headers don't cover the request, the browser refuses to hand the response to your JavaScript. + +There are two paths this conversation can take: simple requests and preflighted requests. + +### Simple requests + +**A simple request is one the browser considers safe enough to send directly, without asking permission first.** A request qualifies as simple when it meets all of these conditions: + +* The method is `GET`, `HEAD`, or `POST`. +* The only headers set are ones on the CORS safelist, such as `Accept`, `Accept-Language`, and `Content-Type`. +* If `Content-Type` is set, it is `text/plain`, `multipart/form-data`, or `application/x-www-form-urlencoded`. + +For a simple request, the browser sends it straight to the server with an `Origin` header. The server responds with the data plus an `Access-Control-Allow-Origin` header. If that header matches the requesting origin (or is the wildcard `*`), the browser exposes the response to your code. If it's missing or doesn't match, the browser blocks it and logs a CORS error. + +### Preflight requests + +The moment a request steps outside the "simple" rules, for example by sending `Content-Type: application/json`, a custom header like `Authorization`, or a method like `PUT`, `PATCH`, or `DELETE`, the browser does something extra first. **This is the preflight request: an automatic `OPTIONS` request the browser sends before the real one to check whether the actual request is allowed.** + +The preflight `OPTIONS` request includes headers describing what the real request intends to do: + +* `Access-Control-Request-Method` names the HTTP method the real request will use. +* `Access-Control-Request-Headers` lists the custom headers it will send. + +The server responds with the matching permissions: + +* `Access-Control-Allow-Origin` for the allowed origin. +* `Access-Control-Allow-Methods` for the allowed methods. +* `Access-Control-Allow-Headers` for the allowed request headers. +* `Access-Control-Max-Age` for how long the browser can cache this preflight result, so it doesn't repeat the check on every call. + +Only if the preflight response approves the method, headers, and origin does the browser send the real request. You don't write the preflight yourself; the browser generates it. But your server does have to answer it, which is a common source of errors when an `OPTIONS` handler is missing. + +### Requests with credentials + +If your request needs to send cookies or HTTP authentication across origins, there are two extra rules. The client must opt in (for example, `fetch(url, { credentials: 'include' })`), and the server must respond with `Access-Control-Allow-Credentials: true`. + +There's an important catch here: **when credentials are involved, the wildcard `Access-Control-Allow-Origin: *` is not allowed.** The server has to echo back the exact requesting origin instead. This trips up a lot of developers who get things working with a wildcard and then break authentication the moment they add cookies. + +## Why CORS errors happen + +Here is the detail that causes the most confusion. **A CORS error almost never means CORS itself is broken. It usually means the response was missing the headers the browser expected, and the reason is often a different failure entirely.** + +Because the browser blocks the response before your JavaScript can read it, you can't see the real status code or error body in your code. A misconfigured server, a `500` error, a `404` on the endpoint, or an auth failure can all surface as a generic CORS message even though the underlying problem has nothing to do with origins. + +The most common causes are: + +* **The server doesn't send CORS headers at all.** The API was never configured to allow cross-origin requests, so no `Access-Control-Allow-Origin` header comes back. +* **The allowed origin doesn't match.** A trailing slash, `http` vs `https`, or `www` vs the bare domain is enough to fail the check. +* **No `OPTIONS` handler.** The server returns data on `GET`/`POST` but returns an error or nothing on the preflight `OPTIONS` request, so the real request never fires. +* **Wildcard plus credentials.** The server sends `Access-Control-Allow-Origin: *` while the client sends credentials, which the browser rejects. +* **The real error is upstream.** A bad request ID, wrong endpoint, or server exception returns a `4xx`/`5xx` without CORS headers, and the browser reports it as a CORS problem. + +To see what's really happening, open your browser's **Network tab** and inspect the failed request. The raw status code and response body there will tell you far more than the console's CORS message. If you're debugging this against an Appwrite backend specifically, [Solving CORS errors with Appwrite](/blog/post/cors-error) walks through the exact causes and fixes. + +## How to fix CORS errors on the server + +**CORS is fixed on the server, not the client.** You cannot disable CORS from your frontend code, and you shouldn't try to route around it with browser flags or extensions, because that only hides the problem on your machine while every real user still hits the wall. + +The correct fix is to configure the server to return the right headers: + +* **Set `Access-Control-Allow-Origin` to your frontend's exact origin.** For production, list the specific domains you serve from rather than using `*`. A wildcard means any website on the internet can call your API, which defeats the purpose of the same-origin policy. +* **Handle the `OPTIONS` preflight request.** Return a `200`/`204` with `Access-Control-Allow-Methods` and `Access-Control-Allow-Headers` that cover what your client actually sends. +* **Echo the origin when using credentials.** If you send cookies or `Authorization` headers, respond with the specific origin and `Access-Control-Allow-Credentials: true`. +* **Match the origin exactly.** Scheme, host, and port all have to line up, with no trailing slash. + +If you're setting CORS headers inside serverless functions, the response model can differ from a traditional Express server. [Handle CORS errors in Appwrite Functions](/blog/post/handle-cors-in-serverless-functions) shows how to attach the headers correctly and respond to preflight requests in that environment. + +## CORS is not a substitute for authorization + +One last point worth being direct about: CORS is a browser protection, not an access control layer. It stops other websites' JavaScript from reading your responses in a user's browser. It does nothing to stop a server, a script, or a tool like `curl` from calling your API directly, because those clients don't enforce CORS at all. + +That means CORS is not a replacement for authentication, API keys, or permission checks. You still need real authorization on the server. Treat CORS as one layer in a defense-in-depth setup, alongside proper auth and rate limiting. For more on where that responsibility sits, see [Appwrite's security documentation](/docs/advanced/security). + +## Handling CORS with Appwrite + +If you're building on Appwrite, you don't configure CORS headers by hand. Instead, you register the origins your app runs on as **platforms** in the Appwrite Console. Add a web platform with your hostname (`localhost` in development, your domain in production), and Appwrite allows requests from that origin while rejecting everything else. This is the same allowlist model CORS is built on, exposed as a setting instead of raw headers. + +Because Appwrite handles the CORS layer for its own APIs, most "blocked by CORS policy" messages against an Appwrite backend come down to a missing or mistyped platform, a wrong project ID, or the wrong regional endpoint, rather than headers you need to write yourself. When you call your own [Appwrite Functions](/docs/products/functions) directly from the browser, you set the headers in the function response, which is where the serverless guide above comes in. + +CORS stops being a mystery once you see it for what it is: a server-side allowlist enforced by the browser to keep untrusted origins from reading your responses. Configure the right origins, answer the preflight, keep the wildcard out of production, and back it with real authorization, and the red console errors go away for good. If you want a backend that manages the CORS layer for you and lets you focus on your app, Appwrite is a solid place to start. + +## Getting started with Appwrite + +* [Solving CORS errors with Appwrite](/blog/post/cors-error) +* [Handle CORS errors in Appwrite Functions](/blog/post/handle-cors-in-serverless-functions) +* [Appwrite Functions documentation](/docs/products/functions) +* [Appwrite security documentation](/docs/advanced/security) +* [MDN: Cross-Origin Resource Sharing (CORS)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guide/CORS) +* [Join the Appwrite Discord server](https://appwrite.io/discord) \ No newline at end of file diff --git a/src/routes/blog/post/what-is-database-caching-a-beginners-guide/+page.markdoc b/src/routes/blog/post/what-is-database-caching-a-beginners-guide/+page.markdoc new file mode 100644 index 0000000000..97f793dd95 --- /dev/null +++ b/src/routes/blog/post/what-is-database-caching-a-beginners-guide/+page.markdoc @@ -0,0 +1,153 @@ +--- +layout: post +title: "What is database caching? A beginner's guide" +description: Database caching speeds up your app by serving repeated queries from fast storage. Learn how it works, the main strategies, and when you actually need it. +date: 2026-07-21 +cover: /images/blog/what-is-database-caching-a-beginners-guide/cover.avif +timeToRead: 5 +author: aditya-oberai +category: performance +featured: false +unlisted: true +faqs: + - question: What is a cache hit and a cache miss? + answer: A cache hit happens when the requested data is already stored in the cache. A cache miss happens when the data is not available, so the application queries the database and usually stores the result for future requests. + - question: What is TTL in database caching? + answer: TTL stands for time to live. It defines how long cached data remains available before it expires and must be fetched from the database again. + - question: Is Redis required for database caching? + answer: No. Redis is a popular option, but applications can also use Memcached, local in-process caches, distributed caches, CDNs, or caching features built into a backend platform. + - question: What is the best database caching strategy? + answer: Cache-aside is the most common strategy for most applications. The application checks the cache first, queries the database after a miss, and then stores the result in the cache. +--- +**Database caching is a technique that stores the results of frequent or expensive database queries in fast, temporary storage so your app can serve them instantly instead of hitting the database every time.** Done well, it turns slow, repeated reads into responses that feel instant and takes a large chunk of load off your primary database. + +This guide explains what database caching is, how it works, the main caching strategies, where the cache lives, how invalidation works, and when you actually need it. It's written for developers who want a complete picture, not just a definition. + +# What is database caching? + +Database caching is the practice of keeping copies of frequently accessed data in a fast storage layer that sits between your application and your database. When a request comes in, your app checks the cache first. If the data is there, it's returned immediately. If not, the app queries the database, stores the result in the cache, and returns it. + +The database remains the source of truth. The cache is a faster shortcut to data your app reads over and over. Think of it like the notepad on your desk: your main database is the filing cabinet, reliable but slower to open, while the cache holds the few things you need right now so you can grab them instantly. + +Most caches live in memory rather than on disk, which is why they respond in under a millisecond. That speed is the entire point. Reading from RAM is orders of magnitude faster than reading from disk, and database caching is how you put that speed in front of your data. + +# How does database caching work? + +Database caching works by intercepting reads before they reach the database. Every request either finds its data already stored (a **cache hit**) or doesn't (a **cache miss**). + +Here's the typical flow: + +1. Your app receives a request for some data, such as a product listing. +2. It checks the cache using a **key**, usually derived from the query or resource ID. +3. On a **cache hit**, the cached value is returned immediately, and the database is never touched. +4. On a **cache miss**, the app queries the database, stores the result in the cache under that key, and returns it. +5. The next identical request is now a cache hit, served straight from memory. + +The ratio of hits to total requests is your **hit rate**, and it's the single most important number in caching. A high hit rate means most requests skip the database entirely. A low hit rate means the cache is adding overhead without much payoff, which usually points to the wrong data being cached or keys that rarely repeat. + +# Why database caching matters + +Databases are often the slowest part of a request and the hardest part to scale. A query that joins several tables, sorts a large result set, or runs an aggregation can take tens or hundreds of milliseconds. Multiply that by thousands of concurrent users and the database becomes a bottleneck. + +Database caching attacks this in three ways: + +* **Lower latency.** Cached reads come from memory in under a millisecond, so pages and API responses feel instant. +* **Less database load.** Every cache hit is a query your database never has to run, which frees capacity for writes and uncacheable reads. +* **Lower cost.** Serving reads from a cache is far cheaper than scaling database instances or paying per-query on a managed database. + +The cost of *not* caching shows up as slow pages under traffic, database CPU pinned near its limit, and expensive vertical scaling to buy headroom you could get for free. For read-heavy workloads, caching is usually the highest-leverage performance change you can make. + +# Database caching strategies + +There are several caching strategies, and the right one depends on your read and write patterns. Most systems mix a few of them. + +## Cache-aside (lazy loading) + +The application manages the cache directly. It checks the cache first, and on a miss, loads from the database and populates the cache. This is the most common strategy because it's simple and only caches data that's actually requested. The trade-off is that the first request for any item always misses. + +## Read-through + +The cache sits inline and loads missing data from the database itself, so the application only ever talks to the cache. It's cleaner than cache-aside but requires a cache layer that supports it. Behavior on a miss is otherwise similar: fetch, store, return. + +## Write-through + +Every write goes to the cache and the database at the same time, keeping the two in sync. Reads are always fresh, but writes are slightly slower because they touch two systems. This suits data that's read often and must never be stale. + +## Write-back (write-behind) + +Writes go to the cache first and are flushed to the database asynchronously. This makes writes fast but risks data loss if the cache fails before the flush, so it's used carefully and usually only where some durability risk is acceptable. + +Here's how the main strategies compare: + +| Strategy | Reads | Writes | Best for | +| ------------- | ------------------------------- | ----------------------------- | ---------------------------------- | +| Cache-aside | App checks cache, loads on miss | Write to DB, invalidate cache | General-purpose read-heavy apps | +| Read-through | Cache loads on miss | Handled separately | Simpler app code | +| Write-through | Always fresh | Slower, writes twice | Data that can't be stale | +| Write-back | Fast | Fast, flushed later | Write-heavy, tolerant of some risk | + +# Where does the cache live? + +Database caching can happen at several layers, and they're often combined. + +* **In-memory cache.** A store like [Redis](/blog/post/what-is-redis-a-complete-guide-for-developers) or Memcached holds data in RAM for microsecond reads. This is the most common place to cache database results. +* **Local (in-process) cache.** Data cached inside the application process itself, which is the fastest option but isn't shared across servers and vanishes on restart. +* **Distributed cache.** A shared cache cluster accessible by every application server, so a value cached by one server is a hit for all of them. +* **Edge and CDN caching.** For read-heavy public data, a [CDN](/blog/post/what-is-cdn) can cache API responses close to users, cutting both latency and origin load. + +Redis is by far the most popular choice for database caching because it's fast, supports expiration natively, and offers rich data structures. If you're evaluating it, our [complete guide to Redis](/blog/post/what-is-redis-a-complete-guide-for-developers) walks through how it works and why it's so fast. + +# Cache invalidation and TTL + +Cache invalidation is the hardest part of database caching. The moment you store a copy of data, it can go stale when the underlying record changes. Your job is to decide how stale is acceptable and how to refresh. + +The two main approaches are: + +* **Time-based expiration (TTL).** Each cached entry gets a **time to live**. When it expires, the next request repopulates it from the database. Invalidation is automatic and predictable, but data can be stale for up to the length of the TTL. +* **Event-based invalidation.** When a record is written or deleted, you explicitly remove or update its cache entry. This keeps data fresh but adds complexity, because every write path has to know which cache keys it affects. + +TTL is the pragmatic default for most read-heavy data. You pick a window that matches how stale the data can safely be. A product catalog might tolerate 5 minutes, while a public leaderboard might refresh every few seconds. Data where staleness is unacceptable, like an account balance or a shopping cart, is usually a poor fit for time-based caching. + +# When do you actually need database caching? + +You need database caching when the same data is read far more often than it changes, and when database read latency or load is hurting your app. Be honest about both conditions before adding a cache. + +Caching is a strong fit for: + +* **Read-heavy, slow-changing data** such as product listings, category pages, blog content, and configuration. +* **Expensive queries** with joins, aggregations, or large sorts that repeat often. +* **Public, shared responses** where many users request the same thing. + +Caching is a poor fit, or needs extra care, for: + +* **Data that must always be current**, like balances, inventory counts, or cart contents. +* **Highly personalized data** that rarely repeats between users, giving you a low hit rate. +* **Write-heavy workloads** where invalidation churn cancels out the benefit. + +A cache is not free. It adds a moving part, a new failure mode, and the ongoing question of correctness. If your database is comfortably fast and lightly loaded, you may not need one yet. Add caching to solve a measured problem, not preemptively. + +# Database caching best practices + +* **Set a TTL on everything.** Expiration keeps memory bounded and gives you a safety net against stale data even when explicit invalidation is missed. +* **Cache the right data.** Target read-heavy, slow-changing, frequently repeated queries, not everything. +* **Design keys carefully.** Include the parameters that make a query unique, such as filters, sort, and pagination, so different results don't collide on one key. +* **Measure your hit rate.** A low hit rate means you're caching the wrong things or your keys don't repeat. +* **Plan for cache misses and failures.** Your app should degrade gracefully to the database if the cache is unavailable. +* **Match staleness to the data.** Short TTLs for fast-changing data, longer TTLs for stable content. + +# Getting started with caching on Appwrite + +If you're building on [Appwrite](https://cloud.appwrite.io/), you can get the benefits of database caching without wiring up and maintaining a separate cache. [Appwrite Databases](/docs/products/databases) supports [TTL-based list caching](/blog/post/announcing-list-cache-ttl): you pass a `ttl` parameter to your existing `listRows` call, and Appwrite serves identical repeat requests from memory until the window expires. The query, endpoint, and SDK stay the same, so you can roll it out behind a feature flag. + +We put that cache under sustained load and measured it in our [TTL caching benchmark](/blog/post/ttl-cache-performance-benchmark), where 100,000 requests per phase showed the biggest gains at the tail of the latency distribution. Beyond the database layer, [Appwrite Sites](/docs/products/sites) and the [Appwrite Network](/docs/products/network/caching) add edge caching for static and dynamic content, so you can cache at every layer from one platform. + +Appwrite Cloud gives you a fully managed backend with Auth, Databases, Storage, Functions, Sites, and Realtime out of the box, scaling automatically as your app grows. [Sign up for Appwrite Cloud](https://cloud.appwrite.io/) and give your next build a backend that's fast by default. + +## Resources + +* [Appwrite Databases documentation](/docs/products/databases) +* [TTL list caching announcement](/blog/post/announcing-list-cache-ttl) +* [Benchmarking TTL list caching](/blog/post/ttl-cache-performance-benchmark) +* [What is Redis? A complete guide for developers](/blog/post/what-is-redis-a-complete-guide-for-developers) +* [Appwrite Network caching docs](/docs/products/network/caching) +* [Join the Appwrite Discord](https://appwrite.io/discord) \ No newline at end of file diff --git a/static/images/blog/nextjs-vs-react-explained-which-should-developers-use/cover.avif b/static/images/blog/nextjs-vs-react-explained-which-should-developers-use/cover.avif new file mode 100644 index 0000000000000000000000000000000000000000..7888a364b569f90f7b161d6bc2977fe2939651b6 GIT binary patch literal 26120 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 T5;+sm^9$1PfD$O{QnRD{eLQlrKR0}ALGAP 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 literal 0 HcmV?d00001 diff --git a/static/images/blog/what-is-database-caching-a-beginners-guide/cover.avif b/static/images/blog/what-is-database-caching-a-beginners-guide/cover.avif new file mode 100644 index 0000000000000000000000000000000000000000..8ee9ace0111a0e1c12a4b53f2ec1174d91df7475 GIT binary patch literal 22493 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 Date: Tue, 21 Jul 2026 14:06:07 +0530 Subject: [PATCH 2/4] recent-edits-to-blogs --- .optimize-cache.json | 4 ++-- .../cover.avif | Bin 26120 -> 8619 bytes .../cover.avif | Bin 20263 -> 28180 bytes 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.optimize-cache.json b/.optimize-cache.json index 67bb73b9d8..8f1ef6e6b5 100644 --- a/.optimize-cache.json +++ b/.optimize-cache.json @@ -906,7 +906,7 @@ "static/images/blog/nextjs-starter-sites/deployed.png": "f3b309dd4747796f1a8272635096a29e01314fbced8f26222afa60185b3af16d", "static/images/blog/nextjs-starter-sites/deployment-logs.png": "2873669c7ab6b816bf574d190a8a51b0c1edfd35b28423022fbf64055d97cac2", "static/images/blog/nextjs-starter-sites/template.png": "0138c956f06c8275b87d103c1b5bdf54b6cf31d42285c43f5caec5b5d497421c", - "static/images/blog/nextjs-vs-react-explained-which-should-developers-use/cover.png": "43967b74e33e432d0bf74d18ae55e9f9d1157a108db78e5ec9badd951b041fe5", + "static/images/blog/nextjs-vs-react-explained-which-should-developers-use/cover.png": "a010768c8bcbf2b55fe57d47790aeaea9e167345cfa7f04581f66e01d2071991", "static/images/blog/nodejs-v25-whats-new/cover.png": "49e3fa3a669bdd6d5d1aa1eea54693ea75c9c98aa8a1e3035e1c19c97598f007", "static/images/blog/nuxt-starter-sites/add-platform.png": "3b13ba983ea1d2529a1f34a719acef903ec0b58879ed511012280a28ccbde17e", "static/images/blog/nuxt-starter-sites/congrats.png": "5dfa4f03b67e0110936126f36329a17aa37bdfc4f148d61deb9aacf5d10d0981", @@ -1273,7 +1273,7 @@ "static/images/blog/what-is-ciam/cover.png": "45a5261ae1bb8a38777f60a21ea60426c0832e3d58bf3164100548400d388ce1", "static/images/blog/what-is-cicd-a-complete-guide-for-developers/cover.png": "7abddce55b1467188faab83abd58189173bf9aba84de3d9f28fff0be8c6e9276", "static/images/blog/what-is-cloud-storage-an-expert-guide-for-developers/cover.png": "b7f545dbe9334d60f214e748ddfcea47484530a97f30ecf579d064a053c2821d", - "static/images/blog/what-is-cors-cross-origin-resource-sharing-explained/cover.png": "273b18d33a81fe119a2d8f51869375de14005546052d80cb1a237a2348ffa328", + "static/images/blog/what-is-cors-cross-origin-resource-sharing-explained/cover.png": "6d67ffa35a995451b908b2adb8ee4e45c73cb8a588b20404585c78fc8bf87d12", "static/images/blog/what-is-database-caching-a-beginners-guide/cover.png": "d4c8a0be9a1b0167e295648260779e4a26ad3a1957653f4cb16268f724c25664", "static/images/blog/what-is-docker-a-simple-guide-for-developers/cover.png": "acd9c50ad749fcf676dd58b38cc6bbffba913bf5d817c6b725bd2c305088689e", "static/images/blog/what-is-kubernetes-an-expert-guide-for-developers/cover.png": "a7601f375841b143d62511fe3bbfb4bacb6989ddc56613f772b7dcd3d5e90688", diff --git a/static/images/blog/nextjs-vs-react-explained-which-should-developers-use/cover.avif b/static/images/blog/nextjs-vs-react-explained-which-should-developers-use/cover.avif index 7888a364b569f90f7b161d6bc2977fe2939651b6..ab4e487e282f2bf4d6ac1dff309833cf199e31bb 100644 GIT binary patch delta 8230 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 delta 19953 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 AFaQ7m From d81932ae8fe45f4f582699659db35a60b051b011 Mon Sep 17 00:00:00 2001 From: Aishwari Pahwa Date: Tue, 21 Jul 2026 14:09:02 +0530 Subject: [PATCH 3/4] Apply suggestion from @greptile-apps[bot] Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> --- .../+page.markdoc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/routes/blog/post/nextjs-vs-react-explained-which-should-developers-use/+page.markdoc b/src/routes/blog/post/nextjs-vs-react-explained-which-should-developers-use/+page.markdoc index 98a691f0f0..6466ccd21b 100644 --- a/src/routes/blog/post/nextjs-vs-react-explained-which-should-developers-use/+page.markdoc +++ b/src/routes/blog/post/nextjs-vs-react-explained-which-should-developers-use/+page.markdoc @@ -171,6 +171,4 @@ Resources: - [Appwrite Sites documentation](/docs/products/sites) - [React documentation](https://react.dev) - [Next.js documentation](https://nextjs.org/docs) -- [Join the Appwrite Discord](https://appwrite.io/discord) - - \ No newline at end of file +- [Join the Appwrite Discord](https://appwrite.io/discord) \ No newline at end of file From 6ea20c1dca46ca787393674b9db02620a141856b Mon Sep 17 00:00:00 2001 From: Aishwari Pahwa Date: Wed, 22 Jul 2026 15:19:28 +0530 Subject: [PATCH 4/4] Update +page.markdoc --- .../+page.markdoc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/routes/blog/post/what-is-cors-cross-origin-resource-sharing-explained/+page.markdoc b/src/routes/blog/post/what-is-cors-cross-origin-resource-sharing-explained/+page.markdoc index 20b894b0fc..e08a7ef240 100644 --- a/src/routes/blog/post/what-is-cors-cross-origin-resource-sharing-explained/+page.markdoc +++ b/src/routes/blog/post/what-is-cors-cross-origin-resource-sharing-explained/+page.markdoc @@ -134,5 +134,4 @@ CORS stops being a mystery once you see it for what it is: a server-side allowli * [Handle CORS errors in Appwrite Functions](/blog/post/handle-cors-in-serverless-functions) * [Appwrite Functions documentation](/docs/products/functions) * [Appwrite security documentation](/docs/advanced/security) -* [MDN: Cross-Origin Resource Sharing (CORS)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guide/CORS) -* [Join the Appwrite Discord server](https://appwrite.io/discord) \ No newline at end of file +* [Join the Appwrite Discord server](https://appwrite.io/discord)