Buster is an open-source platform for deploying AI data analysts
Go to file
dal 362955e1b3
Merge pull request #1267 from buster-so/staging
gateway model fix
2025-10-08 13:42:11 -06:00
.claude Update dataset sample handling and add new API routes 2025-09-19 10:06:03 -06:00
.cursor/rules Merge remote-tracking branch 'origin/staging' into dallin/bus-1498-piece-together-docs-agent-with-instructions-tools-workflow 2025-07-25 19:10:19 -06:00
.github always release 2025-09-26 16:06:55 -06:00
.vscode Merge remote-tracking branch 'origin/staging' into move-search-to-turbo-puffer 2025-09-09 00:34:16 -06:00
actions Update action.yml 2025-09-26 12:33:23 -06:00
apps test fix 2025-10-08 13:01:41 -06:00
assets few read me changes 2025-04-22 07:58:03 -06:00
ee docker compose licenses and readme 2024-09-10 17:09:57 -06:00
packages gateway model fix 2025-10-08 13:41:14 -06:00
scripts Revert "merge" 2025-09-24 21:43:54 -06:00
.DS_Store Move to scoped database imports 2025-09-18 12:36:37 -06:00
.dockerignore try for docker build again 2025-08-19 11:14:30 -06:00
.env.example Merge remote-tracking branch 'origin/staging' into move-search-to-turbo-puffer 2025-09-06 14:36:59 -06:00
.gitignore Added additional variable to turbo 2025-09-11 21:30:22 -06:00
.pnpmrc Mastra braintrust (#391) 2025-07-02 14:33:40 -07:00
.release-please-config.json fix: update README 2025-01-16 14:37:32 -07:00
AGENTS.md fix: done tool streaming 2025-09-29 21:23:15 -06:00
CLAUDE.md top level imports and such moved 2025-10-08 10:43:24 -06:00
LICENSE chore: update license to Business Source License 1.1 2025-08-20 09:14:05 -06:00
Makefile dev mode and env example update 2025-05-07 18:53:53 -06:00
README.md CLAUDE.md and README.md updates... 2025-09-15 15:06:41 -06:00
SECURITY.md Create SECURITY.md 2024-12-04 19:21:14 -08:00
biome.json core biome cleanup 2025-09-23 22:13:41 -06:00
biome2.json core biome cleanup 2025-09-23 22:13:41 -06:00
bunfig.toml .txt files 2025-09-10 12:35:14 -06:00
docker-compose.yml posthog telemetry for domain name 2025-05-12 11:11:51 -06:00
package.json introspect data 2025-10-03 15:49:21 -06:00
pnpm-lock.yaml Merge remote-tracking branch 'origin/staging' into docs-agent 2025-10-08 12:53:58 -06:00
pnpm-workspace.yaml tracing and build and bug fixes 2025-10-08 12:53:53 -06:00
tsconfig.json ok state and now I need to clean things up vim mode and linting and such 2025-10-03 12:44:09 -06:00
turbo.json Update turbo dependancy builds 2025-09-25 17:01:38 -06:00
vitest.config.ts all changes 2025-09-08 08:07:51 -06:00

README.md

Buster

A modern data analytics platform that enables teams to interact with their data through AI-powered conversations, beautiful dashboards, and automated insights.

Quick Start

Prerequisites

  • Node.js 20+
  • pnpm 9+
  • PostgreSQL (via Supabase local or cloud)

Setup

  1. Clone the repository
git clone https://github.com/buster-so/buster.git
cd buster
  1. Install dependencies
pnpm install
  1. Set up environment variables
cp .env.example .env
# Edit .env with your configuration
  1. Start development servers
turbo dev

The application will be available at:

Architecture Overview

Buster follows a modular monorepo architecture where:

  • Packages are standalone building blocks containing reusable logic and types
  • Apps assemble packages to create user-facing applications

Apps

App Description Stack
@buster-app/web Main web application TanStack Start, React
@buster-app/server API server Node.js, Hono
@buster-app/trigger Background job processor Trigger.dev v3
@buster-app/cli Command-line interface TypeScript, Bun
@buster-app/electric-server Real-time sync server Electric SQL
@buster-app/api Legacy API (being migrated) Rust (deprecated)

Core Packages

Package Purpose
@buster/database Database schema, migrations, and ALL query logic (Drizzle ORM)
@buster/server-shared API contracts, request/response types
@buster/data-source Customer database connectors (PostgreSQL, MySQL, BigQuery, Snowflake)
@buster/ai AI agents and workflows (AI SDK v5)
@buster/access-controls Permission and security logic

Development

Commands

All development commands use Turbo for optimal caching and parallelization:

# Building
turbo build                          # Build entire monorepo
turbo build --filter=@buster/ai      # Build specific package

# Linting
turbo lint                           # Lint entire monorepo
turbo lint --filter=@buster-app/web  # Lint specific app

# Testing
turbo test:unit                      # Run all unit tests
turbo test:unit --filter=@buster/database  # Test specific package

# Development
turbo dev                            # Start all dev servers
turbo dev --filter=@buster-app/web   # Start specific app

Development Workflow

  1. Write tests first - Follow test-driven development
  2. Check types - Run turbo build to ensure type safety
  3. Lint code - Run turbo lint to maintain code quality
  4. Run tests - Run turbo test:unit before committing

Testing

Tests are colocated with source files:

  • file.test.ts - Unit tests
  • file.int.test.ts - Integration tests
turbo test:unit        # Fast, isolated unit tests
turbo test:integration # Tests with external dependencies

Database

For local development with Supabase:

# Start Supabase locally
npx supabase start

# Run migrations
turbo db:migrate

# Access database
psql "postgresql://postgres:postgres@127.0.0.1:54322/postgres"

Contributing

Code Style

We follow functional programming principles:

  • Pure functions over classes
  • Immutable data structures
  • Type-safe with Zod schemas
  • Modular, composable code

Pull Request Process

  1. Create a feature branch
  2. Write tests for new functionality
  3. Ensure turbo build lint test:unit passes
  4. Submit PR with clear description
  5. Address review feedback

Documentation

  • Each package/app has its own README.md
  • CLAUDE.md files provide AI assistant guidance
  • Keep documentation close to code

Project Structure

buster/
├── apps/                 # User-facing applications
│   ├── web/             # Main web application
│   ├── server/          # API server
│   ├── trigger/         # Background jobs
│   └── cli/             # Command-line tools
├── packages/            # Reusable modules
│   ├── database/        # Database layer
│   ├── server-shared/   # API contracts
│   ├── data-source/     # Data connectors
│   └── ai/              # AI capabilities
├── turbo.json           # Turbo configuration
├── package.json         # Root package.json
└── .env.example         # Environment template

Tech Stack

  • Frontend: React, TanStack Start, TailwindCSS
  • Backend: Node.js, Hono, TypeScript
  • Database: PostgreSQL (Supabase), Drizzle ORM
  • AI: OpenAI, Anthropic, AI SDK v5
  • Background Jobs: Trigger.dev v3
  • Testing: Vitest
  • Build: Turborepo, pnpm

Migration Notice

Note: The Rust API (apps/api) is legacy code being migrated to TypeScript. All new development should use the TypeScript stack in apps/server.

License

[License information]

Support

[Support channels and documentation links]