Awesome Open Source
Awesome Open Source

Suri

Suri is your own link shortener that's easily deployed as a static site. No server-side hosting, serverless cloud functions, or database necessary. Suri can be deployed to Vercel, Netlify, and more for free in 60 seconds.

Suri doesn't give a 💩 about "technically superior" 3xx server redirects. Suri just wants you to finally use that domain you waste $39/year on because you've never actually done anything with it.

Try it out with one of my own shortlinks: https://jstayton.com/tw 👉🏻 https://twitter.com/kidjustino

Getting Started

Install in One Click (for Free)

Deploy with Vercel Deploy to Netlify Deploy to Heroku

Deploy to DO Deploy to Render

Once complete, try accessing the root path of your URL – it should redirect back to my GitHub profile if everything's working.

Manage Links

Links are managed through src/links.json, which is seeded with a few examples to start:

{
  "/": "https://github.com/jstayton",
  "1": "https://fee.org/articles/the-use-of-knowledge-in-society/",
  "tw": "https://twitter.com/kidjustino"
}

It couldn't be simpler: the key is the "shortlink" path that gets redirected, and the value is the target URL. Keys can be as short or as long as you want, using whatever mixture of characters you want. / is a special entry for redirecting the root path.

Go ahead and make an edit, then commit and push to your repository. The hosting provider you chose above should automatically build and deploy your change. That's it!

Pro tip: Bookmark the page to edit src/links.json directly in GitHub (or wherever), and use the default commit message that's populated. Now show me a link shortener that's easier than that!

Config

Environment variables are used to set config options. There is only one at this point:

Variable Description Values Default
SURI_JS Whether to redirect with JavaScript instead of a <meta> refresh. 1, 0 0

Install Manually

To install Suri somewhere else, or just on your own machine:

  1. Fork this repository to create your own copy and clone to your machine.

  2. Make sure you have a compatible version of Node.js (see engines.node in package.json). nvm is the recommended installation method on your own machine:

    $ nvm install
    
  3. Install dependencies with npm:

    $ npm install
    
  4. Build the static site:

    $ npm run build
    
  5. Deploy the generated _site directory to its final destination.

Development

The following includes a few instructions for developing on Suri. For 11ty-specific details – the static site generator that powers Suri – see their docs.

Install

Follow the "Install Manually" section above to setup on your own machine.

Start

Start the development server:

$ npm run dev

Code Style

Prettier is setup to enforce a consistent code style. It's highly recommended to add an integration to your editor that automatically formats on save.

To run via the command line:

$ npm run lint

Releasing

After development is done in the development branch and is ready for release, it should be merged into the master branch, where the latest release code lives. Release It! is then used to interactively orchestrate the release process:

$ npm run release

piratepx


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Javascript (1,538,296) 
Static Site (1,526) 
Self Hosted (884) 
Url Shortener (836) 
Related Projects
Advertising 📦 9
All Projects
Application Programming Interfaces 📦 120
Applications 📦 181
Artificial Intelligence 📦 72
Blockchain 📦 70
Build Tools 📦 111
Cloud Computing 📦 79
Code Quality 📦 28
Collaboration 📦 30
Command Line Interface 📦 48
Community 📦 81
Companies 📦 60
Compilers 📦 60
Computer Science 📦 74
Configuration Management 📦 39
Content Management 📦 167
Control Flow 📦 197
Data Formats 📦 77
Data Processing 📦 266
Data Storage 📦 132
Economics 📦 60
Frameworks 📦 198
Games 📦 122
Graphics 📦 103
Hardware 📦 148
Integrated Development Environments 📦 47
Learning Resources 📦 147
Legal 📦 28
Libraries 📦 119
Lists Of Projects 📦 21
Machine Learning 📦 336
Mapping 📦 61
Marketing 📦 15
Mathematics 📦 55
Media 📦 228
Messaging 📦 97
Networking 📦 304
Operating Systems 📦 84
Operations 📦 120
Package Managers 📦 52
Programming Languages 📦 229
Runtime Environments 📦 96
Science 📦 42
Security 📦 375
Social Media 📦 26
Software Architecture 📦 70
Software Development 📦 68
Software Performance 📦 57
Software Quality 📦 127
Text Editors 📦 45
Text Processing 📦 131
User Interface 📦 310
User Interface Components 📦 465
Version Control 📦 29
Virtualization 📦 68
Web Browsers 📦 38
Web Servers 📦 25
Web User Interface 📦 194