Appwrite

Appwrite

Open-source backend platform for web and mobile apps

Features

  • Database, auth, storage, and functions in one platform
  • Real-time subscriptions via WebSocket
  • Built-in teams and role-based permissions
  • Self-hosted or Appwrite Cloud

Pros

  • Fully open-source with Docker self-hosting
  • Clean, well-designed REST API and SDKs
  • Active development with responsive community

Cons

  • Uses MariaDB internally — no direct SQL access
  • Smaller ecosystem than Firebase or Supabase
  • Functions runtime is more limited than cloud providers

Overview

Appwrite is an open-source Backend-as-a-Service (BaaS) that provides authentication, databases, file storage, cloud functions, and real-time messaging. It can be self-hosted via Docker or used as a managed cloud service, giving you full control over your backend infrastructure.

Appwrite provides SDKs for web, mobile (iOS, Android, Flutter), and server platforms. Its permission model supports user-level, team-level, and role-based access control. The platform includes a visual dashboard for managing data, users, and functions.

When to Use

Appwrite is a strong choice when you want a self-hosted open-source BaaS, when building mobile applications with Flutter, or when you need a Firebase alternative with Docker deployment. For PostgreSQL access, Supabase is more appropriate.

Getting Started

# Self-host with Docker
docker run -it --rm \
  --volume /var/run/docker.sock:/var/run/docker.sock \
  appwrite/appwrite init

npm install appwrite
import { Client, Databases } from "appwrite";

const client = new Client()
  .setEndpoint("https://cloud.appwrite.io/v1")
  .setProject("your-project-id");

const databases = new Databases(client);
const docs = await databases.listDocuments("db-id", "collection-id");