One of the weird(ish) things I'm trying with Pebbling Club is initially building it to run as a single node.js process with no other service dependencies. Really resisting the pull to rope in postgres or redis or anything.
That's feasible(ish) because node comes with SQLite and all kinds of other batteries included. And I can even do background tasks with p-queue and async/await.
I have a hunch that this thing could handle 100s of users before needing to scale horizontally. And I also have a hunch that a single process would make it easier to manage as a self-hosted thing. And even when it has to scale horizontally, I think there's some room for doing a stupid single-primary, many-replica sort of thing at first
And if it ever gets to a point where it needs to handle 1000s of users, it should be "easy" enough to swap out in-built parts for external services with some config and dependency injection. If I build it right, that is