Snapp - Yet Another Self-Hosted Url Shortener

Snapp empowers you to effortlessly create and manage shortened links.

Snapp - Yet Another Self-Hosted Url Shortener

Introducing Snapp, a reliable self-hosted URL shortener, crafted to simplify your online journey.

What is Snapp?

Snapp is your self-hostable URL shortening service. Effortlessly shorten links, and with Snapp's self-hosting capability, you have complete control. Create concise, shareable links on your terms with Snapp's user-friendly platform.

Snapp was created with an emphasis on privacy and control. With Snapp, you get to personalize your link endings, monitor how many times your links are clicked, and for an extra layer of security, you can set expiration dates on your links.

Snapp started as a way for the developer to learn Svelte, Svelte5 Runes, and Tabler, which form the core of Snapp's functionality.

Snapp's easy installation using Docker allows you to get it up and running in seconds on your homelab or cloud host.

Install Snapp using Docker

Use the following Docker run command to install Snapp on your system.

docker run \
-e ORIGIN=https://example.com \
-e PUBLIC_URL=https://example.com \
-p 3000:3000 \ 
uraniadev/snapp:latest

CORS and non HTTPS Instances

Snapp relies on Lucia Auth and necessitates hosting under a Secure HTTPS Protocol. For self-hosting without HTTPS, remember to set NODE_ENV=development to enable Lucia to manage sessions.

docker run \
-p 8000:3000 \
-e ORIGIN=http://refurbished:8000 \
-e PUBLIC_URL=http://refurbished:8000 \
-e NODE_ENV=development \
uraniadev/snapp:latest

To get started, simply update the origin and public URL to your domain or local IP, and then access it through your web browser. You'll need to create an initial account to log in and start using the app.

Final Notes and Thoughts

Snapp is user-friendly and functions smoothly right away. I encountered a minor hiccup where the initial URL page didn't generate the custom short code on the first try. Instead, it gave it a random one so I had to edit the link and save it once more for it to work. Aside from that, it operates effectively, and I suggest you try it out! If you like using Snapp, don't forget to visit the Snapp GitHub repository and show your support with a star!