A lightweight backend-as-a-service platform designed for hobby projects and prototypes. TinyCore provides essential backend services in a single, self-contained deployment, allowing you to focus on building your frontend without the overhead of setting up authentication, databases, and APIs.
Stop reinventing the wheel for every toy project. TinyCore gives you:
- Authentication out of the box
- Key-value storage for any data structure
- Multi-application support to run multiple projects from one backend
- Admin interface for data management
- TypeScript client with React hooks for instant frontend integration
Perfect for hackathons, MVPs, personal projects, and learning experiments.
TinyCore is built as a monorepo with these packages:
| Package | Description | Purpose |
|---|---|---|
| @tinycore/server | Express.js backend with SQLite | REST APIs, authentication, data storage |
| @jbatch/tinycore-client | TypeScript client with React hooks | Frontend integration, API calls, state management |
| @tinycore/admin-ui | React admin interface | Data management, user-friendly CRUD operations |
| @tinycore/shared | Common types and utilities | Shared code across packages |
-
Clone and install:
git clone https://github.com/jbatch/tinycore cd tinycore pnpm install -
Start the server:
pnpm run dev:server
-
Start the admin UI (optional):
# In another terminal pnpm run dev:admin-ui
The server runs on http://localhost:3000 and admin UI on http://localhost:5173.
# Build and run with Docker
pnpm run docker:build
pnpm run docker:runNote: running docker container locally points to https://kv.jbat.ch (still need to fix this for local docker)
Access your deployment at http://localhost:3000 with the admin UI built-in.
| Variable | Default | Description |
|---|---|---|
PORT |
3000 |
Server port |
DB_PATH |
./data/tinycore.db |
SQLite database path |
NODE_ENV |
development |
Environment mode |
JWT_SECRET |
your-secret-key-change-in-production |
JWT signing secret |
CORS_ORIGIN |
* |
CORS allowed origins |
# Install dependencies
pnpm install
# Run all packages in development
pnpm run dev:all
# Build all packages
pnpm run build
# Run database migrations
pnpm run migrate status
pnpm run migrate up
# Clean build artifacts
pnpm run clean