Skip to content

Coming from Tadabase

Pages: the builder vs Vibe

A page used to be a saved layout. In Vibe it is a file of code.

What a "page" is now

In the Tadabase builder a page is data: a row in your app's pages table holding a JSON layout of rows, columns, and components, wrapped by a layout for the header, footer, and menu. The server renders it.

In Vibe a page is code: a single React file under src/pages/, one file per route. There is no drag-drop canvas and no page JSON — the agent writes and edits these files for you, and you can read or hand-edit them any time.

Builder pageVibe page
Stored asJSON layout in the pages tableA .tsx file in src/pages/
Rendered byThe Tadabase page rendererReact Router in your app
Built byDrag-drop componentsThe agent (as code)
Detail / edit / addSeparate child pagesRoutes like /:id and /:id/edit

Routing and navigation

When Vibe scaffolds from a table it typically generates four routes — a list, a new-record form, a detail view, and an edit form:

text
/customers            → list
/customers/new        → create form
/customers/:id        → detail
/customers/:id/edit   → edit form

Routes are registered in src/App.tsx (one <Route> each). The sidebar is a plain list in tada.config.json — add an entry there to make a route show up in the nav.

Where access control lives

Two layers, and only one of them moves. Data-level security — which records and fields a user can see — stays server-side in Tadabase RLS and is identical for both page types. What changes is page-level gating: the builder's "restrict to logged-in / allow roles" page settings become a <Protected> route wrapper in your React code.

Ready to build

Skip the docs.
Just describe it.

Tadabase AI builds it, hosts it and keeps it running. Real backend, real domain, real app.

Start Building