netlify-shortener

    2.4.0 • Public • Published

    netlify-shortener

    Uses netlify's redirect functionality to make a personal URL shortener. Works beautifully :)


    Build Status Code Coverage version downloads MIT License All Contributors PRs Welcome Code of Conduct

    The problem

    You want a URL shortener for your custom domain and you want an easy way to create and update URLs but you don't want to pay hundreds of dollars a year.

    This solution

    This relies on Netlify's _redirects file for building a super simple URL shortener where the URLs are managed on GitHub and Netlify handles the redirecting for you.

    Table of Contents

    Installation

    This module is distributed via npm which is bundled with node and should be installed as one of your project's dependencies:

    npm install --save netlify-shortener
    

    Usage

    Your project should have a _redirects file that looks like this:

    /example http://example.com
    
    # fallback
    /*       https://your-website.com
    

    This module exposes a binary that you should use in your package.json scripts. You also need to add a homepage to your package.json:

    {
      "homepage": "https://jsair.io",
      "scripts": {
        "shorten": "netlify-shortener"
      }
    }

    Then you can run:

    npm run shorten # simply formats your _redirects file
    npm run shorten https://yahoo.com # generates a short code and adds it for you
    npm run shorten https://github.com gh # adds gh as a short URL for you
    

    The netlify-shortener does a few things:

    1. generates a short code if one is not provided
    2. validates your URL is a real URL
    3. adds the URL to the top of _redirects
    4. runs a git commit and push (this will trigger netlify to deploy your new redirect)
    5. Copies the short URL to your clipboard

    Netlify's deploys are normally fast enough that the new URL should be deployed by the time you've shared it to someone.

    Shell Function

    If you want to be able to run this anywhere in the terminal, you can try making a custom function for your shell.

    Shell Agnostic

    1. Add the following executable definition to your package.json:
      {"bin": {"shorten": "cli.js"}}
    2. Create the cli.js file:
      #!/usr/bin/env node
      require('netlify-shortener')
    3. From your project directory, run the following to register the command globally:
      npm link

    Bash

    Inspiration

    URL shorteners for custom domains and custom short codes are insanely expensive. Hiveam.com was the best price-wise, but the price went up and it's super expensive as well.

    Other Solutions

    If you know more alternatives, please make a pull request and add it here!

    Issues

    Looking to contribute? Look for the Good First Issue label.

    🐛 Bugs

    Please file an issue for bugs, missing documentation, or unexpected behavior.

    See Bugs

    💡 Feature Requests

    Please file an issue to suggest new features. Vote on feature requests by adding a 👍. This helps maintainers prioritize what to work on.

    See Feature Requests

    Contributors ✨

    Thanks goes to these people (emoji key):


    Kent C. Dodds

    💻 📖 🚇 ⚠️

    Carl Rosell

    🤔

    Phil Hawksworth

    🤔

    Matt Ferderer

    📖

    Jed Fox

    💡

    Eric McCormick

    📖

    Preston Lamb

    💻

    Daniel D. Beck

    📖

    Justin Dorfman

    🔍

    Jake Jarvis

    💻

    Michaël De Boey

    💻

    Oisín Quinn

    💻 ⚠️

    SebJones

    💻

    Gabin Aureche

    💻 ⚠️

    Anton Andreasson

    💻

    This project follows the all-contributors specification. Contributions of any kind welcome!

    LICENSE

    MIT

    Keywords

    none

    Install

    npm i netlify-shortener

    DownloadsWeekly Downloads

    8

    Version

    2.4.0

    License

    MIT

    Unpacked Size

    18.1 kB

    Total Files

    6

    Last publish

    Collaborators

    • kentcdodds