Skip to content

jamestamplin/go-links

Repository files navigation

Go Links

A Chrome extension for creating and sharing memorable go/ links with your team. Similar to GoLinks.io but without the monthly SaaS cost.

Disclaimer: This software was written in one day and is provided "as is", without warranty of any kind. Use at your own risk. The default Firebase configuration uses open read/write access—see Security Notes before deploying. I made this decision since the RTDB URL is never see beyond your browser (or your team and their browsers).

Features

  • Short memorable links: Create links like go/standup, go/roadmap, go/hr
  • Team sharing: All links sync via Firebase in real-time
  • View tracking: See how many times each link has been used
  • Creator attribution: Know who created each link
  • Omnibox integration: Type go + Tab in Chrome's address bar
  • Auto-fill URLs: Current page URL is auto-filled when creating links
  • Template URLs: Support for dynamic segments like go/issue/123

Setup

1. Create a Firebase Project

  1. Go to the Firebase Console
  2. Click Add project and follow the steps
  3. Once created, go to Build → Realtime Database
  4. Click Create Database
  5. Select a location and click Next
  6. Choose Start in test mode and click Enable
  7. Copy your database URL (looks like https://your-project-default-rtdb.firebaseio.com)

2. Configure the Extension

  1. Clone or download this repository
  2. Open background.js and replace the Firebase URL on line 3:
    const FIREBASE_URL = 'https://your-project-default-rtdb.firebaseio.com';
  3. Save the file

3. Install in Chrome

  1. Open Chrome and go to chrome://extensions
  2. Enable Developer mode (toggle in top right)
  3. Click Load unpacked
  4. Select this folder
  5. Pin the extension to your toolbar (click puzzle icon → pin)

Usage

Creating Links

From the popup:

  1. Navigate to the page you want to create a link for
  2. Click the Go Links extension icon
  3. Click the + button
  4. Enter a shortcut name (the URL is auto-filled)
  5. Click Save

From the omnibox:

  1. Type go in the address bar and press Tab
  2. Type a new shortcut name and press Enter
  3. You'll be taken to the create page

Using Links

Method How
Omnibox Type go + Tab + shortcut + Enter
Direct URL Type go/shortcut + Enter (requires setup in step 4)
Popup Click extension → click a link
Directory Type go + Tab + Enter to browse all links

Template URLs

Create dynamic links with placeholders:

Shortcut: issue
URL: https://github.com/myorg/myrepo/issues/{1}

Usage: go/issue/123 → opens issue #123

Placeholders:

  • {1}, {2}, etc. — Individual path segments
  • {*} — All remaining segments joined

Team Setup

  1. Share Firebase: Give team members the same Firebase database URL
  2. Share Extension: Have everyone clone the repo and follow setup steps
  3. Done: All links automatically sync between team members!

When anyone creates, edits, or deletes a link, it's immediately saved to Firebase. Other team members see the changes next time they open the extension.

File Structure

go-links-extension/
├── manifest.json       # Extension configuration
├── background.js       # Service worker - handles link resolution & Firebase
├── popup.html/js       # Toolbar popup UI
├── directory.html/js   # Full directory page with search & filters
├── redirect.html       # Handles go/ URL redirects
├── options.html        # Redirects to directory settings
└── icons/              # Extension icons (16, 48, 128px)

Security Notes

Important: By default, this extension uses Firebase in "test mode" with open read/write access.

What this means:

  • Anyone with your Firebase database URL can read, write, and delete links
  • Your database URL is visible in the extension's source code
  • This is designed for internal team use where the URL acts as a shared secret

Risks:

  • If someone discovers your database URL, they could read all your links or add malicious redirects
  • Do not store sensitive URLs (passwords, tokens, private documents) as go links

For better security:

Built-in protections:

  • URLs are validated to only allow http: and https: schemes (blocks javascript: XSS attacks)
  • User input is HTML-escaped to prevent XSS

Troubleshooting

Links not syncing?

  • Check your Firebase URL in background.js
  • Make sure Firebase Realtime Database is enabled
  • Check the browser console for errors

go/shortcut not working in address bar?

  • Make sure you completed step 4 (custom search engine)
  • Try go + Tab + shortcut instead

Extension not loading?

  • Check for errors in chrome://extensions
  • Make sure all files are present

License

MIT License

About

Chrome extension for creating and sharing memorable go/ links with your team

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors