// the find
OtterMind/Nubase
🔥🔥🔥 Turn AI-written code into real apps. Nubase is an open-source, AI-native backend platform for AI Coding, agentic applications, and modern product teams: Memory, Database, Storage, and Auth in one self-hostable service.
Nubase is a self-hostable, Java-based backend platform aimed at AI coding agents: one control plane providing a PostgREST-style REST API, Supabase-style auth/storage, edge functions, a static asset CDN, cron, and a Mem0-style memory service, all exposed over MCP so an agent can provision and deploy against it directly. It's for people building AI-generated apps who want Supabase's shape but multi-tenant by default, and for self-hosters who don't want to stand up Supabase's full stack per project.
Memory is an actual feature, not a vector-store wrapper bolted on: LLM-driven fact extraction with ADD/UPDATE/DELETE/NONE semantics, hybrid retrieval over pgvector plus Postgres full-text plus entity boosting, and append-only history. The multi-tenant model is a genuine improvement on Supabase self-hosted — each project gets its own isolated Postgres database instead of everyone sharing one instance pretending to be separate projects, and the two-token design (apikey for project/role, JWT for the end user) cleanly splits project routing from RLS. The MCP bridge is a real tool surface with test coverage (tools-cron.test.ts, tools-functions.test.ts, deploy-app.test.ts), not a thin wrapper around a couple of REST calls. Packaging the whole stack — Postgres, Redis, backend, Studio — into one Docker image removes the usual six-service compose-file friction of just trying it out.
The README itself says to review the admin/management endpoints before exposing a server to the public internet, which is a tacit admission that authz on admin surfaces isn't hardened yet — and it's buried under Status & Roadmap instead of flagged next to the docker run command people will actually copy. There's no Realtime, no backups/PITR, no HA, and no enterprise SSO/SCIM, which means anyone adopting this for something real has to build their own backup story for the quick-start single-container Postgres with zero documented path for it. Reimplementing PostgREST-equivalent semantics (filter/order/paginate/upsert, RLS via JWT claims) from scratch in Java is a large surface to get exactly right, and 'PostgREST-compatible' doesn't say how compatible — anyone porting an existing Supabase client is likely to hit subtle differences in filter operators or error responses. The only difference the docs draw between 'try it' and 'production' is remembering to export two secret env vars (PGRST_ENCRYPTION_MASTER_KEY, METADATA_SERVICE_ROLE_KEY); skip that step by following the first command block and you end up with auto-generated, ephemeral encryption keys backing real data.