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 link collecting and sharing.

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 Core Features

  • Intuitive User Interface: Snapp offers a user-friendly interface for easy link shortening.
  • Secure Authentication: Enjoy secure sessions for your user. Their information is protected.
  • Custom Short Codes: Personalize your short codes to make your links memorable and easy to share.
  • Expiration Dates: Manage link lifespans with expiration dates. You can set expiry dates for added security or let links remain active indefinitely.
  • Secret Links: Enhance security with secret links, allowing you to share with a select audience using unique secrets.
  • Usage Analytics: Access detailed, anonymous analytics for your links. Snapp provides insights into link engagements.
  • Extended Metrics: Integrate Snapp with your self-hosted or cloud-based Umami Analytics for advanced metrics.
  • URL Reputation Check: Ensure the safety of links with VirusTotal API reputation checks.
  • REST API: Community-requested REST API endpoints enable remote management of your Snapp instance.

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. If you need help, see our guides about getting started with self-hosting.

Install Snapp using Docker

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

services:
  snapp:
    image: uraniadev/snapp:0.8
    ports:
      - 3000:3000
    environment:
      DATABASE_URL: 'file:./db.sqlite'
      DATABASE_PROVIDER: sqlite # mysql | sqlite | pg
      TOKEN_SECRET: # openssl rand -base64 32
      ORIGIN: https://example.com

Note: SQLite database is located in /app/prisma/{DATABASE_URL} if you want to mount it

Default Admin Authentication

If ENV variables ADMIN_USERNAME and ADMIN_PASSWORD are not set it defaults to:

  username: admin
  password: password

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 can then begin adding links to be shortened.

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!