Skip to main content
This section is for developers. The rest of the handbook covers using the admin.

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

It is a Bun workspace with Turborepo. See Local development to run it.

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.