~/nouns
a REST API that builds REST APIs.
you make API calls. nouns builds the backend. no migrations, no models, no deploys, no Python.
define a noun. enable some actions. start CRUD-ing. that's the entire workflow. your frontend can ship today.
try it now see an example self-host
# one customer = one developer account.
POST /customers/signup
{ "email": "you@example.com", "password": "..." }
# → token + your customer uuid (lives in your app's URLs).
POST /apps
{ "slug": "todo" }
POST /apps/todo/nouns
{
"name": "task",
"fields": { "title": "string", "done": "bool", "priority": "int" },
"enabled_actions": ["list", "create", "partial_update", "destroy"],
"filterable_fields": ["done"]
}
# your end-users sign up at:
POST /<your_uuid>/todo/auth/signup
# they CRUD their tasks at:
POST /<your_uuid>/todo/task # create
GET /<your_uuid>/todo/task # list (?done=false works)
PATCH /<your_uuid>/todo/task/<id> # update
DELETE /<your_uuid>/todo/task/<id> # delete
go build the frontend. you're done back here.
public_read toggle when you want everyone to see itreference:<other-noun>, get inline expansion via
?expand=field, and protected deletes (no dangling
references)they show up when someone actually needs them.
the easiest way: just sign up at the hosted admin and start defining nouns. your end-users CRUD their records at the CRUD client.
prefer to self-host?
git clone <repo> nouns
cd nouns/api
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
.venv/bin/python manage.py migrate
.venv/bin/python manage.py runserver 127.0.0.1:8766
then visit the CRUD client at
localhost. full deploy walkthrough in DEPLOY.md.