No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
functions
.gitignore
.prettierignore
.prettierrc
README.md
netlify.toml
package.json

README.md

airtable-netlify-short-urls

This is a simple short-url service that works with netlify functions and uses airtable.

It's recommended to use this with CloudFlare caching because airtable has a limit of 5 requests per second. Also, CloudFlare can give you nice analytics for free.

Usage

First, setup an airtable account with a base and table. The table should have a column for the short code and one for the long link.

Next deploy this github repo to netlify:

Deploy to Netlify

Then set the following environment variables in netlify:

DEFAULT_REDIRECT_URL -> https://example.com
AIRTABLE_KEY -> *****************
AIRTABLE_BASE -> *****************
AIRTABLE_TABLE -> URLs
AIRTABLE_SHORT_CODE_FIELD -> Short Code
AIRTABLE_LONG_LINK_FIELD -> Long Link

Note: AIRTABLE_TABLE, AIRTABLE_SHORT_CODE_FIELD, and AIRTABLE_LONG_LINK_FIELD are showing the default values above. If that's what you call your table and fields then you don't need to set those variables

Note also that you can use a .env file instead, just don't commit this to source control :) (this is useful for local development as .env is in the .gitignore).

Redirects should be setup automatically for you in the netlify.toml, so you shouldn't have to do anything there.

Now go ahead and test that your redirects are working as expected. Just go to the short URL version of your netlify app and it should redirect you like so: http://jsair.netlify.com/first -> https://javascriptair.com/episodes/2015-12-09/

If that works you're on the right track!

Next, set up Netlify with a custom domain then verify that the redirect works with the custom domain.

Now, go get CloudFlare setup with your custom domain to prevent your function from being called more than airtable's rate limiting can handle.