Skip to content

Develop Appwrite Sites

Rendering strategies

Appwrite allows you to host both statically-generated and server-rendered websites.

Static sites are websites that are pre-built and served as-is to clients. They do not execute server-side code on each request. They are ideal for use-cases such as Single Page Applications (SPAs), documentation sites, personal blogs, and portfolio websites.

Server-side rendered (SSR) sites generate content dynamically on the server and send fully rendered pages for each request. They are ideal for use-cases with substantial dynamic content or server-side processing such as e-commerce platforms, social media applications, content management systems (CMS), and real-time collaboration tools.

You can configure your preferred rendering strategy through the following steps:

  1. Navigate to your site on Appwrite Console.
  2. Head to the Settings tab > Build settings section.
  3. Select the SSR or the Static checkbox.
  4. Confirm that the appropriate install command, build command, and output directory are set.
  5. (For SPAs) Add a fallback file.
  6. Click on the Update button and redeploy your site.

Rendering strategy

Rendering strategy

Timeouts

Each request made to a path on an Appwrite Site has a set time limit, after which the request will timeout. Here are the steps to configure those timeout period:

  1. Navigate to your site on Appwrite Console.
  2. Head to the Settings tab > Timeout section.
  3. Add an appropriate time limit (in seconds).

Timeout

Timeout

The default timeout is set at 15 seconds and the maximum value possible is 30 seconds.

Resource limits

Under Settings - Resource limits, you can set build and runtime specifications independently. The build spec applies while dependencies are installed and your site is built for deployment; the runtime spec applies when your site serves traffic, including server-side rendering (SSR). Both use the same CPU and memory tiers on Cloud.

On Appwrite Cloud, customizing specifications requires the Pro plan. See Compute for tiers, GB-hours, and pricing.

Build timeouts

On Appwrite Cloud, the build phase of each deployment must complete within your plan’s maximum build duration (for example, 15 minutes on Free and 45 minutes on Pro and Scale). See Build timeouts and the pricing page.

Project dependencies

To install your dependencies before your site is built, you should add the relevant install command to your site’s build settings. Here are the steps to add the install command:

  1. Navigate to your site on Appwrite Console.
  2. Head to the Settings tab > Build settings section.
  3. Confirm that the appropriate install command is set.

Install command

Install command

Make sure to include dependency files like package.json in your site's configured root directory. Do not include the dependency folders like node_modules in your site’s root directory. The dependencies installed for your local OS may not work in the site's environment.

Your site's dependencies should be managed by the package manager of each language. We include the following package managers and setup commands by default.

 FrameworkDefault package managerInstall commandBuild commandOutput directory
Next.js
npm
npm install
npm run build
./.next
Nuxt
npm
npm install or yarn install
npm run build or yarn build
./.output
SvelteKit
npm
npm install
npm run build
./build
Angular
npm
npm install
npm run build
./dist/angular/browser
Astro
npm
npm install
npm run build
./dist
Remix logo Remix logo
Remix
npm
npm install
npm run build
./build
TanStack Start logo TanStack Start logo
TanStack Start
npm
npm install
npm run build
./dist
Flutter
pub
flutter pub get
flutter build web --release -t lib/main.dart
./build/web
React Native
npm
npm install
npm run build
./dist
Other JavaScript
npm
(Empty)
(Empty)
./