Go/Links for Your Company
With all my projects, even as I lean heavily on AI for code, I'm trying to learn and understand things better. For this project: DNS, internal networks, and how browsers resolve URLs.
This is a short blog, but I missed go links from my time at Google. If you have never used them, they are a sort of internal hyperlink. In the URL bar, you could type go/orgchart and it would link to the org chart. Or go/policy might link to a Notion with all the company policies. It makes documentation a little more simple and fast.
I wanted to use go links at Atkins and Pearce and looked around for solutions. There's SaaS options like GoLinks at $5+/user/month. And some solid open-source options like kellegous/go (written in Go) and tailscale/golink (if you use Tailscale).
But those felt like overkill for what I needed—just a simple redirect server that anyone can add links to. So I used Claude to write a stripped-down Flask version and an instruction set for IT for the VM that is needed to run it. It took about 30 mins. You can see this flask app below:
Repo: github.com/mantra-1/golink
Mechanism
A little on this, since this is the part I actually wanted to understand better.
What normally happens when you type something in Chrome?
If you type go/slack. Chrome thinks "is this a URL or a search?" Since "go" isn't a known domain (like .com or .org), Chrome will google it.
DNS: is like an address book
DNS (Domain Name System) translates what we type into IP addresses. When you type google.com, your computer asks DNS "what's the IP address for google.com?" DNS says "142.250.80.46" and your browser goes there.
Atkins and Pearce (and most companies) run an internal DNS for the office network. All you need for go/links is for IT to add an entry: "when someone asks for go, tell them it's this IP" (the VM's IP address). Then at that IP address, you host the flask app that redirects everyone's go/ link to the final destination link.
The full flow:
- You type
go/slackin your browser - Browser asks DNS "what's
go?" - Company DNS says "that's to this VM IP"
- Browser sends a request to
http://(some real VM IP)/slack - Flask app is listening on that machine, receives the request
- It looks up "slack" in links.json, finds the destination URL
- It sends back an HTTP 302 redirect ("go here instead")
- Browser follows redirect, you land on Slack
Why Flask:
Flask is a Python library for making web servers. When you run python app.py, it starts listening for requests on port 80 (the default web port). When a request comes in for /slack, your code runs and decides what to send back. Could've used Node.js, Go, whatever—Flask is just simple and readable.
Features
- Browse all links at
go/ - Create new links at
go/new - Edit and delete existing links
- Search functionality
- Case-insensitive (
go/Slack=go/slack)
VM Setup
Clone the repo or download the flask app.
1. Spin up a Linux VM and run the app:
cd /opt && sudo git clone https://github.com/mantra-1/golink.git
cd golink && sudo python3 -m venv venv && source venv/bin/activate
sudo pip install -r requirements.txt
sudo cp golinks.service /etc/systemd/system/
sudo systemctl daemon-reload && sudo systemctl enable golinks && sudo systemctl start golinks
2. Configure DNS so go resolves to the VM's IP address on your internal network
Once that's done, everyone on the network can use and create go links.
My favorite part of go/links, if they are widely used, is that the knowledge base of go/links grows. I can imagine a future improvement of this app of an AI search through go/links to help people find information. Essentially trying to crowdsource a central documentation system at AP through go/links.
The repo is public: github.com/mantra-1/golink