Short Explanation
Notiolink is a self-hostable link shortener built with Next.js & Notion API. It's a simple and easy-to-deploy shortener that's using Notion as a CMS.
Some features including:
- ⚡ Unlimited branded links (use your own domain!)
- ☝ Self-hostable with Vercel
- 💨 Fast redirect using Next.js Middleware Functions
- 🌑 Awesome CMS using Notion
- ➕ See click count statistics
- 💠 Zero config, all customizable via env
- 💅 Numerous themes
Project Goals
I did this project originally for my personal use. Shortening links is easier for me to remember than having to search through numerous bookmarks. I can just pick a short slug—which usually is not an option when you are using a free service—and remember it.
Tech Stack Used
Notiolink is a full-stack application built using Next.js and Notion API. I chose notion because of the easy-to-use UI. All links are served as a table inside the notion and can be edited whenever you want.
Features
Notion CMS
All links are customizable via notion
Link Tree Page
You can easily configure it on the notion database
Add New Link
Route: /new
You can add link straight from the website for easy access, don't worry this is protected with login page so no one will mess with your links
Link Details & Count
You can see the statistics with /:slug/detail
route
Categorized Tree
Every category will be made into a standalone tree on /c/:category
route
Themes
Themes you can choose
Pro tip: click the image to make it full screenDark
Street
Milky
Light
Monokai
Spotlight
Creating An Easy To Deploy App
I aim for this project to be easy to fork and deploy. Therefore, every configuration is done via environment variables.
Installation Guide
I made an installation guide that is easy for people to follow. Even non-developers can do it too!
Launching on ProductHunt
I launched the app on ProductHunt, and the review is quite positive!
The Problems and How I Deal With It
Optimizing the repository so it is fairly customizable is hard. I created some features which users can customize and have to account for whether the feature will be hard to implement or set up. However, it was a thought-provoking activity that I enjoyed.
Try it out!
Deploy one of your own!