diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 4f41f17..a0b4f42 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -200,6 +200,16 @@ "name": "Community" } }, + { + "name": "teenybase", + "source": "./teenybase", + "description": "Backend-as-a-service on Cloudflare Workers with TypeScript config — REST API, auth, row-level security, auto-migrations, OpenAPI docs, and admin panel", + "category": "backend", + "tags": ["backend", "cloudflare", "workers", "d1", "api", "auth", "serverless"], + "author": { + "name": "teenybase" + } + }, { "name": "perf", "source": "./perf", diff --git a/README.md b/README.md index ba038f3..b7d5de3 100644 --- a/README.md +++ b/README.md @@ -127,6 +127,7 @@ Claude Plugins are extensions that enhance Claude Code with custom slash command - [mcp-builder](./mcp-builder) - Guides creation of high-quality MCP (Model Context Protocol) servers for integrating external APIs and services with LLMs. - [agent-sdk-dev](./agent-sdk-dev) - Claude Agent SDK development helper for building custom AI agents. - [maestro-orchestrate](https://github.com/josstei/maestro-orchestrate) - Multi-agent development orchestration coordinating 22 specialized subagents through 4-phase workflows with native parallel execution, persistent sessions, and standalone commands for code review, debugging, security audit, and more. +- [teenybase](https://github.com/teenybase/teenybase) - Backend-as-a-service on Cloudflare Workers. Define tables, auth, row-level security, and actions in a single TypeScript config — generates REST API, auto-migrations, OpenAPI docs, and an admin panel. ### DevOps & Performance diff --git a/marketplace.json b/marketplace.json index 28e5243..89d4939 100644 --- a/marketplace.json +++ b/marketplace.json @@ -137,6 +137,13 @@ "author": "Community", "tags": ["agent-sdk", "agents", "development"] }, + { + "name": "teenybase", + "category": "backend", + "description": "Backend-as-a-service on Cloudflare Workers with TypeScript config — REST API, auth, row-level security, auto-migrations, OpenAPI docs, and admin panel", + "author": "teenybase", + "tags": ["backend", "cloudflare", "workers", "d1", "api", "auth", "serverless"] + }, { "name": "perf", "category": "devops", diff --git a/teenybase/.claude-plugin/plugin.json b/teenybase/.claude-plugin/plugin.json new file mode 100644 index 0000000..57d6072 --- /dev/null +++ b/teenybase/.claude-plugin/plugin.json @@ -0,0 +1,9 @@ +{ + "name": "teenybase", + "description": "Backend-as-a-service on Cloudflare Workers. Define tables, auth, row-level security, and actions in a single TypeScript config file. Generates REST API, auto-migrations, OpenAPI docs, and an admin panel.", + "version": "1.0.0", + "author": { + "name": "teenybase" + }, + "homepage": "https://github.com/teenybase/teenybase" +} diff --git a/teenybase/skills/teenybase/SKILL.md b/teenybase/skills/teenybase/SKILL.md new file mode 100644 index 0000000..0f2cedb --- /dev/null +++ b/teenybase/skills/teenybase/SKILL.md @@ -0,0 +1,324 @@ +--- +name: teenybase +description: Set up and develop backends with Teenybase — a TypeScript-configured backend framework for Cloudflare Workers + D1. Use when creating new backends, adding tables, configuring auth, writing row-level security rules, or deploying to production. +--- + +# Teenybase Backend Development + +You are setting up a **teenybase** backend — a backend-as-a-service on Cloudflare Workers. The entire backend is defined in a single `teenybase.ts` config file. No backend code, no ORM, no route files. + +**Prerequisite:** Ensure the teeny CLI is installed globally before running any commands. Install it with `npm install -g teenybase`. Requires Node.js >= 18.14.1. + +## Before You Start + +Before modifying `teenybase.ts`, understand what the user is building. If the user has not provided clear instructions, ask them to describe what they're building and what their backend needs to do. + +Users will typically answer with intentions, not technical specs: "I need login", "I need a database for my recipes", "I need to process Stripe payments and track subscribers." Infer the required tables, auth setup, and access rules from their description. Don't ask for schema details upfront — translate their intent into config. + +Determine whether this is a **new project** or **adding teenybase to an existing project**. Infer from context (e.g., existing `package.json` or "add a backend to my app" means existing project). If unclear, ask: "Are we starting a new project or adding teenybase to an existing one?" + +## Non-Interactive Flags + +Always pass these flags when running commands non-interactively. Without them, commands launch arrow-key prompts that hang when stdin is not a TTY. + +| Flag | What it does | +|---|---| +| `-t, --template