chhoto-url

From public sources

A simple, blazingly fast, selfhosted URL shortener with no unnecessary features; written in Rust

ApplicationCategory: Web Apps · Web analyticsOpen sourcedata checked Oct 15, 2026

Overview

  • actix-web
  • compose
  • container
  • docker
  • link-shortener
  • podman
  • quadlets
  • rust
  • self-hosted
  • shortener

Installation

Commands are shown, never run by the marketplace. Check them against the official documentation.

Compatibility

Unknown means no evidence was found — not that the product is incompatible.
PlatformStatusArchitectureEvidenceConfidence
Web browserUnknown———
Server / self-hostedUnknown———
Container (OCI)Unknown———

Releases

checked Oct 29, 2026
v7.10.3LatestOct 29, 2026Official source ↗

Files in 7.10.3

This release has no attached files.

Release history

Quality profile

algorithm quality-v1.0 · assessed Oct 15, 2026
Quality Score85
Risk Score0
Confidence 1.00
Quality Score and Risk Score are different measures. A high score does not guarantee safety.

Score components

Maintenance · 2020
last activity 2 days ago
Documentation · 1515
README 8056 chars, description present
Ready to use · 156
install instructions: no; releases: yes
Metadata · 1010
4/4 of description, homepage, license, topics
Releases · 1010
10 release(s), latest 2 days ago
Category confidence · 107
classifier confidence 0.65
Adoption · 107
986 stars (log-dampened, 10k = max)
License clarity · 55
SPDX MIT
Community · 55
issues enabled, 97 forks

License

MIT
Known licensefrom the repository host

This is the catalog policy status, not legal advice.

Sources

github.com/SinTan1729/chhoto-urlPrimary★ 986 starslast activity Oct 13, 2026Primary repository · Confidence 1.00

Reviews

Sign in to write a review

No reviews yet.

Alternatives

README

From SinTan1729/chhoto-url · license MIT · fetched Oct 29, 2026

[github-tests-badge] [docker-pulls-badge] [ghcr-pulls-badge] [github-stars-badge] [codeberg-stars-badge] [maintainer-badge] [latest-release-badge] [docker-image-size-badge] [license-badge]

[Logo] Chhoto URL

Official Website • GitHub • Codeberg • Docker Hub

What is it?

A simple selfhosted URL shortener with no unnecessary features. Simplicity and speed are the main foci of this project. The scratch docker image is <6 MB (compressed), the alpine one is <10 MB (compressed), and it uses <15 MB of RAM under regular use.

Don't worry if you see no activity for a long time. I consider this project to be complete, not dead. I'm unlikely to add any new features, but I will try and fix every bug you report. I will also try to keep it updated in terms of security vulnerabilities.

If you feel like a feature is missing, please let me know by creating an issue using the "feature request" template.

But why another URL shortener?

Most URL shorteners are either bloated with unnecessary features, or are a pain to set up. Even fewer are written with simplicity and lightness in mind. When I saw the simply-shorten project, I really liked the idea but thought that it missed some features. Also, I didn't like the fact that a simple app like this had a ~200 MB docker image (mostly due to the included java runtime). So, I decided to rewrite it in Rust and add some features to it that I thought were essential (e.g. hit counting).

What does the name mean?

Chhoto (ছোট, pronunciation) is the Bangla word for small. URL means, well... URL. So the name simply means Small URL.

Installation and configuration

See here.

Demo

Link: demo.chhoto.link Password: chhoto-url-demo-pass

Note:
  • The database is cleared every 15 minutes, so don't use it for anything other than testing.
  • If you host a public instance of Chhoto URL, please let me know, and I'll add it to the README.

Features

  • Shortens URLs of any length to a randomly generated link.
  • Automatic expiry of links after a chosen time.
  • (Optional) Allows you to specify the shortened URL instead of the generated one. (It's missing in a surprising number of alternatives.)
  • Opening the shortened URL in your browser will instantly redirect you to the correct long URL. (So no stupid redirection pages.)
  • Super lightweight and snappy.
  • Counts number of hits for each short link in a privacy respecting way i.e. only the hit is recorded, and nothing else.
  • Supports OIDC authentication.
  • Short links can be edited after creation. They can also be temporarily disabled.
  • Each short link may have custom notes attached to it. The UI features filtering for links, based on short link, long link, and notes.
  • QR codes can be generated for easy sharing.
  • Supports operation using API key, and lets the user provide hashed password and API key.
  • Has a robust JSON-RPC adjacent API.
  • Has a mobile friendly UI, and automatic dark mode.
  • Supports customized site title, and can even serve a custom landing page, if needed.
  • Has a public mode, where anyone can add links without authentication. Deleting or listing available links will need admin access using the password. It's also possible to completely disable the frontend. It's also possible to force an expiry time for public instances, which might be useful.
  • Allows setting the URL of your website, in case you want to conveniently generate short links locally.
  • Links are stored in an SQLite database, which is configured to be ACID by default. Options are available for tuning the database to the user's liking.
  • Available as a Docker container with a provided compose file.
  • Backend written in Rust using Actix Web, and frontend written in plain HTML and vanilla JS, using Pure CSS for styling.
  • Uses very basic authentication using a provided password. It's not encrypted in transport. I recommend using a reverse proxy such as caddy to encrypt the connection by SSL.

Bloat that will not be implemented

  • Tracking or spying of any kind. The only logs that still exist are some very simple ones, mostly meant for debugging.
  • User management. If you need a shortener for your whole organization, either run separate containers for everyone or use something else.
  • Cookies, newsletters, "we value your privacy" popups or any of the multiple other ways modern web shows how anti-user it is. We all hate those, and they're not needed here.
  • Paywalls or messages begging for donations.

Screenshots

Instructions for CLI usage

See here.

Related software

See here.

Notes

  • The list of adjectives and names used for random short url generation is a modified version of this list used by docker.
  • It is highly recommended that you enable WAL mode.
  • Although it's unlikely, it's possible that your database is mangled after some update. For mission critical use cases, it's recommended to keep regular versioned backups of the database, and sticking to a minor release tag e.g. 5.8.
  • If you intend to have more than a few thousand short links, it's strongly recommended that you use the UID CHHOTO_SLUG_STYLE with a CHHOTO_SLUG_LENGTH of 16 or more. Otherwise, generating new links will start to fail after a while.
  • It is highly recommended that you use Argon2 for hashing password and API key (if used).
  • For safety, only https,http,ftp, and magnet links are allowed for long links by default. Please take a look at CHHOTO_EXTRA_PROTOCOLS to use more protocols.
Open the repository ↗