LimitL.ink is an open-source URL shortener built with Go, Tailwind CSS, and HTMX. It’s more than just a link shortener; it gives you control over your links with:
- Usage limits
- Expiration dates
- Click tracking
To run the app locally, clone the repo and launch it with Docker:
git clone https://github.com/lucasmcclean/limitlink.git
cd limitlink
docker compose up
Once it’s up, visit http://localhost:8080
To use the Tailwind CLI (standalone), run:
curl -sLO https://github.com/tailwindlabs/tailwindcss/releases/download/v4.1.8/tailwindcss-{os}-{arch}
chmod +x tailwindcss-{os}-{arch}
mv tailwindcss-{os}-{arch} tailwindcss
replacing {os} and {arch} with the correct values for your system (you can find the available releases on Tailwind's GitHub). Note that the version this project is using is 4.1.8. I will keep this version updated should it change in the future. More details can be found on Tailwind's guide.
Once you have Tailwind installed, you can run it with:
./tailwindcss -i ./tailwind.css -o ./static/css/tailwind.css --watch \
--content "./templates/**/*.html,./static/html/**/*.html,./static/index.html"
or, for production, run:
./tailwindcss -i ./tailwind.css -o ./static/css/tailwind.css --minify \
--content "./templates/**/*.html,./static/html/**/*.html,./static/index.html"
main.go
– Entrypoint for the Go backendstatic/
– Contains all static files for the frontendtemplates/
– Contains the dynamic templates for the frontendhandlers/
– All of the handlers for the site endpointslink/
– Includes the link struct, Mongo collection, and associated functionalityDockerfile
/docker-compose.*.yml
– Build configs for local and production environments
This project is licensed under the MIT License. You’re free to use, modify, and distribute it for personal or commercial purposes.
Please note: while the code is open-source, the LimitL.ink name and branding are not available for reuse or redistribution without permission.