This is a submission for the Permit.io Authorization Challenge: Permissions Redefined
Hey everyone! ๐
Super excited to share shortio, my submission for the Permit.io Hackathon ๐
Itโs called shortio โ a smart, secure, permission-aware link shortener made for organizations that take access control seriouslyโฆ but still want their apps to feel clean, simple, and easy to use.
๐ฆ Source Code:
- API: GitHub Repository
- APP: GitHub Repository
๐ก The Idea
I kept running into the same issue:
Internal tools often rely on sharing URLs for resources, but those links donโt know who should (or shouldnโt) be clicking them.
So I built shortio โ a URL shortener that bakes permission checks into every link it creates. Itโs built for multi-tenant orgs where you need fine-grained control over who can view, create, or manage resources, and it uses Permit.io to manage dynamic, role-based access in real time.
Think of it as a tiny security guard ๐ก๏ธ at the door of every link you share.
๐ ๏ธ How It Works
Whenever someone tries to access a shortio link:
- โ If theyโre logged in and have the right permissions โ seamless redirect to the resource.
- ๐ซ If not โ theyโll land on a clean, friendly React screen inviting them to log in or sign up.
- ๐ Access is decided based on their organization membership and role, all enforced by Permit.io behind the scenes.
Admins and owners can create links and decide who gets access โ whether itโs a whole org, specific roles, or individual users.
โจ Why This Is Cool (and Useful)
shortio isnโt your average URL shortener:
- ๐ก๏ธ Every link knows who should click it
- ๐๏ธ Fully multi-tenant, with clear org boundaries
- ๐ Fine-grained, real-time permission checks via Permit.io
- ๐ฅ๏ธ Clean, no-fuss UX for both admins and users
- ๐ข Built for internal tooling, dashboards, and resource management
Whether youโre:
- An engineer working on internal tools
- A security-conscious team sharing sensitive resources
- Or just someone who loves links that behave themselves
โฆshortioโs here to keep your links smart, secure, and well-behaved.
๐ Tech Stack
- โ๏ธ Backend: Quarkus (Java 21)
- ๐จ Frontend: React + Vite
- ๐ฆ Database: MongoDB + Panache
- ๐ก๏ธ Authorization: Permit.io SDK
๐ญ Whatโs Next?
If I had a bit more time (and coffee โ๏ธ), Iโd love to add:
- ๐ Link analytics (who tried to access, from where, and when)
- ๐ Custom link slugs
- ๐ Expiration dates and temporary permissions
- ๐ก๏ธ A little animated security shield mascot for the UI (seriously)
Got more ideas? Drop them in the repo โ would love to hear what you'd build on top of it!
๐ง Final Thoughts
This was a super fun project to build โ mixing backend security, frontend UX, and dynamic permissions management into a simple tool that actually solves a day-to-day problem for orgs.
Big thanks to the Permit.io and Dev.to teams for the challenge. I had a blast, and Iโm already thinking about new features I could sneak into shortio next.
Secure links, smart permissions, and a smooth experience โ every time.
Letโs keep building cool, secure stuff together ๐๐ก๏ธ