What an app is
An app is the files your coding agent published, answering at a link of its own. Publishing again makes a new version and leaves the old version's link working.
The link
Every app has a slug, and the app answers at https://<slug>.reachpad.app/. A slug is the name, lowercased, plus a random 5-character tag: todo-k8f2m. The tag is why two people can both call an app Todo and get a working link each, with neither one made to look like a copy. It is at most 40 characters of a-z, 0-9 and single hyphens, and you can pick the readable half yourself.
Two hyphens in a row are reserved for version links: https://todo--preview.reachpad.app/_rp/preview?version=3 is version 3 of todo. A slug cannot contain --, and a handful of names a mail server or a browser would ask for first, such as www, api and mail, are not available either.
What can be in one
- A page. HTML, CSS, images and scripts, with
index.htmlanswering at the root of the link. - A document. Markdown, rendered to a page, with the Markdown kept beside it so a later read gets back what was written.
- A file. Anything else, behind a page that names it and its size.
- A server. One JavaScript module that exports
default { fetch }, called for every request to the link.
A server app can keep data. It gets a SQL database of its own, a place to store files, and the names of any secrets your organization has set: storing data in a function. A page has none of those, because it is files on a link with no code to hold a credential.
The badge on the row in your list (app, page, doc or file) is a label for the people reading that list. What actually answers a request is set on each version: page serves the files, function runs the module.
An app that shipped a page in version 1 and a server in version 2 is still one app, on one link.
Where your apps are listed
reachpad.dev/apps lists every app in your organization, newest first, with folders, starred apps, a shared-with-me list and a trash. Your own organization comes from your email address: a company address puts you with everyone else at that domain, a personal address gets an organization of its own. Accept an invitation to another one and you are in both; switch between them from the organization name at the top of the sidebar. The CLI and any connected chat work in whichever one you have current.
Reachpad asks you to verify your email address before you can publish or be given access to anything, because an invitation names a mailbox and nothing else.
Folders hold apps and other folders. Deleting a folder never deletes an app: a folder with anything still in it refuses to be deleted, so move the contents out first.
Moving an app to the trash stops its link answering. Restoring it puts the link back. Deleting it from the trash removes the app and its versions for good.
The ceilings
| Limit | Value |
|---|---|
| Apps in one organization | 200 |
| New versions of one app | 60 an hour |
| People one app is shared with | 100 |
| Files handed over inside a publish call | 2 MB in total |
| A snapshot uploaded instead of handed over | 50 MB |
| A function answering one request | 90 seconds, at most 10 of them CPU |
Each refusal names its own number, so a call that hits one says which ceiling it hit. What a server app can store is a separate set of numbers: storing data in a function.
This page as raw markdown, for an agent or a prompt: /docs/apps.md