Appwrite
Open-source backend-as-a-service platform for web, mobile, and Flutter apps.
Why consider Appwrite?
Appwrite is an open-source development platform that unifies backend infrastructure and web hosting for web, mobile, and AI applications.
Learn Appwrite by building
Practical setup notes, real use cases, and copy-ready examples in one focused guide.
In this guide8 sections
What is Appwrite?
Appwrite is an open-source development platform for building web, mobile, and AI applications. It brings together backend infrastructure and web hosting in one place, which means development teams can build, ship, and scale their applications without needing to stitch together a fragmented technology stack. By offering a comprehensive set of backend services out of the box, Appwrite reduces the repetitive work traditionally required to launch modern products, giving developers secure primitives and flexible APIs to build applications faster.
At its core, Appwrite is designed to be run in a containerized environment. This approach allows developers to run their server locally using docker-compose, or deploy it to container orchestration tools like Kubernetes, Docker Swarm, or Rancher for production workloads. The platform uses a microservices architecture that makes it easy to scale and delegate responsibilities, and it supports multiple API protocols including REST, WebSocket, and GraphQL.
Core Capabilities
Appwrite provides a wide range of backend services that address common application requirements:
Authentication and User Management
Appwrite includes Appwrite Auth, which provides secure user authentication with multiple login methods. Developers can implement email and password authentication, SMS verification, OAuth providers, anonymous sessions, and magic links. The authentication service also handles session management, multi-factor authentication, and user verification flows, abstracting away the complex security considerations involved in managing user identities.
Data Storage and Databases
For managing application data, Appwrite Databases provides scalable structured data storage. It supports organizing data into databases, tables, and rows, similar to traditional relational models. The database service includes advanced querying capabilities, pagination, indexing, and relationships, allowing developers to model complex application data structures efficiently.
File Storage and Management
Appwrite Storage offers secure file storage capabilities. It handles file uploads and downloads, and includes built-in features for encryption and compression. Additionally, it supports file transformations for media and assets, which is particularly useful for optimizing images and other media files before delivering them to client applications.
Serverless Functions
To run custom backend logic, Appwrite provides Appwrite Functions. This is a serverless compute platform that executes code in isolated runtimes. Functions can be triggered by specific events within the Appwrite ecosystem or run as scheduled jobs. The platform is highly versatile, with 15 runtimes supported, enabling developers to write backend logic in their preferred programming languages.
Hosting and Deployments
Appwrite Sites is an integrated hosting platform designed to deploy and scale web applications. It supports custom domains, Server-Side Rendering (SSR), and seamless backend integration. The hosting service also includes Git integration and supports deployment previews, streamlining the continuous integration and delivery pipeline for web projects.
Getting Started with Self-Hosting
Appwrite is built to be easily self-hosted. The server runs inside Docker containers, making the installation process relatively straightforward across different operating systems. Before installing Appwrite, ensure that Docker is installed and running on your host machine.
To install and start Appwrite on a Unix-based system, you can use the following official command. This command pulls the Appwrite Docker image and runs the installation script, setting up the necessary containers and volumes:
docker run -it --rm \ --publish 20080:20080 \ --volume /var/run/docker.sock:/var/run/docker.sock \ --volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \ --entrypoint="install" \ appwrite/appwrite:1.9.0Once the Docker installation completes, you can access the Appwrite console by navigating to http://localhost in your web browser. Note that on some non-Linux native hosts, it might take a few minutes for the server to fully start up and become accessible after the installation finishes. From the console, you can create new projects, configure your services, and begin integrating Appwrite's SDKs into your client or server applications.
Related tools
More options with a similar category or technology profile.
Dapr CLI
Command-line tool for managing Dapr distributed application runtime environments and sidecars.
bpytop
Python port of bashtop with game-like UI, responsive mouse support, and hardware sensors.
bashtop
Linux resource monitor showing usage and stats for processor, memory, disks, network, and processes.
SchemaHero
Kubernetes-native declarative database schema management and table migration operator.