What you’ll have
- A Kanban board at
/with three columns and a few cards - Styling in both light and dark mode, with a working toggle
- Material icons on the header and buttons
- Hot reload: CSS updates without a refresh, templates trigger one
Which parts of Feather this uses
Component macros
The
icon macro, imported into the template and called like a function.Dark mode
A cookie-backed toggle that’s already wired into the scaffolded base layout.
Step 1: Scaffold
simple app, no database,
background jobs on the thread backend that this part never touches.
Step 2: Run the prompt
Give this to your assistant from inside thekanban directory.
The prompt
Step 3: Test it
- Three columns render, each with its cards, and the last one shows an empty state.
- The dark mode toggle in the header switches themes, and nothing looks broken in either.
- Icons render on the header and the buttons.
- Change a colour in
static/css/app.cssand watch it update without a refresh.
What the framework did
The route is three lines of real work.@page.get("/") registers it, and Feather
discovers the module because it’s in routes/pages/. There’s no blueprint to register and
no import to add. See Routes.
The template extends a base it didn’t write. base.html came from the scaffold, and
it already loads HTMX, the Vite client and the dark mode script. Extending it is what gets
you a working toggle without any JavaScript of your own.
The styling went into a stylesheet. Feather prefers CSS classes with
@apply over utility classes in templates, so a restyle happens in one file. If your
assistant reached for utilities in the markup, feather check flagged it as the
inline-tailwind warning and it should have moved them. See Dark mode
for the dark: conventions.
Next: make it persist
A database, and buttons that actually do something.