Kite docs

Screens

Every screen Kite ships, and which ones are load-bearing.

Volume is not the differentiator — a competitor ships fourteen dashboards. Four of these carry the product; the rest is expected furniture that has to exist so nobody can call it incomplete.

Dashboards

ScreenRouteWhat it is for
Analytics/Revenue, funnel, channels, top products, activity, recent orders, status donut. Seven distinct shapes — a page of identical cards reads as filler.
Projects/projectsAnswers "is the work on track" rather than "how much money" — milestones, workload, burndown, issue mix, releases, risks.

Resources load-bearing

One set of screens serves orders, customers and products. See Adding a resource.

ScreenRouteNotes
List/ordersServer-side paging, search and status filters. Currency columns keep numeric sort. Row action opens the record.
Detail/orders/:idAddressable — a real URL you can send someone. Breadcrumb, tone-coded status, edit and delete.
Create / edit/orders/new, /orders/:id/editOne screen. The only difference is whether an id was supplied.

Auth load-bearing

Sign in, sign up, forgot password, OTP and lock — at /sign-in, /sign-up, /forgot-password, /verify and /lock. Wired to a real route guard, not decorative forms.

Apps

ScreenRouteNotes
Inbox/inboxSplit list/detail with unread weighting and a star toggle. On mobile the detail is a full-screen push, not a squeezed column.
Board/boardReal drag-and-drop between columns, with counts updating. Most free Flutter kanbans cannot be dragged.
Calendar/calendarMonth view with an agenda — severity stripes and attendee avatars.
Chat/chatConversation list with presence, bubbles that know their side, a composer that appends and scrolls.

Build

ScreenRouteNotes
Components/componentsThe showcase. Every control is real and stateful — flip the switches, drag the slider, open the drawer.
Forms/formsEvery input with real validation, which is where most free templates stop.
Wizard/wizardFour steps. You cannot advance past an invalid step, and going back never loses what you typed.
Settings/settingsTheme, accent, language, account, data source.
Profile/profileIdentity, editable details, notification switches, danger zone.

System

404 for anything unrouted, and /500 for server errors. They are separate screens on purpose: a 404 says "this does not exist", a 500 says "it exists and we broke it" — different message, different recovery.

States

Every data-backed screen has honest empty, loading and error states from shared/widgets/states.dart. Free templates habitually stop at the happy path; these three are the difference between a screenshot and something shippable.