- Define handlers as methods on a struct or functions taking (*fiber.Ctx) error.
- Register RESTful routes using app.Get/Post/Put/Delete("/api/{resource}", handler) for public and "/api/auth/{resource}" for protected.
- Use fiber.StatusOK, fiber.StatusUnauthorized etc. in responses via c.Status().JSON().
- Group routes with dedicated fiber.Router functions like NewAuthentication(app fiber.Router).
- Extract data from c (e.g., params, body) before processing.
- Use `c.BodyParser(&payload)` for typed request body parsing and `c.Params("id")` for route parameters.
- Create middleware with `func(c *fiber.Ctx) error` signature — call `c.Next()` to pass control to the next handler.
- Group routes with `app.Group("/api/v1")` and apply middleware per group for versioned APIs.
- Use `c.Status(201).JSON(response)` for typed responses — chain status and body in a single call.