App Builder

New

Turn your backend into a usable app — no second codebase. Admins compose pages from configurable blocks (table, form, kanban, calendar, chart, map, and more) on a simple grid, and every role uses those pages as their daily workspace, all governed by the permissions you already have.

17
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.

  • 17 block types: table, form, details, kanban, calendar, chart, cardlist, map, geochart, markdown, filter, buttons, media, feed, iframe, upload, code
  • 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)
  • Filter blocks drive sibling blocks; master-detail wiring via URL params
  • 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 & Forms

Data grids with filters, sorting, inline edit, bulk actions and row actions; forms that create or edit records with sections and validation.

Kanban & Calendar

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

Charts & Stats

Nine chart types (bar, line, area, pie, doughnut, radar, polar, treemap, stat) with server-side aggregation, time ranges and compare deltas.

Maps & Geocharts

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

Filters & Master-Detail

Filter blocks publish state to sibling blocks; any block filter can read a URL param to wire selection-driven detail views.

Feeds, Media, Cards & More

Card lists, media galleries, realtime feeds/threads, markdown, buttons, iframes, uploads and a code/JSON 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 that collapses to a stacked layout on mobile — simpler to reason about, and it maps cleanly onto your schema and permissions.

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.