# SmallStack

> A Django SmallStack site: an admin shell, REST API, MCP server, datasets, calendars, scheduler, webhooks, approvals and publishing, built on one model declaration per feature. The documentation below is served as Markdown.

Pages are listed per documentation section; every link is a Markdown rendering of the page. The same pages are readable as HTML under the same path without the `.md` suffix.

## Project Documentation

- [Welcome](https://www.smallstack.site/smallstack/help/index.md): Project documentation home
- [Getting Started](https://www.smallstack.site/smallstack/help/getting-started.md): First-run setup, branding, pages, and deployment basics
- [Quick Setup (TL;DR)](https://www.smallstack.site/smallstack/help/quick-setup.md): Clone to deploy in 8 steps
- [Scenario A: Public Site, No User Login](https://www.smallstack.site/smallstack/help/theme-public-no-login.md): Use your own theme for public pages. Staff-only login for admin tools.
- [Scenario B: Public Site with User Login](https://www.smallstack.site/smallstack/help/theme-public-with-login.md): Users log in and use your app with your theme.
- [Scenario C: Build on SmallStack's Theme](https://www.smallstack.site/smallstack/help/theme-build-on-smallstack.md): Use SmallStack's built-in theme for everything.

## Tutorials

- [Build a React CRUD App](https://www.smallstack.site/smallstack/help/tutorials/react.md): Build a React frontend with SmallStack's CRUDView REST API
- [Build a Svelte Inventory Dashboard](https://www.smallstack.site/smallstack/help/tutorials/svelte.md): Build a SvelteKit inventory dashboard (auth, charts, CRUD) on SmallStack's CRUDView REST API
- [Build a SolidJS Inventory App](https://www.smallstack.site/smallstack/help/tutorials/solid.md): Build a SolidJS app (signals, resources, auth, CRUD) on SmallStack's REST API using the bundled client
- [Build a Streamlit Data App](https://www.smallstack.site/smallstack/help/tutorials/streamlit.md): Consume SmallStack's API from Python — a server-side Streamlit dashboard with server-computed metrics and charts

## SmallStack Reference

- [README](https://www.smallstack.site/smallstack/help/smallstack/readme.md): Project overview and quick start guide
- [Getting Started](https://www.smallstack.site/smallstack/help/smallstack/getting-started.md): Quick start guide and project overview
- [Prompting a coding agent](https://www.smallstack.site/smallstack/help/smallstack/prompting-coding-agents.md): Copy-ready prompts for the common getting-started tasks — phrased so the agent uses what SmallStack already provides
- [TL;DR — Clone to Deploy](https://www.smallstack.site/smallstack/help/smallstack/tldr.md): The shortest path from zero to a running site
- [Make Commands](https://www.smallstack.site/smallstack/help/smallstack/make-commands.md): Shortcut commands for development, testing, and deployment
- [Building CRUD Pages](https://www.smallstack.site/smallstack/help/smallstack/building-crud-pages.md): How to create management pages for your models using CRUDView and django-tables2
- [React + SmallStack](https://www.smallstack.site/smallstack/help/smallstack/react-getting-started.md): Connect a React frontend to SmallStack in 5 minutes — SDK setup, auth, and data fetching
- [About & Inspiration](https://www.smallstack.site/smallstack/help/smallstack/about.md): The philosophy behind Django SmallStack
- [Customization Guide](https://www.smallstack.site/smallstack/help/smallstack/customization.md): Make SmallStack your own - pages, docs, branding
- [Using the Help System](https://www.smallstack.site/smallstack/help/smallstack/help-system.md): How to add and edit documentation
- [Using the Slide Viewer](https://www.smallstack.site/smallstack/help/smallstack/slide-viewer.md): Create focused presentations from markdown files
- [Theming & Customization](https://www.smallstack.site/smallstack/help/smallstack/theming.md): Customize colors, dark mode, and components
- [Theme Architecture](https://www.smallstack.site/smallstack/help/smallstack/theme-architecture.md): How the modern-dark theme system works — variable cascade, palette design, color science
- [Theme Color Quick Reference](https://www.smallstack.site/smallstack/help/smallstack/theme-color-reference.md): Every CSS variable with current light/dark values and an AI prompt template for generating new palettes
- [Adding Your Own Theme](https://www.smallstack.site/smallstack/help/smallstack/adding-your-own-theme.md): Add a custom CSS framework alongside SmallStack's built-in theme
- [Components](https://www.smallstack.site/smallstack/help/smallstack/components.md): Blank page template — topbar, sidebar, and breadcrumbs
- [Cards](https://www.smallstack.site/smallstack/help/smallstack/cards.md): Content containers with headers and bodies
- [Buttons](https://www.smallstack.site/smallstack/help/smallstack/buttons.md): Button styles, sizes, and icon buttons
- [Forms](https://www.smallstack.site/smallstack/help/smallstack/forms.md): Inputs, selects, date pickers, file uploads, and admin layout
- [Grid Layout](https://www.smallstack.site/smallstack/help/smallstack/grid-layout.md): Multi-column responsive layouts
- [Messages](https://www.smallstack.site/smallstack/help/smallstack/messages.md): Success, info, warning, and error notifications
- [Quick Links](https://www.smallstack.site/smallstack/help/smallstack/quick-links.md): Icon-based navigation link grid
- [Navigation](https://www.smallstack.site/smallstack/help/smallstack/navigation.md): Sidebar, breadcrumbs, and page headers
- [Topbar Navigation](https://www.smallstack.site/smallstack/help/smallstack/topbar-navigation.md): Configurable horizontal nav menu in the topbar
- [Tables](https://www.smallstack.site/smallstack/help/smallstack/tables.md): HTML tables and django-tables2 styled for dark and light themes
- [Theme Bars](https://www.smallstack.site/smallstack/help/smallstack/theme-bars.md): Stacked horizontal bar data visualization
- [Settings & Configuration](https://www.smallstack.site/smallstack/help/smallstack/settings-configuration.md): Environment variables and split settings
- [Working with Timezones](https://www.smallstack.site/smallstack/help/smallstack/timezones.md): How dates are stored, displayed, and converted across timezones
- [SQLite Database](https://www.smallstack.site/smallstack/help/smallstack/database-sqlite.md): Why SQLite is the perfect default for many projects
- [Database Backups](https://www.smallstack.site/smallstack/help/smallstack/database-backups.md): Automatic and manual SQLite database backup
- [PostgreSQL Database](https://www.smallstack.site/smallstack/help/smallstack/database-postgresql.md): Scaling beyond SQLite with PostgreSQL
- [Authentication](https://www.smallstack.site/smallstack/help/smallstack/authentication.md): Built-in Django auth, signup control, and feature flags
- [Email & Password Reset](https://www.smallstack.site/smallstack/help/smallstack/email-auth.md): Configure SMTP email, password reset, and email login
- [API Tokens](https://www.smallstack.site/smallstack/help/smallstack/api-tokens.md): Self-service mint / view / revoke at /smallstack/tokens/ — permissions matrix, reveal flow, MCP integration
- [Model Explorer](https://www.smallstack.site/smallstack/help/smallstack/explorer.md): Staff-facing data browser with auto-generated CRUD from your admin registrations
- [Explorer ModelAdmin API](https://www.smallstack.site/smallstack/help/smallstack/explorer-admin-api.md): Full reference for ModelAdmin attributes that Explorer reads and supports
- [API Documentation (Swagger & ReDoc)](https://www.smallstack.site/smallstack/help/smallstack/api-documentation.md): Interactive API docs with Swagger UI and ReDoc — no packages required
- [API Doctor & Activity](https://www.smallstack.site/smallstack/help/smallstack/api-doctor.md): Health checks, per-endpoint operational view, and threat signals at /smallstack/api/
- [Search](https://www.smallstack.site/smallstack/help/smallstack/search.md): FTS5/Postgres-FTS keyword search with per-CRUDView opt-in, topbar omnibar (Ctrl+K), and an MCP tool Claude can call
- [Explorer REST API](https://www.smallstack.site/smallstack/help/smallstack/explorer-rest-api.md): Auto-generated JSON API with authentication, search, filtering, and CSV/JSON export
- [Explorer Composability](https://www.smallstack.site/smallstack/help/smallstack/explorer-composability.md): Embed Explorer displays, CRUD tables, and navigation into your own pages
- [Webhooks](https://www.smallstack.site/smallstack/help/smallstack/webhooks.md): Signed outbound delivery on model change + verified inbound receivers, with four seams for Zapier/n8n/Stripe/Slack
- [RSS / Atom Feeds](https://www.smallstack.site/smallstack/help/smallstack/feeds.md): Publish a blog, podcast or changelog as a curated RSS/Atom feed, or collect external feeds into a model on a schedule
- [Background Tasks](https://www.smallstack.site/smallstack/help/smallstack/background-tasks.md): Running tasks outside the request-response cycle
- [Scheduler](https://www.smallstack.site/smallstack/help/smallstack/scheduler.md): Recurring background jobs — declare a cron/interval cadence in code, manage it from a themed control console
- [Approvals](https://www.smallstack.site/smallstack/help/smallstack/approvals.md): A generic human-in-the-loop approval gate — apps or AI agents file a request, a person decides, your code reacts
- [Notifications](https://www.smallstack.site/smallstack/help/smallstack/notifications.md): In-app notifications — a notify() call becomes a topbar bell badge and an inbox row that links back to your page
- [User Manager](https://www.smallstack.site/smallstack/help/smallstack/user-manager.md): Built-in user management with search, profiles, activity stats, and timezone dashboard
- [Dashboard Widgets](https://www.smallstack.site/smallstack/help/smallstack/dashboard-widgets.md): Add cards to the /smallstack/ dashboard from your own apps
- [Uptime Monitoring](https://www.smallstack.site/smallstack/help/smallstack/uptime-monitoring.md): Heartbeat checks, public status page, and uptime tracking
- [Activity Tracking](https://www.smallstack.site/smallstack/help/smallstack/activity-tracking.md): Lightweight request logging with staff dashboard and automatic pruning
- [Backup Tool](https://www.smallstack.site/smallstack/help/smallstack/backup-tool.md): Visual dashboard for scheduling, running, and downloading database backups
- [Logging & Audit Trail](https://www.smallstack.site/smallstack/help/smallstack/logging-audit.md): Built-in logging and activity tracking that just works
- [Package Management](https://www.smallstack.site/smallstack/help/smallstack/package-management.md): Using UV, pip, and other package managers
- [Dependencies](https://www.smallstack.site/smallstack/help/smallstack/dependencies.md): Why we chose each package in SmallStack
- [Deployment Overview](https://www.smallstack.site/smallstack/help/smallstack/deployment.md): Understanding your deployment options
- [Docker Deployment](https://www.smallstack.site/smallstack/help/smallstack/docker-deployment.md): Local development and generic container hosting
- [Kamal Deployment](https://www.smallstack.site/smallstack/help/smallstack/kamal-deployment.md): Zero-downtime VPS deployment for small teams
- [Project Structure](https://www.smallstack.site/smallstack/help/smallstack/project-structure.md): Understanding the codebase organization
- [Extending with AI](https://www.smallstack.site/smallstack/help/smallstack/extending-with-ai.md): Using AI assistants to accelerate development
- [Custom API Endpoints](https://www.smallstack.site/smallstack/help/smallstack/custom-api-endpoints.md): Build non-CRUD API endpoints with the @api_view decorator
- [FAQ](https://www.smallstack.site/smallstack/help/smallstack/faq.md): Frequently asked questions
- [CLI Reference](https://www.smallstack.site/smallstack/help/smallstack/cli-reference.md): Every manage.py command, Make target, and system tool — with options, examples, and when-to-use
- [MCP Overview](https://www.smallstack.site/smallstack/help/smallstack/mcp.md): Model Context Protocol server for AI clients (Claude Desktop, Claude.ai Connectors)
- [Your First MCP App in 10 Minutes](https://www.smallstack.site/smallstack/help/smallstack/mcp-first-app.md): Linear walkthrough: startapp → models → CRUDView → seed → curl → Claude Desktop
- [Enable MCP for a CRUDView](https://www.smallstack.site/smallstack/help/smallstack/mcp-enable-models.md): Opt a CRUDView into the MCP factory's auto-derived tool surface
- [Writing Custom MCP Tools](https://www.smallstack.site/smallstack/help/smallstack/mcp-custom-tools.md): Add cross-cutting tools (summary, aggregate, lookup) with the @tool decorator
- [MCP Authentication](https://www.smallstack.site/smallstack/help/smallstack/mcp-auth.md): API tokens, OAuth flow, PKCE, Claude.ai Connectors UI
- [Testing MCP Tools](https://www.smallstack.site/smallstack/help/smallstack/mcp-testing.md): Patterns for tenancy, calling tools directly, HTTP-level tests
- [Debugging MCP](https://www.smallstack.site/smallstack/help/smallstack/mcp-debugging.md): mcp_doctor walkthrough, log lines, common failure modes
- [MCP Admin Pages](https://www.smallstack.site/smallstack/help/smallstack/mcp-admin.md): Health, Tools, Activity pages at /smallstack/mcp/ — browser-based admin for the MCP subsystem
- [MCP Settings Reference](https://www.smallstack.site/smallstack/help/smallstack/mcp-settings.md): Every MCP_* Django setting: default, what it does, when to change. Common configurations.
- [Connecting Claude Desktop](https://www.smallstack.site/smallstack/help/smallstack/mcp-claude-desktop.md): Connect Claude Desktop / Claude.ai Connectors UI to your MCP server
- [MCP Architecture](https://www.smallstack.site/smallstack/help/smallstack/mcp-architecture.md): The three layers (HTTP, registry, tools), file map, and where to add what

## Blog

- [Blog & Newsletter](https://www.smallstack.site/smallstack/help/blog/index.md): What a blog is here, how visibility works, and where everything lives
- [Writing posts](https://www.smallstack.site/smallstack/help/blog/writing-posts.md): Markdown support, slugs, excerpts, cover images, tags, and publishing
- [Publishing runbook pages](https://www.smallstack.site/smallstack/help/blog/publishing-runbook-pages.md): Turn an existing runbook document into a post, and keep it in sync
- [Newsletter](https://www.smallstack.site/smallstack/help/blog/newsletter.md): Subscribers, double opt-in, sending issues, bounces and deliverability
- [Feeds and APIs](https://www.smallstack.site/smallstack/help/blog/feeds-and-apis.md): RSS/Atom/JSON feeds, the public read API, the REST write API, MCP and webhooks
- [Showing posts in your own pages](https://www.smallstack.site/smallstack/help/blog/custom-pages.md): Render posts in your own templates or a separate front end, and publish from your own code

## Calendar

- [Calendar](https://www.smallstack.site/smallstack/help/calendar/index.md): What a calendar dataset is, picking calendars additively, saving a view, and the day panel
- [Declaring calendar datasets](https://www.smallstack.site/smallstack/help/calendar/calendar-datasets.md): The protocol: start/end columns, titles, status tints, access levels, and the bundled calendars
- [Feeds and the events API](https://www.smallstack.site/smallstack/help/calendar/feeds-and-api.md): Subscribe from a calendar app (.ics), the JSON events routes, saved-view REST and the MCP tools

## Optional

- [Everything in one file](https://www.smallstack.site/llms-full.txt): every page above, concatenated
- [OpenAPI schema](https://www.smallstack.site/api/schema/openapi.json): the REST API of this site
- [MCP endpoint](https://www.smallstack.site/mcp): JSON-RPC + OAuth for AI agents
- [Status](https://www.smallstack.site/status/): public uptime page
