Custom domain URL shortener and file host compatible with ShareX & monetized with Stripe
See our changelog for product updates
otter-demo.mov
- User dashboard powered by Kinde, allows users to track their own short links and edit/delete them
- Progressive Web App (PWA) on mobile devices + Windows & Mac
- Free integrated Status Page and Changelog Site
- URL shortening with pre-generated slugs + custom slugs
- URL Analytics such as views and generate Pretty QR codes
- Publicly decode slugs and preview the long URL behind them
- File hosting with directory clear every 12 hours to save resources
- Support for custom domains via DNS
CNAME
record - Monetized with EthicalAds & Stripe to support user payments
- Custom ShareX uploader integration (see
./ShareX/
) - Custom GitHub analytics showing all contributors on home page
- Includes section that shows all monetary contributors (via GH Sponsors)
Hmm, quite empty. Suggest some on our new Suggestions page!
- Add more ways to monetize the site without asking for static donations
- Keep monetary contributor uploaded files forever (waive 12hr limit)
- Sanitize SVG formats to strip
<script>
tags
See something on this list that you can add? Make a pull request and you'll be listed on our homepage forever!
While I don't plan on providing support for self-hosting, I can tell you some basic things to get you started. This project is programmed in Node (obviously), with Express.js to serve content and qjson-db to store slugs.
Interested in using a free custom domain with 0tr.me? See this section for instructions.
Just clone this GitHub repo, and download all the prerequisites. You can find them in package.json
. You can spin up a free host on Replit ⠕ or 🎏 Glitch. Our main instance of 0tr.me is powered by ⚡️ GalaxyGate.
- Important note: You'll notice our public stats may seem falsely inflated. This is due to us not programatically counting analytics about 9 months after launch. You'll want to remove the inflation when selfhosting for an accurate count.
The .env file has a few simple keys in them. You can rename these to suite your infrastructure better. Stripe information can be found at dashboard.stripe.com
stripeApi
- Stripe.com API key for payments
stripePriceId
- Stripe Price ID for Custom URL slug product
KINDE_SECRET
- Kinde.com Secret Key for user auth
KINDE_ID
- Kinde.com client ID for user auth
Don't forget to exit test mode when you push this to production 😎
It would be great if you could not only report bugs you find (by opening an issue), but create a pull request that helps solve it too. If you contribute, you'll be listed on the homepage forever.
This project essentially has a do whatever you want license. You can copy code, host this locally, or steal it with or without credit (even though it is greatly appreciated to linkback to my website). Please note any Glitch CDN files are subject to copyright by their lawful owner.