---
layout: article
title: Platform
description: Appwrite is a development platform designed to adapt to your unique use cases. It provides features that help you maintain and scale your application.
---

Appwrite is a development platform designed to adapt your unique use cases.
Appwrite provides features that help you maintain, scale, and integrate Appwrite with other platforms.

# Integration {% #integration %}

Appwrite is designed to integrate with both frontend and backend apps.
Learn about advanced integrations and API response codes.

{% cards %}
{% cards_item href="/docs/advanced/platform/events" title="Events" %}
Appwrite allows you to react to events that occur on the platform.
{% /cards_item %}

{% cards_item href="/docs/advanced/platform/webhooks" title="Webhooks" %}
Use webhooks to update backend integrations about Appwrite events.
{% /cards_item %}

{% cards_item
   href="/docs/advanced/platform/response-codes"
   title="Response codes" %}
Learn about response codes and errors returned by Appwrite APIs.
{% /cards_item %}
{% /cards %}

# Access control {% #access-control %}

Appwrite is secure by default and provides tools for you to manage
access control and prevent abuse.

{% cards %}
{% cards_item
   href="/docs/advanced/platform/permissions"
   title="Permissions" %}
Control which users can access which resources.
{% /cards_item %}

{% cards_item
   href="/docs/advanced/platform/rate-limits"
   title="Rate limits" %}
Appwrite has rate limits on some endpoints to prevent abuse.
{% /cards_item %}

{% cards_item href="/docs/advanced/platform/api-keys" title="API keys" %}
Create and manage API keys used by Server SDKs.
{% /cards_item %}

{% cards_item href="/docs/advanced/platform/dev-keys" title="Dev keys" %}
Create and manage dev keys used by Client SDKs in dev environments.
{% /cards_item %}
{% /cards %}

# Plans {% #plans %}

Learn which plan best suits your organization and how to manage billing.

{% cards %}
{% cards_item href="/docs/advanced/platform/billing" title="Billing" %}
Learn to manage your billing information.
{% /cards_item %}

{% cards_item href="/docs/advanced/platform/free" title="Free" %}
Learn about Appwrite Free plan. Free plan for hobby projects and learners.
{% /cards_item %}

{% cards_item href="/docs/advanced/platform/pro" title="Pro" %}
Learn about Appwrite Pro, for growing organizations that need to scale.
{% /cards_item %}

{% cards_item href="/docs/advanced/platform/scale" title="Scale" %}
Coming soon.
{% /cards_item %}

{% cards_item href="/docs/advanced/platform/enterprise" title="Enterprise" %}
Learn about Appwrite Enterprise, for large organizations with advanced needs.
{% /cards_item %}

{% cards_item href="/docs/advanced/platform/oss" title="Open source" %}
Appwrite provides special plans for open source projects.
{% /cards_item %}
{% /cards %}

# Configuration {% #configuration %}

Configure custom domains and customize communication templates.

{% cards %}
{% cards_item
   href="/docs/advanced/platform/custom-domains"
   title="Custom domains" %}
Add a custom domain for your Appwrite APIs.
{% /cards_item %}

{% cards_item
   href="/docs/advanced/platform/message-templates"
   title="Message templates" %}
Create custom branding and messages when you communicate with users.
{% /cards_item %}
{% /cards %}

# Add Ons {% #add-ons %}

Learn about additional features and functionalities that Appwrite offers.

{% cards %}
{% cards_item href="/docs/advanced/platform/compute" title="Compute" %}
CPU and memory for Functions and Sites, including build and runtime specs.
{% /cards_item %}
{% cards_item href="/docs/advanced/platform/phone-otp" title="Phone OTP" %}
Learn how Appwrite handles SMS-based OTP authentication.
{% /cards_item %}
{% cards_item href="/docs/advanced/platform/image-transformations" title="Image Transformations" %}
Learn how to transform images dynamically with Appwrite.
{% /cards_item %}
{% cards_item href="/docs/advanced/platform/database-reads-and-writes" title="Database Reads and Writes" %}
Learn how Appwrite handles database reads and writes.
{% /cards_item %}
{% /cards %}