1,000+ permissioned actions. 300+ users. Zero "who can do what" spreadsheets. Own the Podium mana...1,000+ permissioned actions. 300+ users. Zero "who can do what" spreadsheets. Own the Podium mana...
The network for creativity
Join 1.25M professional creatives like you
Connect with clients, get discovered, and run your business 100% commission-free
Creatives on Contra have earned over $150M and we are just getting started
1,000+ permissioned actions. 300+ users. Zero "who can do what" spreadsheets.
Own the Podium manages sports funding for national sports organisations, and the hardest part of the platform wasn't the funding logic — it was that permissions change depending on which stage a file is in. A reviewer can edit in stage 2 and only comment in stage 3.
We modelled access as (role × stage × action) instead of role alone. Boring decision. It's the reason adding a new role or a new stage has never meant touching the access-control code.
Abdul's avatar
webixus logo
Modeling access as (role × stage × action) is such an elegant solution to state-dependent authorization! Decoupling permissions from static user roles saves so much refactoring tax down the line when workflows evolve. Super clean architecture with Next.js and NestJS!
Zahid's avatar
Thanks Abdul — the refactoring-tax point is exactly why we went this way. What's shown here is only the Funding app; the platform itself is a multi-app SaaS. Roles and permissions don't live inside any one app — they sit in a single shared abstraction layer, so every app in the...
Ayesha's avatar
TechFoundry logo
This was the complex, significant work by Zahid and the team!
Zahid's avatar
Thank you Ayesha — it took the whole team to get that access model right.
Zahid's avatar
The model is scalable across various apps within the platform or could be extracted as a generic RBAC service. We thought through it a lot!
Zahid's avatar
This Platform is a Complex SaaS, and only the funding app is presented here. There are multiple other apps within the platform, and the beauty of the abstraction layer is that roles and permissions are centralized in a single place for other apps, too.
Back to feed
The network for creativity
Join 1.25M professional creatives like you
Connect with clients, get discovered, and run your business 100% commission-free
Creatives on Contra have earned over $150M and we are just getting started