marmelab

Activity

Stars and mentions · Last 30 days, Oct 6 – Nov 4

GitHub stars43
Mentions2
01234Oct 6Oct 20Nov 4
UTC days · repositories marmelab owns3 repositories

Top repositories

marmelab’s repositories ranked by pull request authors, as on trending.

Loading

Contributes to

Repositories outside marmelab’s account where marmelab opened or reviewed pull requests in the past 365 days.

Who noticed marmelab

Everyone who starred or forked marmelab’s repositories since the archive began in 2011.

Notable accounts

Ordered by the stars their own repositories have received.

Biggest fans

Accounts that starred the most of these repositories.

Breakout weeks

Each repository’s best week of new stars, with the release published around it.

Mentions

2posts
Nov 50 posts
  1. Reddit · · r/Supabase · u/Marmelab · marmelab/platform

    Running ~50 apps on one self-hosted Supabase instance. What broke along the way I’ve been working on hosting a lot of small internal apps (mostly built by non-dev colleagues) on a single self-hosted Supabase, and I’d really like to compare notes with anyone who’s tried something similar. It’s one VM with Docker Compose and one Postgres cluster, with a database per app. Each app gets its own Auth and PostgREST containers, and Storage, Realtime and Edge Functions are shared. Most of Supabase actually worked unchanged, and supabase-js apps didn’t need any modification, since each app’s API is served on the same subdomain as its frontend. Pretty much all the friction came from running many projects where self-hosted Supabase expects one. Roles were the first thing that bit me. Postgres roles are global to the cluster, so each app needed its own login roles (app_<id>_authenticator, app_<id>_auth_admin, etc.), cross-database access had to be revoked, and I had to check that Auth, Storage and the migrations didn’t assume fixed role names. Then connections, and those ran out pretty fast. 50 apps with their own pools exceed max_connections, so I put PgBouncer in transaction mode in front of PostgREST and Storage. Auth and Realtime need session-level connections, so they still connect directly. And since PostgREST no longer gets schema change notifications through the pooler, those have to be relayed separately. Realtime’s multi-tenant mode needs a superuser to migrate each tenant, and Broadcast from Database only worked for one tenant per instance, so I ended up patching the image. Edge Functions were a bit more annoying, there’s no multi-tenant mode at all. A custom main worker loads each app’s code based on a header set by the reverse proxy, and isolation is V8 isolates rather than containers, which seems fine for code written by colleagues, but I wouldn’t run anything untrusted on it. Studio only manages one project self-hosted, so I’m on a community multi-project fork with a single maintainer, which is a bit of a risk tbh. There’s one part I haven’t really tested yet, and it’s upgrades. Upgrading Auth means running its migrations on 50 databases and recycling 50 containers without downtime, and I haven’t done a real upgrade on the running setup. Curious if anyone here has upgraded Auth or Realtime across a lot of databases on a self-hosted instance? And is there a cleaner way to get multi-tenant Broadcast from Database than patching the image? If you plan to host vibe-coded apps for your company, have a look at marmelab/platform on GitHub. Fork it, try it, and tell me what breaks! If you want to dive deeper into the technical trade-offs, I wrote a full breakdown here.

    8 points · 10 comments
  2. 客户名单散在聊天记录里,隔几天就想不起上次聊到哪?Atomic CRM 可以放进备选:联系人、笔记、跟进提醒、交易看板都有,代码是 MIT 许可。 marmelab/atomic-crm 它更像可自己改的项目底座。本地跑要准备 Make、Node 24 LTS 和 Docker,还会启动 Supabase 与 Postgres。想省掉客户跟进的混乱,别顺手给自己增加一套没人维护的系统。

    32 views

Achievements

Awards earned by the repositories marmelab owns. Select an award to embed its badge.

Gold
11st place finishes
Silver
32nd place finishes
Bronze
13rd place finishes
Awarded repositories
1Owned by marmelab now

Repositories

Ordered by gold, then silver, then bronze.

  1. gremlins.jsBest: 1st by stars, 731 stars131

Every award

Top-three finishes of these repositories in completed trending days and weeks, newest first.

  1. gremlins.js
  2. gremlins.js
  3. gremlins.js
  4. gremlins.js
  5. gremlins.js

A repository earns an award for finishing first, second or third in a completed trending day or week, ranked by new stars, new forks or pull request authors. Awards follow a repository through renames and transfers and count toward its current owner. Weeks run Monday to Sunday, UTC.