---
title: Core Concepts
slug: /core-concepts
---

This section covers the fundamental concepts you need to understand to build applications with SpacetimeDB.

## Databases

Learn how SpacetimeDB databases work, including modules, publishing, and transactions.

- [What is a Database?](./00100-databases.md) - Understanding SpacetimeDB databases and modules
- [Building & Publishing](./00100-databases/00300-spacetime-publish.md) - Deploy your module to SpacetimeDB
- [Transactions](./00100-databases/00100-transactions-atomicity.md) - How atomicity and rollback work
- [Migrations](./00100-databases/00500-migrations/00200-automatic-migrations.md) - Evolving your schema over time

## Tables

Define your data model with tables, columns, and indexes.

- [Tables Overview](./00300-tables.md) - Declaring and using tables
- [Column Types](./00300-tables/00200-column-types.md) - Supported column types
- [Indexes](./00300-tables/00300-indexes.md) - Optimizing queries with indexes
- [Access Permissions](./00300-tables/00400-access-permissions.md) - Public vs private tables
- [Schedule Tables](./00300-tables/00500-schedule-tables.md) - Time-based operations

## Functions

Implement your application logic with reducers, procedures, and views.

- [Reducers](./00200-functions/00300-reducers/00300-reducers.md) - Transactional functions that modify state
- [Procedures](./00200-functions/00400-procedures.md) - Functions that can make external HTTP calls
- [Views](./00200-functions/00500-views.md) - Read-only computed queries

## Subscriptions

Enable real-time updates for your clients.

- [Subscription Reference](./00400-subscriptions.md) - How to subscribe to data
- [Subscription Semantics](./00400-subscriptions/00200-subscription-semantics.md) - Understanding update guarantees

## Authentication

Secure your application with SpacetimeAuth.

- [Authentication](./00500-authentication.md) - Using OpenID Connect (OIDC) for identity and access control
- [SpacetimeAuth Overview](./00500-authentication/00100-spacetimeauth/index.md) - Managed authentication service
- [Auth Claims](./00500-authentication/00500-usage.md) - Using identity and roles

## Client SDKs

Connect your frontend to SpacetimeDB.

- [SDK Overview](./00600-client-sdk-languages.md) - Available client SDKs
- [Code Generation](./00600-client-sdk-languages/00200-codegen.md) - Generate type-safe bindings
- [TypeScript](./00600-client-sdk-languages/00700-typescript-reference.md), [Rust](./00600-client-sdk-languages/00500-rust-reference.md), [C#](./00600-client-sdk-languages/00600-csharp-reference.md), [Unreal](./00600-client-sdk-languages/00800-unreal-reference.md) - Language-specific references
