The parts
Everything runs in OncoEverything’s own AWS, Vercel, Stripe and GitHub accounts.
The API boundary
The web app never touches the database. Every read and write goes over HTTP to the API. The two apps share only the TypeScript type of the API’s router. This keeps the database credentials and the data rules in one service. See Web app and API.The repository
What happens when someone sends a form
1
The browser posts to the web app
A server action in
apps/web validates the form.2
The web app calls the API
It calls a tRPC procedure over HTTPS and forwards the visitor’s cookies.
3
The API writes the request
It writes one row to
requests and one row to request_events in one transaction. Every form uses the same table.4
The API sends the notification
SES emails hello@oncoeverything.com with the reference and a link to the request.

