caramel
Skip to content
Browse documentation
Guides / Project structure

A place for every change.

Start with your intention. Caramel’s conventions give it a home, and its tools help you check the result.

What are you changing?

Add or change an endpointconfig/routes.crapp/actions/

Declare the route, then its typed contract and behavior. Keep the response and failure cases in a request spec.

frappe routes · frappe check · frappe corretto

Meet the framework

FrappéYour developer command line
LatteLocal services and named HTTPS
SugarORMSchemas, changesets, and queries
Blueprint viewsHTML written in typed Crystal
Cold BrewPostgreSQL-backed background work
CorrettoApplication tests with real data
Application code is the extension point

Keep changes in your application’s files. When the public API does not support a task, identify the gap before changing framework internals.