A self-hostable URL shortener in Crystal (draft)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
glenux 3fcb5f9c06 Update 'README.md' 4 months ago
config Add files 3 years ago
db/migrations Add files 3 years ago
doc Add logo & update doc 3 years ago
docker Add files 3 years ago
script Add files 3 years ago
spec Add files 3 years ago
src Add files 3 years ago
tasks Add files 3 years ago
.crystal-version Add files 3 years ago
.editorconfig Add files 3 years ago
.gitignore Add files 3 years ago
.tool-versions Add files 3 years ago
.travis.yml Add files 3 years ago
Procfile Add files 3 years ago
Procfile.dev Add files 3 years ago
README.md Update 'README.md' 4 months ago
TODO.md Update README with roadmap 3 years ago
docker-compose.yml Disable app in docker-compose 3 years ago
shard.lock Add files 3 years ago
shard.yml Add files 3 years ago
tasks.cr Add files 3 years ago



GitHub license Donate on patreon

Vitreous is a self-hostable URL shortener written in Crystal.

For now, It is a toy project to improve author's skills with the language and its various libraries. It is very early stage and is not supposed to work (yet). Please don't use it in production.


  • Setup base server
    • Run HTTP service
    • Authenticate user
  • Support persistent storage system
    • use postgresql backend
    • use redis backend
  • Managing URLs
    • Create short URL
    • Read short URL
    • Delete short URL
    • List short URLs
    • Update short URLs
  • Support redirection
    • handle created short url and redirect to original url
  • Support global configuration
    • URL scheme setup (letters, numbers, etc.)
  • Add support for tracking
    • track links click
    • links per day (all time, last 30 days, last 14 days, last 7 days, last 24h, last hour)
    • links per weekday
    • links per hour
  • Add support for custom urls
    • request a custom url (ok / not-ok)
    • request a custom name (text is sanitized and the nearest available url is given)
  • Add frontend
    • Support user authentication + JWT
    • Support short URLs management actions (as user)
    • Support short URLs customization actions (as user)
    • Support system configuration (as admin)
    • Copy short url to clipboard
    • Generate QR code for URL


Authors & contributors


Vitreous is an independent project whose development and maintenance is made possible thanks to the support of its patrons.

If you wish to join them and support the work of its author, just participate with this link:

>>> Become a patron or sponsor on Patreon <<<


Vitreous is Copyright © 2020 Glenn ROLLAND. It is free software, and may be redistributed under the terms specified in the LICENSE.txt file.

Alternatives and inspirations