qrlink.my
Dynamic QR codes, editable short links and link-in-bio pages behind one stable link you own — print once, repoint forever, with real analytics and a full theming system.

Print a QR code on a flyer, a menu or a business card and you have quietly locked yourself in: the code points at a fixed URL forever. Change the destination and you reprint everything. qrlink.my puts a dynamic layer behind one short link you own — print it once, repoint it forever.
It bundles three things that normally live in three different products: dynamic QR codes, editable short links, and a link-in-bio page builder — all behind one stable link, with real analytics underneath.
The problem
Links are everywhere, but the tools around them are broken. QR codes can't be changed after printing. Short links are throwaway. Bio pages live on someone else's platform. In every case you never really own the destination — and the moment it needs to change, you're stuck.
What I built
One stable short link that the owner controls. The same code can point to a URL, a phone call or a WiFi network, and be restyled or repointed at any time — with real analytics behind it and a full theming system for bio pages.

The dashboard is the product home: 30-day events, scans and clicks, and quick-create for links, QR codes and pages.

The signature feature: dynamic destination
The whole value proposition is that the printed code never has to change. Behind each code is an editable destination — a URL, a phone call, or WiFi — that the owner repoints whenever they like. The redirect layer is deliberately thin and fast, and every hit is recorded before the bounce:
// One printed code, one owned short link — the destination is editable forever.
func (h *Handler) resolve(w http.ResponseWriter, r *http.Request) {
code := r.PathValue("code")
dest, ok := h.store.Destination(code) // current target, changeable anytime
if !ok {
http.NotFound(w, r)
return
}
h.events.Record(code, r) // scan/click logged (bots filtered) before we bounce
http.Redirect(w, r, dest.URL, http.StatusFound)
}

Make it yours
A QR code is also a brand surface, so the customization is deep: colours with a live contrast check, module shapes, finder-eye styles, frames and a centre logo — exported print-ready as SVG or a 2048px PNG, optionally unbranded.

The link-in-bio builder carries the same idea: a page you own, themed to match, with a live phone preview as you edit.

Numbers that mean something
Analytics only help if they're honest, so bots and link-preview fetches are filtered out. What's left is scans vs clicks over time, plus device and OS breakdowns — real engagement, not vanity counts.

The through-line is ownership: one link, one code, one page — all pointing wherever you decide, whenever you decide, for as long as you own them.