Page
app/<route>/page.tsx
App Router file-based routes preserve Bubble's URL structure 1:1.
Reusable Element
React component in components/
Props in, JSX out — easier to reuse, easier to test.
Workflow
Server Action / API Route
Conditional branches become if-statements. Loops become array methods. Wait steps become awaits.
Data Type
Prisma model
Each Bubble field becomes a typed Prisma column. Option Sets become Prisma enums.
Privacy Rule
Row-level security or middleware
Enforced at the database layer instead of the rendering layer — closes a class of leaks.
API Connector
Typed fetch wrapper or SDK
Stripe, OpenAI, HubSpot, Twilio — all have first-class npm SDKs.
Custom State
useState / Zustand store
No more 'state on the page that doesn't persist' surprises.
Bubble Email
Resend / Postmark / SendGrid
10× the deliverability and templates you can version-control.