Notiolink

Notiolink

Self-hostable branded link shortener built with Next.js & Notion API

––– views
- -

Personal Project


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

You can easily configure it on the notion database

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

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 screen
theme-dark

Dark

theme-street

Street

theme-milky

Milky

theme-light

Light

theme-monokai

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!

notiolink-installation-guide

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!