-
Notifications
You must be signed in to change notification settings - Fork 2
Add self-hosted env & docker updates; Convex migration scanner/report; improve webhook delivery and tests #52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
weroperking
merged 3 commits into
main
from
codex/evaluate-betterbase-improvements-lfcc9r
Mar 30, 2026
Merged
Changes from all commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,33 @@ | ||
| # BetterBase self-hosted example environment | ||
|
|
||
| # Required | ||
| BETTERBASE_JWT_SECRET=replace-with-32+-char-secret | ||
| BETTERBASE_PUBLIC_URL=http://localhost | ||
| BETTERBASE_ADMIN_EMAIL=admin@example.com | ||
| BETTERBASE_ADMIN_PASSWORD=change-me-strong-password | ||
|
|
||
| POSTGRES_USER=betterbase | ||
| POSTGRES_PASSWORD=change-me-strong-password | ||
| POSTGRES_DB=betterbase | ||
|
|
||
| MINIO_ROOT_USER=minioadmin | ||
| MINIO_ROOT_PASSWORD=change-me-minio-password | ||
|
|
||
| # Server runtime | ||
| NODE_ENV=production | ||
| CORS_ORIGINS=http://localhost | ||
|
|
||
| # Storage wiring used by compose | ||
| STORAGE_ENDPOINT=http://minio:9000 | ||
| STORAGE_ACCESS_KEY=${MINIO_ROOT_USER} | ||
| STORAGE_SECRET_KEY=${MINIO_ROOT_PASSWORD} | ||
| STORAGE_BUCKET=betterbase | ||
|
|
||
| # Inngest (self-hosted) | ||
| INNGEST_BASE_URL=http://inngest:8288 | ||
| INNGEST_LOG_LEVEL=info | ||
| INNGEST_SIGNING_KEY=replace-with-random-hex-64 | ||
| INNGEST_EVENT_KEY=replace-with-random-hex-32 | ||
|
|
||
| # Optional nginx public port override | ||
| # HTTP_PORT=80 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -16,6 +16,7 @@ dist | |
| .env | ||
| .env.* | ||
| !.env.example | ||
| !.env.self-hosted.example | ||
|
|
||
| *.log | ||
| npm-debug.log | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,116 @@ | ||
| # BetterBase Competitive Plan — Gap-Closing Edition | ||
|
|
||
| > Date: 2026-03-29 | ||
| > Purpose: This is **not** a greenfield strategy. It assumes BetterBase already implements most core platform capabilities and focuses only on remaining gaps to outperform Convex. | ||
|
|
||
| --- | ||
|
|
||
| ## 1) Reality check: what is already built | ||
|
|
||
| BetterBase already has broad platform scope implemented and documented: | ||
|
|
||
| - IaC schema/functions model | ||
| - Auth, Realtime, Storage, Serverless Functions | ||
| - Full-text + vector search | ||
| - RLS, branching, self-hosted deployment path | ||
|
|
||
| This plan avoids re-planning those fundamentals and focuses on adoption, trust, and migration leverage. | ||
|
|
||
| --- | ||
|
|
||
| ## 2) Working mode (required before each implementation) | ||
|
|
||
| Before writing code, capture this mini brief in the issue/PR: | ||
|
|
||
| 1. **Goal delta** — what improves for users this week. | ||
| 2. **Existing capability used** — which implemented feature we are building on. | ||
| 3. **Gap to close** — the smallest missing part. | ||
| 4. **Proof** — tests/benchmarks/docs updates required. | ||
| 5. **Rollback** — how to revert safely. | ||
|
|
||
| If this brief is missing, implementation is not ready. | ||
|
|
||
| --- | ||
|
|
||
| ## 3) What we should *actually* do next to beat Convex | ||
|
|
||
| ### Priority A — Migration dominance (wedge strategy) | ||
|
|
||
| Convex users will only move if migration is low-risk. | ||
|
|
||
| **Now build:** | ||
| - Compatibility scanner in `bb migrate from-convex` | ||
| - Per-function conversion report (converted/manual/blocker) | ||
| - Auto-generated TODO checklist for unsupported APIs | ||
|
|
||
| **Win condition:** A typical Convex project can estimate migration effort in minutes. | ||
|
|
||
| --- | ||
|
|
||
| ### Priority B — Proof over claims | ||
|
|
||
| The implementation exists; now we need undeniable credibility. | ||
|
|
||
| **Now build:** | ||
| - Public benchmark methodology + reproducible scripts | ||
| - CI gate that blocks merges on test/lint/typecheck failures | ||
| - “Production evidence” docs (backup/restore, incident drill, rollback walkthrough) | ||
|
|
||
| **Win condition:** Every major product claim maps to a measurable artifact. | ||
|
|
||
| --- | ||
|
|
||
| ### Priority C — Onboarding compression | ||
|
|
||
| Feature-rich products lose if time-to-success is slow. | ||
|
|
||
| **Now build:** | ||
| - `bb init` starter that includes auth + realtime + storage out-of-the-box | ||
| - `bb doctor` command for environment health + fix suggestions | ||
| - Guided CLI output with concrete next-step commands after each setup action | ||
|
|
||
| **Win condition:** New user goes from init to first realtime app flow in under 10 minutes. | ||
|
|
||
| --- | ||
|
|
||
| ## 4) 30-day execution board | ||
|
|
||
| ### Week 1 | ||
|
|
||
| - Finalize migration compatibility report format | ||
| - Add CI rule enforcement and branch protections | ||
|
|
||
| ### Week 2 | ||
|
|
||
| - Ship first version of Convex compatibility scanner | ||
| - Publish benchmark methodology doc | ||
|
|
||
| ### Week 3 | ||
|
|
||
| - Add `bb doctor` checks and actionable fixes | ||
| - Add migration case study template | ||
|
|
||
| ### Week 4 | ||
|
|
||
| - Publish 2 end-to-end migration examples | ||
| - Publish proof matrix mapping claims -> tests/docs/benchmarks | ||
|
|
||
| --- | ||
|
|
||
| ## 5) What to stop doing | ||
|
|
||
| - Rewriting broad strategy docs from scratch when features already exist | ||
| - Shipping claims without proof links | ||
| - Merging “works locally” changes without deterministic test coverage | ||
|
|
||
| --- | ||
|
|
||
| ## 6) KPI focus (weekly) | ||
|
|
||
| - Convex migration starts / completions | ||
| - Time-to-first-success (new project) | ||
| - Main-branch green rate | ||
| - p95 API latency (local and hosted) | ||
| - Number of claims backed by reproducible artifacts | ||
|
|
||
| If 2 KPIs regress for 2 consecutive weeks, pause roadmap expansion and fix core reliability/adoption blockers. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.