Appwrite

Appwrite

Appwrite is an end-to-end backend server for web, native, and mobile developers. It provides a complete backend-as-a-service platform with authentication, databases, file storage, cloud functions, and real-time capabilities, all accessible through REST APIs and SDKs.

Self-hosted alternatives to:
Similar self-hosted alternatives:
Repository activity:
Stars
50,920
Forks
4,461
Watchers
385
Open Issues
817
Last commit
2 days ago
Details:
Estimated Popularity
214
Pricing Model
Free
Hosting Type
Self-Hosted
License
BSD-3-Clause
Deployment Difficulty
Easy
Language
TypeScript

Appwrite is a comprehensive backend-as-a-service (BaaS) platform that provides developers with all the essential backend services needed to build modern applications. Designed to be self-hosted and open-source, Appwrite offers a complete suite of tools including authentication, databases, file storage, cloud functions, and real-time capabilities.

Key Features

  • User Authentication & Management:

    • Multiple authentication methods (email/password, phone, OAuth)
    • 30+ OAuth providers (Google, GitHub, Facebook, etc.)
    • Anonymous sessions and guest access
    • User preferences and metadata
    • Team and organization management
    • Session management and security
  • Database Services:

    • Document-based NoSQL database
    • Real-time database updates
    • Advanced query capabilities
    • Relationships and references
    • Full-text search functionality
    • Data validation and permissions
  • File Storage & Management:

    • Secure file upload and storage
    • Image manipulation and optimization
    • File encryption and compression
    • CDN integration for global delivery
    • File preview and thumbnails
    • Antivirus scanning
  • Cloud Functions:

    • Serverless function execution
    • Multiple runtime support (Node.js, Python, PHP, etc.)
    • Event-driven triggers
    • Scheduled function execution
    • Custom domain support
    • Environment variables
  • Real-time Capabilities:

    • WebSocket connections
    • Live database updates
    • Pub/Sub messaging system
    • Presence detection
    • Real-time collaboration features
    • Event broadcasting
  • Security & Permissions:

    • Role-based access control
    • API key management
    • JWT token authentication
    • Rate limiting and abuse protection
    • CORS configuration
    • Data encryption at rest and in transit
  • Developer Experience:

    • 15+ client SDKs (JavaScript, Flutter, React Native, etc.)
    • REST API with OpenAPI documentation
    • GraphQL support
    • CLI tools for deployment
    • Web console for management
    • Comprehensive documentation

Technical Specifications

  • Backend: PHP with Swoole
  • Database: MariaDB with Redis caching
  • Storage: Local filesystem or S3-compatible
  • Deployment: Docker containers
  • Protocols: HTTP/HTTPS, WebSocket
  • APIs: REST, GraphQL, Real-time
  • SDKs: 15+ client libraries

Use Cases

  • Mobile Applications: Native iOS and Android app backends
  • Web Applications: SPA and PWA backend services
  • Real-time Apps: Chat applications, collaborative tools
  • E-commerce: Product catalogs, user management, payments
  • Content Management: Blogs, portfolios, media platforms
  • IoT Applications: Device management, data collection

Unique Advantages

  • Self-Hosted: Complete control over data and infrastructure
  • Open Source: Transparent, customizable, and community-driven
  • Multi-Platform: Support for web, mobile, and native applications
  • Real-time First: Built-in real-time capabilities across all services
  • Developer Friendly: Extensive SDKs and comprehensive documentation
  • Production Ready: Enterprise-grade security and scalability features

Help improve this content

Found an error or want to add more information about Appwrite? You can edit this page directly on GitHub.

Project Categories

Click on a category to explore similar projects