Help & Documentation
Everything you need to get started and make the most of your project
Project Documentation
Your project's documentation
Welcome
Project documentation home
Getting Started
First-run setup, branding, pages, and deployment basics
Quick Setup (TL;DR)
Clone to deploy in 8 steps
Scenario A: Public Site, No User Login
Use your own theme for public pages. Staff-only login for admin tools.
Scenario B: Public Site with User Login
Users log in and use your app with your theme.
Scenario C: Build on SmallStack's Theme
Use SmallStack's built-in theme for everything.
Tutorials
Step-by-step guides for building with SmallStack
Build a React CRUD App
Build a React frontend with SmallStack's CRUDView REST API
Build a Svelte Inventory Dashboard
Build a SvelteKit inventory dashboard (auth, charts, CRUD) on SmallStack's CRUDView REST API
Build a SolidJS Inventory App
Build a SolidJS app (signals, resources, auth, CRUD) on SmallStack's REST API using the bundled client
Build a Streamlit Data App
Consume SmallStack's API from Python — a server-side Streamlit dashboard with server-computed metrics and charts
Blog
Blogs and newsletters — writing, publishing, feeds and email
Blog & Newsletter
What a blog is here, how visibility works, and where everything lives
Writing posts
Markdown support, slugs, excerpts, cover images, tags, and publishing
Publishing runbook pages
Turn an existing runbook document into a post, and keep it in sync
Newsletter
Subscribers, double opt-in, sending issues, bounces and deliverability
Feeds and APIs
RSS/Atom/JSON feeds, the public read API, the REST write API, MCP and webhooks
Showing posts in your own pages
Render posts in your own templates or a separate front end, and publish from your own code
Calendar
Datasets with a date axis, merged onto one month grid — saved views, feeds and the events API
Calendar
What a calendar dataset is, picking calendars additively, saving a view, and the day panel
Declaring calendar datasets
The protocol: start/end columns, titles, status tints, access levels, and the bundled calendars
Feeds and the events API
Subscribe from a calendar app (.ics), the JSON events routes, saved-view REST and the MCP tools
Dashboards
Metrics (saved filters over datasets), grid dashboards and KPI reports — built by hand or by an AI agent
How it all fits together
The pieces in the order they build on each other: dataset, metric, component, then dashboards, goal lists and reports
What is a dataset?
A named, filterable table of data: the layer between a data source and everything built on it
What is a metric?
A saved filter over a dataset, rolled up to one number: the reusable unit behind every card, goal and report row
What is a component?
A saved card: a dataset filtered for it, or a metric for a single number, drawn by one design, built once and placed on any number of dashboards
What is a dashboard?
A grid of cards over your metrics: reading one, building one, and who can see it
What is a goal list?
Key numbers against their targets, read down in a meeting: on target, at risk or missed
What is a report?
A table of metrics across periods that sorts, drills into its rows, prints and downloads
What is a playlist?
Dashboards and goal lists one after another: paged through in a meeting, or rotating on a wall screen
Weeks, captures and history
How a goal list keeps its numbers as they stood when a week, day or month ended
Dashboards
Metrics, dashboards and reports: what each is, editing a layout, the period bar, sharing
Building a metric
The metric builder: datasets, AND/OR filters, periods, aggregations, thresholds, and the stored JSON
Goals
Key numbers against their targets, in sections: on target, at risk or missed, for reading down in a meeting
Playlists
Dashboards in a sequence: page through them like slides, or rotate them on a wall screen
Agents and the API
Have an AI agent build dashboards over MCP or REST — the tools, the loop, and the access rules