The App object
When you create or read a App withPOST /api/apps or GET /api/apps/{id}, the API returns an App object:
Templates
Every new App starts from a template. If you omittemplate_id when calling POST /api/apps, Judt uses the default Hello template.
To list available templates and their id values, call GET /api/templates:
id as template_id when you create the App:
/app the first time the sandbox starts.
Slugs, custom domains, and URLs
Every App has aslug that determines its .judt.dev address:
slug when you create an App, Judt generates a three-word slug such as plucky-teal-tatooine.
Slug rules
A slug must meet these rules:- Contain
1to48characters. - Use only lowercase ASCII letters (
a-z), digits (0-9), and hyphens (-). - Start and end with a letter or a digit (
^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$). - Be unique across all Apps on Judt, including soft-deleted Apps.
- Not use a reserved name:
staging,preview,api,www, orlocal.
409 slug_unavailable.
Rename a slug
You can change an App’sname or slug with PATCH /api/apps/{id}:
slug or production while a deployment is in progress (409 deployment_unsettled).
Custom domains
When a custom domain is configured on an App, thedomain field contains that hostname and url returns https://<domain>. The https://<slug>.judt.dev address continues to serve the App alongside the custom domain.
Production status
Theproduction.status field reports the live state of the published App:
The
production.deployment_id field shows which deployment (dep_...) is currently serving in production.
Delete an App and 30-day retention
To delete an App, sendDELETE /api/apps/{id}:
- Sets
deleted_atto the current timestamp. - Unpublishes the production deployment so the App URL stops serving traffic.
- Stops and removes the development sandbox.
- Rejects any new writes, commands, previews, or deployments with
410 app_deleted.
GET /api/apps?include_deleted=truelists soft-deleted Apps alongside active Apps.GET /api/apps/{id},GET /api/apps/{id}/commits,GET /api/apps/{id}/deployments,GET /api/apps/{id}/events, andGET /api/apps/{id}/logscontinue to work.
Next steps
- Edit files and run commands in Sandboxes.
- Publish a commit to production in Commits and deployments.
- Configure
public,password, orprivateaccess in Previews and access.