Open Source · Self-Hosted

Short link,
Long reach.

A lightweight URL shortener you run yourself.
No third-party tracking. No rate limits.
Full control — containerised with Docker,
deployed on Render with PostgreSQL.

Free tier — first load may take upto a minute to wake up

bash
# clone & run locally   $ git clone https://github.com/vinigani01/snip $ cd snip $ docker compose -f docker-compose-local.yml up -d   [+] Running 2/2 ✔ Container snip-db started ✔ Container snip-url started ✔ Running at http://localhost:3000   # stop $ docker compose down
// Features

Everything you need,
nothing you don't.

01

Custom Aliases

Choose your own short code - /my-project, /docs, anything you want instead of a random string.

02

Click Tracking

Every redirect is counted. See how many times each link has been clicked from the built-in dashboard.

03

Persistent Storage

Links are stored in PostgreSQL and persist across container restarts and redeployments on Render.

04

Any URL

Works with any valid web URL. Automatically prepends https:// if the protocol is missing.

05

Cloud Deployed

Deployed on Render with a free PostgreSQL database. Auto-redeploys on every push to GitHub.

06

Run Anywhere

Runs locally via Docker Compose or on any platform that supports Docker. No vendor lock-in.

// Tech Stack

Built with modern,
battle-tested tools.

Node.js + Express
REST API server — shortening, redirects, and stats
PostgreSQL
Managed relational database via Render's free tier
Docker + Compose
Fully containerised - one command deploy anywhere
Render
Cloud hosting with Docker runtime and auto-deploy from GitHub
Vanilla HTML/CSS/JS
No frontend framework - fast, served directly by Express
nanoid
Compact, URL-safe random short codes
// Setup

Up and running,
within minutes.

01

Clone the repo

Download the project from GitHub onto your local machine.

02

docker compose up

One command starts both the app and a local Postgres container.

03

Or deploy to Render

Connect the repo — the blueprint provisions everything automatically.

04

Start shortening

Open the app, paste a URL, and get a short link instantly.

# run locally with Docker
# clone the directory
git clone https://github.com/vinigani01/snip
# navigate to the directory
cd snip
# build and run
docker compose -f docker-compose-local.yml up -d
# stop
docker compose -f docker-compose-local.yml down