Budibase Project Structure

The open-source low-code platform for building internal tools. A highly modular TypeScript monorepo using Svelte for the UI and Koa for the backend.

Updated 2025-12-30

#budibase #typescript #svelte #koajs #monorepo #couchdb #low-code
PNGPDF

Project Directory

budibase/
packages/
Monorepo Workspaces
server/
Koa API Server
builder/
Design Interface (Svelte)
client/
App Runtime (Svelte)
backend-core/
Shared backend logic
bbui/
Internal UI library
hosting/
Deployment configs (CouchDB, Docker)
lerna.json
package.json
yarn.lock

Repository Info

Tech Stack

  • Language-TypeScript
  • Frontend-Svelte
  • Backend-Node.js (Koa)
  • Database-CouchDB / PouchDB
  • Monorepo Tool-Nx + Lerna
  • Styling-Tailwind CSS

Architecture Notes

Budibase uses a very clean separation between its 'Builder' (where you design apps) and its 'Client' (the runtime that actually executes the apps). Both are built with Svelte. The backend is a Koa server that interacts with CouchDB. This architecture allows Budibase apps to have excellent performance and even offline capabilities thanks to the CouchDB/PouchDB synchronization model.

Key Directories

  • packages/builder/-The Svelte-based editor. This is where the complex drag-and-drop and app configuration logic lives.
  • packages/client/-The runtime engine. It's a lightweight Svelte application that knows how to interpret Budibase app definitions and render them.
  • packages/server/-The main API. It handles authentication, plugin management, and proxies requests to external data sources.

Why This Structure?

Budibase is one of the largest and most successful Svelte applications in the world. It's a great example of how to build a highly interactive 'Builder' type of application using a modern, reactive framework.

Share this template

Related Templates

© 2025 FolderStructure.dev