~/nouns

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


how it works

1. sign up. get a key.

# one customer = one developer account.
POST /customers/signup
{ "email": "you@example.com", "password": "..." }

# → token + your customer uuid (lives in your app's URLs).

2. make an app.

POST /apps
{ "slug": "todo" }

3. define a noun.

POST /apps/todo/nouns
{
  "name": "task",
  "fields": { "title": "string", "done": "bool", "priority": "int" },
  "enabled_actions": ["list", "create", "partial_update", "destroy"],
  "filterable_fields": ["done"]
}

4. that's it. you have a backend.

# 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.


what's in the box


what's not in the box (yet)

they show up when someone actually needs them.


get started

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.