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
| Screen | Route | What 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 | /projects | Answers "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.
| Screen | Route | Notes |
|---|---|---|
| List | /orders | Server-side paging, search and status filters. Currency columns keep numeric sort. Row action opens the record. |
| Detail | /orders/:id | Addressable — a real URL you can send someone. Breadcrumb, tone-coded status, edit and delete. |
| Create / edit | /orders/new, /orders/:id/edit | One 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
| Screen | Route | Notes |
|---|---|---|
| Inbox | /inbox | Split list/detail with unread weighting and a star toggle. On mobile the detail is a full-screen push, not a squeezed column. |
| Board | /board | Real drag-and-drop between columns, with counts updating. Most free Flutter kanbans cannot be dragged. |
| Calendar | /calendar | Month view with an agenda — severity stripes and attendee avatars. |
| Chat | /chat | Conversation list with presence, bubbles that know their side, a composer that appends and scrolls. |
Build
| Screen | Route | Notes |
|---|---|---|
| Components | /components | The showcase. Every control is real and stateful — flip the switches, drag the slider, open the drawer. |
| Forms | /forms | Every input with real validation, which is where most free templates stop. |
| Wizard | /wizard | Four steps. You cannot advance past an invalid step, and going back never loses what you typed. |
| Settings | /settings | Theme, accent, language, account, data source. |
| Profile | /profile | Identity, 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.