--- title: What is a Datalayer? last_edited: '2025-10-27T03:00:50.463Z' auto_generated: false --- The Datalayer is a critical component of TinaCMS that acts as the bridge between your content files and the TinaCMS editing interface. It provides: 1. Content Indexing: Indexes your content files to enable fast queries and searching 2. GraphQL API: Generates a GraphQL API based on your content model 3. Authentication: Manages user authentication for the editing interface 4. Storage: Handles content storage and retrieval from your repository ## TinaCloud vs Self-Hosting TinaCMS offers two approaches for implementing the datalayer: ### TinaCloud (recommended) TinaCloud is a managed service that handles the Datalayer for you, providing: * Automatic content indexing * User authentication and management * Seamless GitHub integration * No need to maintain your own infrastructure This is ideal for most projects and is the quickest way to get started. A free option also exists for small-scale projects. ### Self-Hosted The self-hosted option allows you to run the datalayer on your own infrastructure, giving you: * Complete control over your data * Custom authentication providers * Support for custom Git providers * Integration with your own database ### When to choose Self-Hosted Consider self-hosting the Datalayer when: * You need to use a Git provider other than GitHub * You want to use a custom database for content indexing * You need a custom authentication system * You have specific compliance or security requirements * You have the resources to manage and work with custom hosting infrastructure. #### Components of a Self-Hosted Datalayer To self-host the Datalayer, you'll need to configure: 1. Backend Host: A server to run the Datalayer (e.g., Next.js, Vercel Functions) 2. Database Adapter: A database to store and index content (e.g., MongoDB, Vercel KV) 3. Git Provider: A service to store and manage content files (e.g., GitHub, custom Git provider) 4. Auth Provider: A system to authenticate users (e.g., Auth.js, Clerk) For detailed instructions on setting up a self-hosted Datalayer, see our [Self-Hosting Guide](https://tina.io/docs/self-hosted/overview).