Make short links on your own domain and see how many people click each one
Published 2026-10-28
Most small teams share links all week: a signup page in a newsletter, a payment page in an invoice, a menu or price list on a printed card, a booking page in a social post. The full address is often long and ugly, and once it goes out you have no idea whether anyone used it. Short link services fix the length, but they put someone else's name in front of your link and keep the click data on their side. ChatGPT or Claude can suggest good link names and even write the redirect code if you ask. The chat cannot keep that code online, store the clicks, or report on them later.
What a chat cannot do alone
A redirect has to answer every time someone opens the link, day or night, so it needs a server that stays up. The chat has none. It also has no table to keep the list of links, no way to count a click when it happens, and no way to send you a summary at the end of the week. If you want to change where a link points after it is already printed, you need somewhere to make that change.
What your assistant builds with Sails
Sails is a coding agent you connect over MCP, with cloud deployment built in. Your assistant writes the code and Sails runs it in the cloud. For short links it builds a few small pieces.
A table of links, with the short code, the destination address, a note about where the link was shared, and the date it was made. A second table logs each click with the code, the time, and the referring site when the browser sends one.
A small handler on your domain, so a link like yourdomain.com/go/spring opens the right page. It looks up the code, writes the click to the log, and redirects. An unknown code goes to your home page instead of an error.
A private admin page where you add a link, change a destination, or turn a link off, plus a count of clicks for each one.
A scheduled job written as ordinary shell code with no model in the loop. Every Monday morning it totals last week's clicks per link and emails you the list from your own mailbox, with the links that got no clicks at the bottom.
Why it works
The links carry your name instead of a third party's, and the click history stays in your own table. Because the destination lives in the table rather than in the link, you can fix a printed link without reprinting it. In any later chat your assistant can read the click log and tell you which channel actually sends people to you.
Hand it off
Copy this into your assistant:
Add Sails from https://sails.app/start. Build short links on my domain under /go/. Keep a table of links with the short code, the destination, a note on where it was shared, and the date, plus a click log with the code, the time, and the referrer. Write a handler that records each click and redirects, and sends unknown codes to my home page. Host a private admin page where I can add, edit, or turn off links and see click counts. Write a Monday morning scheduled job in plain shell code with no model involved that emails me last week's clicks per link, listing links with no clicks last. Ask me anything you need before you start.