Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
177 changes: 0 additions & 177 deletions docs/03-overview.md

This file was deleted.

57 changes: 28 additions & 29 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,55 +2,54 @@
sidebar_position: -1
sidebar_label: Introduction
sidebar_class_name: sidebar-introduction-icon
title: Introduction
description: Serverpod is an open-source backend framework for Flutter developers. Write your server in Dart and call it from Flutter through a generated, type-safe client.
---

# Introduction

Serverpod is an open-source, scalable backend framework built specifically for Flutter developers. It allows you to use Dart for your entire stack, simplifying development and reducing context-switching.
Serverpod is an open-source backend framework for Flutter developers. You write server logic in Dart, define data models in YAML, and call your endpoints from Flutter through a generated, type-safe Dart client. No REST contracts to hand-write, no language-switching, no boilerplate to maintain.

<div style={{ position : 'relative', paddingBottom : '56.25%', height : '0' }}><iframe style={{ position : 'absolute', top : '0', left : '0', width : '100%', height : '100%' }} width="560" height="315" src="https://www.youtube-nocookie.com/embed/teOnBD5d8b8" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div>

## Build your Flutter backend with Dart
## Write Dart everywhere

Maintain a single-language codebase with Serverpod. Write backend endpoints in Dart and call them directly from your Flutter app without writing boilerplate code. Our state-of-the-art code generation takes care of all the steps in between. Under the hood, Serverpod uses proven web standards and best practices.
Define an endpoint on the server:

```dart
// Define an endpoint on the server.
class ExampleEndpoint extends Endpoint {
Future<String> greet(Session session, String name) async {
class GreetingEndpoint extends Endpoint {
Future<String> hello(Session session, String name) async {
return 'Hello, $name';
}
}
```

Call it from your Flutter app:

```dart
// Call the endpoint from your Flutter app.
final greeting = await client.example.greet('World');
print(greeting); // Hello World
final greeting = await client.greeting.hello('World');
print(greeting); // Hello, World
```

### Scalable and progressive

Serverpod is designed to grow with your needs. Start with a minimal setup and gradually introduce complexity as your application evolves:

- **Modular:** Easily add new features or services when necessary.
- **Scalable:** Grows from hobby project to millions of active users without changing a line of code.
- **Flexible:** Adaptable to various project requirements. Plug in Redis or stay purely Postgres – your choice.

### Benefits of Serverpod
Endpoint methods on the server become typed methods on the client. Serverpod handles serialization, transport, and the code generation in between.

Startups and agencies use Serverpod to streamline development processes, accelerate iteration cycles, and empower single developers to build full features:
## Who Serverpod is for

- **Reduced complexity:** Minimize friction by using a single language. Modules make sharing app and server code, database schemas, and APIs between your projects easy.
- **Open and free:** Avoid vendor lock-in. Deploy servers anywhere you can run Dart.
- **Stable and reliable:** Integrated logging, error monitoring, and automated database management. Battle-tested in real-world applications and secured by over 5,000 automated tests.
Serverpod is built for Flutter teams that want a Dart-only stack: solo developers, startups, and small teams shipping production apps without juggling languages. If your client is Flutter, your team writes Dart, and you'd rather ship features than wire infrastructure, Serverpod fits.

### Features our developers love
## What's included

Serverpod comes packed with powerful features - batteries included.
Serverpod covers the common backend surface out of the box:

- **Intuitive ORM:** Eliminates the need for writing complex SQL and reduces the risk of database errors – all Dart-first, type-safe, statically analyzed, and with support for migrations and relations.
- **Real-time capabilities:** Push data from your server using Dart streams without worrying about the WebSocket life cycle and message routing.
- **Straightforward authentication:** Quickly integrate popular authentication providers like sign-in with Google, Apple, or Firebase.
- **All essentials covered:** Built-in support for common tasks like handling file uploads, scheduling tasks, and caching data.
- **Cloud ready:** Deploy to Serverpod Cloud with zero configuration (coming soon - **[join the waiting list](https://forms.gle/JgFCqW3NY6WdDfct5)**), use pre-configured Docker containers, or use Terraform scripts for deploying to AWS or Google Cloud.
- **Code generation:** Server endpoints become typed Dart methods on the client. No hand-written API contracts.
- **Fast dev loop:** `serverpod start` regenerates the client, hot reloads the server, and applies migrations as you edit. No manual rebuilds or restarts.
- **Type-safe ORM:** Query Postgres or SQLite with Dart. Filters, relations, and joins are checked at compile time. Schema changes ship as versioned migrations.
- **Client-side database:** Use the same models on the Flutter client through a generated local database, including migrations.
- **Authentication:** Sign in with Google, Apple, Firebase, or email and password. Custom providers supported.
- **Real-time streams:** Stream Dart objects to clients over WebSockets without writing connection-management code.
- **Deployment:** Deploy to Serverpod Cloud, or self-host with Docker, Terraform scripts, or your own infrastructure.
- **Logging and monitoring:** Inspect requests, exceptions, and slow queries with Serverpod Insights.
- **File uploads:** Store in Amazon S3, Google Cloud Storage, or your database.
- **Task scheduling:** Run code at a future time with future calls. Persists across server restarts.
- **Caching:** Cache primitives and serializable models in-process or in Redis.
- **Web server:** Serve REST APIs, webhooks, and web pages with the built-in [Relic](https://docs.dartrelic.dev/) HTTP server.
Loading