SaaS starters · Rank #29
ottabase
Grade B: derived only from the two verdicts below. How grades work
Full-stack SaaS monorepo for Cloudflare Workers. ORM, auth, RBAC, multi-tenancy, queues, realtime, blog. Edge-native, all included, for Solo Founders
Why this verdict
How we check →- 180 commits by 1 contributor in the last 90 days (80 in the last 30). receipt ↗
- Tailwind CSS 3 declared; latest is 4 (1 major behind). receipt ↗
- Zod 3 declared; latest is 4 (1 major behind). receipt ↗
- On current major: Drizzle, Next.js, React. receipt ↗
- Not counted in verdict: TypeScript 5 → 7. receipt ↗
Snapshot: commit aaffc56 on main, checked 2026-10-19 07:47 UTC. Receipts link to files at this exact commit.
Dependency freshness
| Package | Declared | Latest | Status |
|---|---|---|---|
| TypeScript typescript | 5.9.3 | 7.0.2 | Behind, not counted |
| Tailwind CSS tailwindcss | 3.4.19 | 4.3.3 | 1 major behind |
| Zod zod | 3.24.1 | 4.6.7 | 1 major behind |
| Drizzle drizzle-orm | 0.45.2 | 0.45.4 | Current |
| Next.js next | 16.1.1 | 16.4.2 | Current |
| React react | 19.2.4 | 19.3.1 | Current |
Declared = lowest version the kit's dependency file (package.json, pyproject.toml or requirements.txt) allows. Latest = the npm "latest" tag or the newest PyPI release. TypeScript, the Stripe SDK, FastAPI and other 0.x packages are shown but not counted in the verdict.
What's in the stack
- Database / ORM
- Drizzle
- UI
- Tailwind CSS, Mantine
- Nodemailer
- API layer
- TanStack Query
- Testing
- Vitest
Detected from declared dependencies. A listed package means it's installed, not necessarily fully wired up.
What the README says you get
- AdminRole-based access control
Role-based access control with per-org KV caching
- AdminAudit logging
Audit logging with change tracking and RBAC context
- AnalyticsAnalytics Engine
Cloudflare Analytics Engine (WAE) - write events, query, funnel, top-K
- APIWorkers router
Cloudflare Workers router - order-free precedence, middleware, mounts
- APICustomer API keys
API keys for your customers: hashed, scoped, expiring, revocable, shown once
- AuthCustom auth
Lightweight custom auth: signed sessions, OAuth, Credentials, Magic Link
- BillingEntitlements and plans
Entitlements: plans, features, limits, operator overrides, 402 guards
- BillingUsage credits
Usage credits: atomic per-tenant balances, periods, top-ups, a pruned ledger
- DataFat models ORM
Fat models, CRUD, relationships, RLS, auto-migrations
- DataAuto-migrations
Tables created automatically from schema
- EmailInbound mail handling
Inbound mail (Email Routing), suppression list, one-click unsubscribe, Resend/SES bounces
- OtherJob queue
Job queue (dispatch, handlers, deduplication, chaining, priority)
- OtherCron handlers
Cron handlers - static code-defined and DB scheduler (Laravel-style)
- OtherHTML-to-PDF export
Cloudflare HTML-to-PDF export with Browser Rendering and safe downloads
Extracted from the kit's README by a local AI model (deepseek-flash) on Oct 19, 2026. Every item is checked against an exact README quote. A README claim is the maker's description, not something we tested.
Watch ottabase
Get told if it goes dormant, gets archived, falls further behind on a core dependency, or changes its license or price.
History
Sep 29, 2026 → Oct 19, 2026. One square per check, colored by maintenance status. Hover for details.
Show as a table
| Date | Maintenance | Dependencies | Commits (90d) |
|---|---|---|---|
| Oct 19, 2026 | Active | 1 major behind | 180 |
| Oct 12, 2026 | Active | 1 major behind | 186 |
| Sep 29, 2026 | Active | 1 major behind | 168 |
Sources
Every claim on this page comes from these public records, checked . Open them to verify.
- Commit history ↗ default branch (main) at the checked commit: pulse, contributors, last commit
- Releases ↗ latest release
- package.json ↗ declared dependency versions and stack (at commit aaffc56)
- apps/otta-cache/package.json ↗ declared dependency versions and stack (at commit aaffc56)
- apps/otta-landing/package.json ↗ declared dependency versions and stack (at commit aaffc56)
- apps/otta-web/package.json ↗ declared dependency versions and stack (at commit aaffc56)
- apps/otta-worker/package.json ↗ declared dependency versions and stack (at commit aaffc56)
- packages/analytics/package.json ↗ declared dependency versions and stack (at commit aaffc56)
- README ↗ quoted features at the checked commit
- npm registry ↗ latest versions (each linked in the table above)