BigBase Documentation

Everything you need to build and scale applications with BigBase. Single-binary backend platform with Auth, Database, Storage, Functions, Messaging, Deploy, Realtime, and Git Repos.

Quick Start

Download the binary and start the server. BigBase runs as a single binary with zero external dependencies.

$ go run . serve --port 8080 --db bigbase.db

Open /admin/ to access the admin dashboard. Register an account and start building.

For Google OAuth support:

$ go run . serve --port 8080 --db bigbase.db --google-client-id YOUR_ID --google-client-secret YOUR_SECRET

Build from source

BigBase requires Go 1.22+.

$ git clone https://github.com/danielvm-git/bigbase
$ cd bigbase
$ go build -o bigbase .
$ ./bigbase serve --port 8080

Configuration

Flags

FlagDefaultDescription
--port8080HTTP server port
--dbbigbase.dbSQLite database path
--google-client-idGoogle OAuth client ID
--google-client-secretGoogle OAuth client secret

Database

By default BigBase uses SQLite. To switch to PostgreSQL, rename or symlink bigbase.db to a PostgreSQL connection string (coming in a future release).

CLI Reference

CommandDescription
bigbase serveStart the HTTP server (flags: --port, --db, --google-client-id, --google-client-secret)
bigbase versionShow the current version
bigbase statusShow kernel and component status
bigbase components listList all registered ECC components
bigbase helpShow help text

Admin UI

BigBase ships with a full-featured admin dashboard at /admin/.

Pages

RouteDescription
#/Dashboard with system stats, charts, and activity feed
#/dataData Studio — browse database collections and records
#/sqlSQL Editor — run arbitrary SQL queries
#/usersUser management — list and delete users
#/reposGit Repos — CRUD for Git repositories
#/deployDeployments — Git-based deployment with CI/CD
#/storageStorage — file upload, download, and management
#/messagingMessaging — email, SMS, and push notifications
#/functionsFunctions — serverless JavaScript runtime
#/forgeForge — issue tracker and Kanban board
#/ciciCI/CD — workflow configuration and run logs
#/monitoringMonitoring — system metrics, logs, and alerts

API Reference

All API endpoints are served under /api/. Authentication is handled via JWT tokens set as HTTP-only cookies.

Auth

MethodPathDescription
POST/api/auth/loginSign in with email and password
POST/api/auth/registerCreate a new account
GET/api/auth/meGet current user info
GET/api/auth/usersList all users (requires auth)
DELETE/api/auth/users/{id}Delete a user (requires auth)
GET/api/auth/oauth/googleInitiate Google OAuth flow

Database

MethodPathDescription
GET/api/collections/List all table-like collections
GET/api/collections/{name}Get records from a collection
POST/api/sqlExecute arbitrary SQL query

Storage

MethodPathDescription
POST/api/storage/uploadUpload a file
GET/api/storage/filesList all files
GET/api/storage/files/{id}Download a file
DELETE/api/storage/files/{id}Delete a file

Functions

MethodPathDescription
GET/api/functionsList all functions
POST/api/functionsCreate a new function
PUT/api/functions/{id}Update a function
DELETE/api/functions/{id}Delete a function
POST/api/functions/{id}/runExecute a function

Messaging

MethodPathDescription
POST/api/messaging/emailSend an email
POST/api/messaging/smsSend an SMS
POST/api/messaging/pushSend a push notification
GET/api/messaging/messagesList message history

Deploy

MethodPathDescription
GET/api/deployList all deployments
POST/api/deployCreate a new deployment

Git

MethodPathDescription
GET/api/git/reposList all repos
POST/api/git/reposCreate a repo
DELETE/api/git/repos/{id}Delete a repo

Monitoring

MethodPathDescription
GET/api/monitoring/metricsSystem metrics (CPU, memory, goroutines)
GET/api/monitoring/logsApplication logs
GET/api/monitoring/alertsAlert configurations
POST/api/monitoring/alertsCreate an alert

Architecture

BigBase uses the Entity-Component-Construct (ECC) pattern. This is a modular architecture where each backend feature is a pluggable Component that registers with a central Kernel.

Key Concepts

$ bigbase components list

Components are registered in main.go before kernel start. Each component can emit and listen to events from other components. For example, the Auth component emits user:created when a new user registers, and other components can react to it.

Auth

Built-in authentication with email/password and Google OAuth. JWT tokens are set as HTTP-only cookies. The --google-client-id and --google-client-secret flags configure Google OAuth.

Database

SQLite by default. Access your data through the Data Studio at #/data or the SQL Editor at #/sql. The SQL Editor supports arbitrary SQL queries with result display.

Storage

File upload and management. Upload files through the admin UI or the API. Files are stored on disk and served with proper MIME types.

Functions

Serverless JavaScript runtime. Write functions in JavaScript, trigger them via HTTP or a cron schedule. View execution logs and results in the admin UI.

Messaging

Send email, SMS, and push notifications through a single API. Message history is stored in the database.

Deploy

Git-based deployment system. Link a Git repository, specify a branch, and deploy with one click. Auto-polls for status updates.

Realtime

WebSocket-based realtime events. Subscribe to database changes, system events, and custom channels at /realtime.