DEV Community

Cover image for πŸ• shortio β€” Secure Links for the Right People, Every Time
Wesley Bertipaglia
Wesley Bertipaglia Subscriber

Posted on • Edited on

πŸ• shortio β€” Secure Links for the Right People, Every Time

This is a submission for the Permit.io Authorization Challenge: Permissions Redefined

Hey everyone! πŸ‘‹

Super excited to share Short.io, my submission for the Permit.io Hackathon πŸš€

Short.io is 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: 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 page rendered via Qute templates 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 rendered server-side with Qute
  • 🏒 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 & Frontend: Quarkus (Java 21) + Qute Templates
  • πŸ“¦ 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, clean server-side pages, 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 πŸš€πŸ›‘οΈ

Top comments (0)