cicadel

The perfectionist structure of Django,
hold the weight.

Same app, same machineCicadelDjango
Container imageSmaller is better
35 MB
320 MB
Memory at idleDjango with 1 worker, its smallest
24 MB
86 MB
Requests per secondDjango with 10 workers, its fastest
23,000
10,300
Median responseSame page, same database
1 ms
2 ms

Measured on the standard Cicadel project and vanilla Django 6.1 with gunicorn, both on PostgreSQL with auth, sessions and CSRF. How we measured →

Apps, models, migrations, forms and accounts, built in Go. Your whole application compiles into one small binary that starts instantly and runs on modest hardware.

By hand
go run github.com/fauzaanu/cicadel/cmd/cicadel@v0.2.3 startproject myapp example.com/myapp
cd myapp && go run manage.go migrate
go run manage.go runserver
With an agent
Read https://cicadel.fauzaanu.com/en/0.2.3/llms.txt.
Set up a new Cicadel v0.2.3 project in ./myapp with module example.com/myapp.
Configure PostgreSQL, run the migrations and checks, start the
development server, and tell me the URL and what you set up.

Inspired by Django

Cicadel borrows the ideas that made Django productive. If you know Django, you will recognise the shape. The differences are on purpose: everything is typed, explicit and checked before it runs.

ConceptDjangoCicadel
Commandsmanage.pymanage.go
Settingssettings.pyTyped settings, checked at startup
URLsurls.pyurls.go with named routes
Modelsmodels.py + makemigrationsGORM models + recorded SQL migrations
TemplatesTemplate filesTyped .templ components
FormsForm / ModelFormTyped forms and model forms
Authdjango.contrib.authThe accounts app
SignalsSignalsTyped, validated events
AppsINSTALLED_APPSproject/apps.go

How a request flows

Every layer is plain Go. Nothing is discovered by magic: you register it, and the compiler checks it.

How a request flows through a Cicadel applicationA browser request passes through middleware, then the URL router, to your view. The view reads and writes models in PostgreSQL, renders a typed component, and the HTML response returns to the browser.BrowserGET /notes/Middlewaresession · CSRFurls.gonamed routesViewyour handlerComponenttyped .templModelsGORM · PostgreSQLquery · saveHTML response · security headers added

First steps

Create an application and set up your coding agent.

Topic guides

Understand each layer of your application.

How-to guides

Follow focused workflows for common tasks.

API reference

Look up contracts, commands and supported behavior.

Releases and stability

Current release, stability guarantee and changes.

Building the framework itself?

Design decisions, the philosophy and contributor guides live in Framework design and contributing.

Type to search this version.