-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcapabilities.html
39 lines (39 loc) · 21.9 KB
/
capabilities.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-2.3.0 docs-doc-page docs-doc-id-capabilities" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.7.0">
<title data-rh="true">Capabilities | Serverpod</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://serverpod.github.io/capabilities"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="2.3.0"><meta data-rh="true" name="docusaurus_tag" content="docs-default-2.3.0"><meta data-rh="true" name="docsearch:version" content="2.3.0"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-2.3.0"><meta data-rh="true" property="og:title" content="Capabilities | Serverpod"><meta data-rh="true" name="description" content="Serverpod is a complete, competent backend for Flutter. For the glossy sales pitch, head to our main page at Serverpod.dev."><meta data-rh="true" property="og:description" content="Serverpod is a complete, competent backend for Flutter. For the glossy sales pitch, head to our main page at Serverpod.dev."><link data-rh="true" rel="icon" href="/img/favicon.png"><link data-rh="true" rel="canonical" href="https://serverpod.github.io/capabilities"><link data-rh="true" rel="alternate" href="https://serverpod.github.io/capabilities" hreflang="en"><link data-rh="true" rel="alternate" href="https://serverpod.github.io/capabilities" hreflang="x-default"><script src="https://widget.kapa.ai/kapa-widget.bundle.js" data-website-id="9ae02024-c2cf-4f58-b2d9-7ca3961dc1ef" data-project-name="Serverpod" data-project-color="#020F24" data-project-logo="https://avatars.githubusercontent.com/u/48181558?s=200&v=4" async></script><link rel="stylesheet" href="/assets/css/styles.c77738bc.css">
<script src="/assets/js/runtime~main.c185e5c9.js" defer="defer"></script>
<script src="/assets/js/main.cc645fc7.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,t("light"))}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo-horizontal.svg"><link rel="preload" as="image" href="/img/logo-horizontal-dark.svg"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a href="https://serverpod.dev" target="_blank" rel="noopener noreferrer" class="navbar__brand"><div class="navbar__logo"><img src="/img/logo-horizontal.svg" alt="Serverpod Logo" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/img/logo-horizontal-dark.svg" alt="Serverpod Logo" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div></a><div class="navbar__item dropdown dropdown--hoverable"><a aria-current="page" class="navbar__link active" aria-haspopup="true" aria-expanded="false" role="button" href="/capabilities">2.3.0</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/next/capabilities">Next</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/capabilities">2.3.0</a></li><li><a class="dropdown__link" href="/2.2.0/capabilities">2.2.0</a></li><li><a class="dropdown__link" href="/2.1.0/capabilities">2.1.0</a></li><li><a class="dropdown__link" href="/2.0.0/capabilities">2.0.0</a></li><li><a class="dropdown__link" href="/1.2.0/capabilities">1.2.0</a></li><li><a class="dropdown__link" href="/1.1.1/capabilities">1.1.1</a></li><li><a class="dropdown__link" href="/1.1.0/capabilities">1.1.0</a></li><li><a class="dropdown__link" href="/1.0.0/capabilities">1.0.0</a></li><li><a class="dropdown__link" href="/0.9.22/capabilities">0.9.22</a></li><li><a class="dropdown__link" href="/0.9.21/capabilities">0.9.21</a></li><li><a class="dropdown__link" href="/0.9.20/capabilities">0.9.20</a></li><li><a class="dropdown__link" href="/0.9.11/capabilities">0.9.11</a></li><li><a class="dropdown__link" href="/0.9.10/capabilities">0.9.10</a></li><li><a class="dropdown__link" href="/0.9.9/capabilities">0.9.9</a></li><li><a class="dropdown__link" href="/0.9.8/capabilities">0.9.8</a></li><li><a class="dropdown__link" href="/0.9.7/capabilities">0.9.7</a></li><li><a class="dropdown__link" href="/0.9.6/capabilities">0.9.6</a></li><li><a class="dropdown__link" href="/0.9.5/capabilities">0.9.5</a></li></ul></div></div><div class="navbar__items navbar__items--right"><a href="https://pub.dev/documentation/serverpod/latest/" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">API reference<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://careers.serverpod.dev/" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Career<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://twitter.com/ServerpodDev" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://github.com/serverpod/serverpod" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="navbarSearchContainer_Bca1"></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite" aria-pressed="false"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Installing Serverpod</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/get-started">Get started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/get-started-with-mini">Get started with Mini</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/capabilities">Capabilities</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/support">Support & community</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="true" href="/tutorials/first-app">Tutorials</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tutorials/first-app">Build your first app</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tutorials/real-time-communication">Real-time communication</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tutorials/code-example">Code examples</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/tutorials/authentication">Authentication</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/concepts/working-with-endpoints">Reference</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/deployments/deployment-strategy">Deploying Serverpod</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/upgrading/upgrade-from-mini">Upgrading</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/tools/insights">Tools</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/contribute">Roadmap & contributions</a></li></ul></nav></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><span class="theme-doc-version-badge badge badge--secondary">Version: 2.3.0</span><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Capabilities</h1></header>
<p>Serverpod is a complete, competent backend for Flutter. For the glossy sales pitch, head to our main page at <a href="https://serverpod.dev" target="_blank" rel="noopener noreferrer">Serverpod.dev</a>.</p>
<p>Every design decision in Serverpod aims to minimize the amount of code you need to write and make it as readable as possible. Apart from being just a server, Serverpod incorporates many common tasks that are otherwise cumbersome to implement or require external services.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="code-generation">Code generation<a href="#code-generation" class="hash-link" aria-label="Direct link to Code generation" title="Direct link to Code generation"></a></h2>
<p>Serverpod automatically generates your model and client-side code by analyzing your server. Calling a remote endpoint is as easy as making a local method call.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="world-class-logging">World-class logging<a href="#world-class-logging" class="hash-link" aria-label="Direct link to World-class logging" title="Direct link to World-class logging"></a></h2>
<p>Stop struggling. You no longer need to search through endless server logs. Pinpoint exceptions and slow database queries in an easy-to-use user interface with a single click.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="built-in-caching">Built-in caching<a href="#built-in-caching" class="hash-link" aria-label="Direct link to Built-in caching" title="Direct link to Built-in caching"></a></h2>
<p>Cut down on your database costs. Don't save all your data permanently when you don't have to. Serverpod comes with a high-performance distributed cache built right in. Any serializable objects can be cached locally on your server or using Redis if you need to use the same cache across a cluster of servers.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="easy-to-use-orm">Easy to use ORM<a href="#easy-to-use-orm" class="hash-link" aria-label="Direct link to Easy to use ORM" title="Direct link to Easy to use ORM"></a></h2>
<p>Save time. Talking with your database can be a hassle. With Serverpod's ORM, your queries use native Dart types and null-safety. There is a straight path from your statically checked code to the database.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="database-migrations">Database migrations<a href="#database-migrations" class="hash-link" aria-label="Direct link to Database migrations" title="Direct link to Database migrations"></a></h2>
<p>Easily keep your database in sync as the requirements of your project evolve. Serverpod comes with a complete database migration system that helps you apply and version changes to the database.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="file-uploads">File uploads<a href="#file-uploads" class="hash-link" aria-label="Direct link to File uploads" title="Direct link to File uploads"></a></h2>
<p>Upload files straight to Google Cloud Storage, S3, or store them in your database.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="authentication">Authentication<a href="#authentication" class="hash-link" aria-label="Direct link to Authentication" title="Direct link to Authentication"></a></h2>
<p>Sign in through social logins or wing your own. Currently supported are Google, Apple, Firebase, and email.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="data-streaming">Data streaming<a href="#data-streaming" class="hash-link" aria-label="Direct link to Data streaming" title="Direct link to Data streaming"></a></h2>
<p>Pass serialized objects through authenticated sockets. Push messages from your server for real-time communication. Sending messages across a cluster of servers is supported. Perfect for building games or chatting applications, or anything you can imagine.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="task-scheduling">Task scheduling<a href="#task-scheduling" class="hash-link" aria-label="Direct link to Task scheduling" title="Direct link to Task scheduling"></a></h2>
<p>Serverpod's future calls replace complicated cron jobs. Call a method anytime in the future or after a specified delay. The calls persist even if the server is restarted.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="health-checks">Health checks<a href="#health-checks" class="hash-link" aria-label="Direct link to Health checks" title="Direct link to Health checks"></a></h2>
<p>Monitor the database and external services that you are using. Write custom health checks and get notified when something goes wrong.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="easy-deployment">Easy deployment<a href="#easy-deployment" class="hash-link" aria-label="Direct link to Easy deployment" title="Direct link to Easy deployment"></a></h2>
<p>Serverpod comes with Terraform scripts for Google Cloud Platform and AWS, making deploying your server very quick. We are still working on scripts for other platforms. Please get in touch with us if you want to <a href="/contribute">contribute</a>.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="built-in-web-server">Built-in web server<a href="#built-in-web-server" class="hash-link" aria-label="Direct link to Built-in web server" title="Direct link to Built-in web server"></a></h2>
<p>Serverpod comes with a built-in web server. This makes it very easy to share data for applications that need both an app and traditional web pages. You can also use the webserver to create webhooks or generate custom REST APIs to communicate with 3rd party services. <em>The web server is still experimental, and we are actively working on it</em>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/serverpod/serverpod_docs/tree/main/versioned_docs/version-2.3.0/03-capabilities.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_JAkA"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/get-started-with-mini"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Get started with Mini</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/support"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Support & community</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#code-generation" class="table-of-contents__link toc-highlight">Code generation</a></li><li><a href="#world-class-logging" class="table-of-contents__link toc-highlight">World-class logging</a></li><li><a href="#built-in-caching" class="table-of-contents__link toc-highlight">Built-in caching</a></li><li><a href="#easy-to-use-orm" class="table-of-contents__link toc-highlight">Easy to use ORM</a></li><li><a href="#database-migrations" class="table-of-contents__link toc-highlight">Database migrations</a></li><li><a href="#file-uploads" class="table-of-contents__link toc-highlight">File uploads</a></li><li><a href="#authentication" class="table-of-contents__link toc-highlight">Authentication</a></li><li><a href="#data-streaming" class="table-of-contents__link toc-highlight">Data streaming</a></li><li><a href="#task-scheduling" class="table-of-contents__link toc-highlight">Task scheduling</a></li><li><a href="#health-checks" class="table-of-contents__link toc-highlight">Health checks</a></li><li><a href="#easy-deployment" class="table-of-contents__link toc-highlight">Easy deployment</a></li><li><a href="#built-in-web-server" class="table-of-contents__link toc-highlight">Built-in web server</a></li></ul></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2025 Serverpod authors.</div></div></div></footer></div>
</body>
</html>