$ show Budibase/budibase
Budibase is an open-source low-code platform for building AI agents, internal applications, and automations. It provides a visual builder (Svelte frontend) for designing screens, data models, and workflows, backed by a Koa.js server and worker services. The platform supports multi-tenancy, self-hosting via Docker/Kubernetes, and a cloud offering. Core capabilities include a drag-and-drop app builder, an automation engine with triggers and steps, AI agent creation with LLM integration and knowledge bases, external datasource connectivity (REST, SQL, NoSQL, S3, etc.), role-based access control, SCIM provisioning, and audit logging. The architecture follows a monorepo pattern with distinct packages for server, worker, builder, client, pro features, CLI, and shared libraries, using CouchDB as the primary document store, Redis for caching/queues, and S3/MinIO for object storage.
The LLM identified 7 files worth highlighting for reuse:
Base class for Svelte stores with persistence and derived store support. Provides a reusable pattern for managing application state with writable and derived stores, enabling clean separation of concerns in the frontend.
Fluent API for defining Koa routes with middleware chains. Encapsulates route registration, method chaining, and middleware composition, making API endpoint definitions concise and consistent across the server.
Standardized event publishing system with typed publishers for various domain events (user, app, automation, etc.). Enables consistent telemetry, audit logging, and async processing through a unified interface.
Test configuration class that sets up tenant isolation, API helpers, and database state for integration tests. Provides a reusable pattern for writing robust backend tests with minimal boilerplate.
Modular, dependency-injected store architecture for complex data grid components. Each store (sort, cache, validation, filter) is independently reusable and composable, demonstrating advanced Svelte store patterns.
Converts Handlebars templates to JavaScript expressions with a preprocessor pipeline. Handles escaping, function binding, and dynamic evaluation, providing a reusable templating engine for dynamic content generation.
Abstract class for processing jobs with Bull/Redis queues. Provides synchronous execution, error handling, and concurrency control, enabling reusable background job processing across the platform.