You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: add Introduction section to Getting Started page (#57)
* docs: add Introduction section to Getting Started page
* docs: reword provider registration to reference the application
* docs: use full provider list example and link real-world bootstrap
* docs: drop dependency injection from feature list
* docs: expand Introduction with motivation and feature highlights
* docs: remove plugins from Introduction
* docs: tighten Introduction transition and provider lead-in
* docs: drop dependency injection from service container feature
* docs: rename providers feature to service providers
* docs: remove service container feature bullet
* docs: add queue workers with TaskIQ to feature list
* docs: remove storage feature bullet
* docs: remove configuration feature bullet
Copy file name to clipboardExpand all lines: docs/getting-started.md
+48-1Lines changed: 48 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,54 @@ jsonLd:
13
13
"name": "Fastapi Startkit Team"
14
14
---
15
15
16
-
Fastapi Startkit is a modular, provider-driven framework for building robust FastAPI applications with minimal boilerplate. That said, **it doesn't enforce you to use FastAPI at all** — You can build entirely headless CLI utilities, cron scripts, or background task workers and still get access to the full suite of infrastructure components such as logging, database, configuration, and dependency injection.
16
+
## Introduction
17
+
18
+
FastAPI is excellent for quickly building APIs, but it intentionally leaves many application-level concerns to the developer. Things like environment management (including multiple environments), logging, database setup, configuration, CLI commands, storage, and other infrastructure are things you typically need to design and wire together yourself.
19
+
20
+
In our case, we were building multiple microservices, and we found ourselves repeatedly copying the same bootstrap code between projects. Over time, that became repetitive and harder to maintain consistently.
21
+
22
+
So we decided to open source it as FastAPI Startkit, an application framework that brings proven patterns from mature web frameworks into Python and FastAPI.
23
+
24
+
The goal is not to replace FastAPI. Instead, it provides a structured foundation for building larger applications while staying modular — you can use only the components you need. That said, **it doesn't enforce you to use FastAPI at all** — you can build entirely headless CLI utilities, cron scripts, or background task workers and still get access to the full suite of infrastructure components.
25
+
26
+
Some features include:
27
+
28
+
- 🪵 Logging
29
+
- 🗄️ Async database ORM, migrations & seeders
30
+
- 🖥️ CLI console commands
31
+
- 🧩 Service providers
32
+
- 🧵 Queue workers with TaskIQ
33
+
- ⚡ FastAPI integration & routing
34
+
- 🎨 Frontend integration (Vite & Inertia)
35
+
36
+
An application is composed by **registering providers** — you pick the ones you need and hand them to the `Application`:
37
+
38
+
```python
39
+
from pathlib import Path
40
+
from fastapi_startkit import Application
41
+
42
+
app = Application(
43
+
base_path=Path(__file__).parent.parent,
44
+
providers=[
45
+
LogProvider,
46
+
(DatabaseProvider, DatabaseConfig),
47
+
(FastAPIProvider, FastAPIConfig),
48
+
McpProvider,
49
+
AISkillProvider,
50
+
(StorageProvider, StorageConfig),
51
+
AppProvider,
52
+
PluginProvider,
53
+
TerminalProvider,
54
+
(ViteProvider, ViteConfig),
55
+
InertiaProvider,
56
+
(ReverbProvider, BroadcastingConfig),
57
+
],
58
+
)
59
+
```
60
+
61
+
A provider can be listed on its own, or paired with a config object as a `(Provider, Config)` tuple when it needs configuration. Adding a capability is as simple as adding a provider to that list. For a real-world example, see the [Keera Agent `bootstrap/application.py`](https://github.com/Keera-Labs/keera-agent/blob/main/bootstrap/application.py#L23-L39).
62
+
63
+
The sections below walk you through installing the framework and standing up your first application.
0 commit comments