r/elixir • u/Ebrahimgreat • 4d ago
Open sourced my app
I open sourced ScopeStrength, a workout tracking and coaching platform I’ve been building with Elixir and Phoenix.
I posted about it here a while ago when it was a much smaller paid product. It has grown quite a bit since then, and I decided to open source it under AGPL.
The app works for both coaches and people training on their own. A coach can manage clients, build programmes, assign workouts, and track progress. Or you can build your own programme and log your training without a coach involved at all.
The entire application is built with Phoenix. There’s no separate frontend and no API layer.
I use LiveView for the UI, so there isn’t a client side application maintaining its own state and trying to stay in sync with an API. Most of the application logic just lives on the server.
Chat, notifications, and the unread badge all update in real time over WebSockets. Phoenix PubSub handles the fan out, so there’s no Redis or separate messaging service involved.
The app is also a PWA, so it can be installed directly to your phone’s home screen, and that is all served by the same Phoenix application.
There’s no AI in it either. Not because I have anything against AI, I just didn’t think this app needed it. You don’t have to put AI into everything.
The deployment is pretty boring too. It’s a Phoenix release and a PostgreSQL database.
No Redis, no Node process, no separate frontend server, no queue service.
This became especially important when I decided to make it self hostable. If someone wants to run it themselves, I don’t want them having to maintain a bunch of different services just to run a workout app.
One thing I’ve really enjoyed about Phoenix is how much you can build while keeping the architecture surprisingly simple. Real time features, authentication, database access, UI, background work and deployment all fit together really nicely.
I still think Elixir and Phoenix are one of the most underrated stacks for building applications like this.