- Define routes in `src/app_server.cr` using `Lucky::Router` route declarations — each route maps to an `Action` class in `src/actions/`.
- Generate action classes with `lucky gen.action.browser Users::Index` — implement the `call` method and use `html UserPage` or `json user_json` to render responses.
- Use Avram ORM models in `src/models/` — define columns with `column name : String` and run migrations with `lucky db.migrate`.
- Define HTML pages as Crystal classes inheriting from `MainLayout` and composed of `component` classes — use `mount MyComponent, user: @user` to render sub-components.