App Builder

New

Turn your backend into a usable app — no second codebase. Admins compose pages from 27 configurable block types (tables, wizard forms, kanban, charts, tabs, modals, reports, and more) with click-to-select reactivity between blocks, and every role uses those pages as their daily workspace, all governed by the permissions you already have.

27
Block Types
12-col
Responsive Grid
In-place
WYSIWYG Editing
RBAC
Permission-Governed

An Internal Tool Builder, Built In

Pages are rows of data-bound blocks — the builder and the end-user view are the same components, not two apps.

Most teams end up writing a separate admin app on top of their backend. Baasix removes that step. Admins add pages to the navigation menu and fill each one with blocks — a table over your orders collection, a kanban grouped by status, a form that creates records, a chart that aggregates on the server. Configuration is stored in the database (in the baasix_Page and baasix_Block system collections), so it is versionable, exportable, and editable through the UI, the SDK, or AI. Non-admin roles see only the pages they are allowed to read; admins get an in-place “Editing” toggle to add, configure, move, and delete blocks live on the page.

  • 27 block types: tables, forms, kanban, calendar, charts, cards, maps (Leaflet or Google), geocharts, feeds, media, timelines, progress gauges, repeaters, reports, tabs, containers, modals, rich text, inputs, and more
  • In-place WYSIWYG editing — the builder and the rendered app are the same components
  • Every data block binds to a collection and rides your existing RBAC and row-level conditions
  • 12-column grid that collapses to a clean stacked layout on mobile
  • Public pages for forms and dashboards reachable without login (with optional human-check)
  • Cross-block reactivity: clicking a row/card/event drives sibling details, charts and forms — plus filter and input blocks
  • Nested layout with tabs, collapsible containers, and action-opened modals
  • Server-side config validation on every save — no broken pages

Compose Pages from Blocks

Pick a block, bind it to a collection, drop it on the grid. That's a page.

Each block carries a JSON config describing what it shows — columns, fields, group-by, aggregation, filters, row actions — and a position on the 12-column grid. Filters everywhere use the same items-API filter DSL you already know from permissions and queries.

// A page is rows of blocks; blocks bind to collections.
// Create one over the SDK (or build it visually in the UI editor):

const page = await baasix.items('baasix_Page').create({
  name: 'Operations', slug: 'operations', icon: 'gauge',
})

await baasix.items('baasix_Block').create({
  page_Id: page.id,
  type: 'table',
  collection: 'orders',
  position: { row: 0, col: 0, span: 8 },
  config: {
    columns: [{ field: 'id' }, { field: 'customer' }, { field: 'total' }],
    filter: { status: { eq: 'open' } },
    actions: { create: true, edit: true, view: true },
  },
})
// Renders at /pages/?slug=operations — public pages at /p/?slug=...

Why Build Apps in Baasix?

You could ship a separate admin app. Here's the difference.

✓ With Baasix

  • Pages and blocks bind directly to your collections and schema
  • One permission system governs data, pages, and blocks
  • In-place editing — no separate builder app to keep in sync
  • Config lives in the database: exportable, importable, AI-editable
  • Public form pages, dashboards, and role homepages out of the box

✗ Traditional Approach

  • Hand-build a second app and wire every screen to the API
  • Re-implement auth and access checks in the admin app
  • Maintain builder and renderer as two diverging codebases
  • Hardcode layouts that can only change with a deploy
  • Build form handling, rate limiting, and dashboards yourself

A Block for Every View

Tables & Wizard Forms

Data grids with filters, sorting, inline edit, bulk actions and row actions; forms with multi-step wizards, conditional fields, and widgets like ratings, sliders and signature pads.

Kanban & Calendar

Drag-to-update kanban boards grouped by a field, and calendars mapped to date fields with month/week/day views.

Charts, Stats & Reports

Nine chart types with server-side aggregation, progress bars and radial gauges vs targets, and report tables over aggregate/group-by queries with CSV export.

Maps & Geocharts

Leaflet or Google Maps with clustered markers and popups, plus choropleth world geocharts that shade countries by an aggregated value.

Reactivity & Master-Detail

Clicking a row, card, event or marker drives sibling blocks — details, forms, charts — via record sources and $selection filters; filter and input blocks refine everything else.

Layout, Content & More

Tabs, collapsible containers and modals for structure; card lists, media galleries, realtime feeds, timelines, repeaters, rich text (lexical), markdown, buttons, iframes, uploads and a code viewer.

What You Can Build

From a quick internal dashboard to a full role-based workspace.

Internal Admin Tools

Ops dashboards, CRM-style record views, and back-office workflows over your existing collections — no separate app to maintain.

Internal ToolsDashboardsCRM

Role-Based Workspaces

Give each role its own homepage and curated menu. Support sees tickets, sales sees the pipeline, all from the same backend.

RBACMulti-roleWorkspaces

Public Forms & Portals

Contact forms, intake flows, and public dashboards on unauthenticated pages, with rate limiting and an optional human-check.

Public PagesFormsPortals

Data Apps & Reports

Charts, geocharts, kanban and calendars that aggregate live data — built and tweaked in minutes by a non-developer admin.

AnalyticsReportingLow-code

Portable & AI-Ready

Move apps between instances, and let AI assemble them for you.

Export any set of pages as a self-contained page bundle (pages + blocks + the collections they need) and import it on another instance with a validation preview that flags missing collections, slug conflicts, and unresolved references. Because the whole thing is plain config, AI assistants can build pages for you: the MCP server exposes dedicated page/block tools plus a live block-config reference, so you can ask Claude or Copilot to “build an orders dashboard with a table and a status chart” and get a working, validated page.

  • Page bundle export/import with a dry-run validation report (missing collections, slug conflicts)
  • MCP page-builder tools: create/update pages and blocks from natural language
  • Live block-config reference resource so AI generates valid configs
  • Build over the SDK with the generic items() API — no special client needed

App Builder FAQ

Who can build and edit pages?

Only administrators see the in-place UI editor and can create, update, or delete pages and blocks. Other roles get read-only access governed by baasix_Permission — the sidebar menu is simply "the pages this role is allowed to read".

Do blocks bypass my permissions?

No. Every data block goes through the same collection permissions and row-level conditions as any other API request. A block over a collection a role cannot read renders an empty/error state — it never leaks data.

Is this a drag-and-drop canvas like Appsmith?

It is a block-based grid, not a free-form canvas. Pages are rows of blocks on a 12-column grid (nestable inside tabs, containers and modals) that collapses to a stacked layout on mobile — simpler to reason about, and it maps cleanly onto your schema and permissions.

Can blocks react to each other?

Yes. Clicking a table row, card, calendar event or map marker publishes that record as a selection; sibling blocks follow it through a record source or $selection filter placeholders — no expression language needed. Input blocks add ad-hoc text/select/date/toggle controls that drive any block’s filters.

How do I move an app between environments?

Export a page bundle (pages + blocks + required collection names) as JSON and import it on the target instance. The importer runs a dry-run first, reporting missing collections, missing fields, and slug conflicts so you can resolve them before writing.

Can AI build pages for me?

Yes. The MCP server exposes baasix_create_page, baasix_create_block, baasix_validate_block_config and related tools, plus a block-config reference resource, so AI assistants can assemble and validate pages from a natural-language request.

Ready to build faster?

Join developers who are shipping production-ready backends in hours, not weeks.