- From: Ethan Davidson <ethan.r.davidson@gmail.com>
- Date: Thu, 6 Nov 2025 18:11:52 -0800
- To: Tim Bray <tbray@textuality.com>
- Cc: ietf-http-wg@w3.org
- Message-ID: <CAHoCOg_C5H5T-JA1sKHbxdWOA=ai+tNpaJchWYHZ7m1oafR70Q@mail.gmail.com>
Hi Tim, Thank you for the questions and for sharing that perspective from your time at Google and AWS! To answer your first question, this draft is born from practical, real-world use. Who needs this? I maintain this algorithm as a TypeScript library (jsr.io/@fartlabs/go) that is already in production use across several open-source organizations and projects (e.g., acmcsuf.com, fartlabs.org, etok.me). The problem we face isn't with public shortlinks (which I agree are less common), but with internal, organizational link management. Many organizations, including my own, use a "go-link" system (e.g. go/example) to manage internal knowledge. The core issue is portability. We want to define our entire shortlink configuration as a simple, static Record<string, string> (essentially a JSON file) and have it behave identically whether it's deployed on a Cloudflare Worker, a Vercel Edge Function, a Deno server, or a simple static site. Without a standard, each new implementation has to re-invent the wheel for: - How to implement internal redirects (e.g., go/docs -> go/docs/latest). - How to handle query parameters from the shortlink vs. the destination. - How to handle fragments. This leads to inconsistent behavior and a high maintenance burden for small, FOSS-oriented teams. This draft solves that by standardizing the resolution algorithm, making the ruleset itself portable and the behavior deterministic, regardless of the platform. Your point about the TinyURL design problem is well-taken. That's a challenge focused on scalable generation and storage. This draft is intentionally scoped to the other side of the problem: deterministic resolution. It's designed to be stateless and work with any given ruleset, not define how that ruleset is generated or stored. The motivation is to provide a "batteries-included" spec for developers and organizations who just want their internal go/links to work consistently everywhere. Given this context of internal/organizational use, I'd be very grateful if you (or others on the list) could take another look at the draft's specific mechanisms, like the longest-prefix matching and query precedence rules, which are key to enabling that "simple key-value" management style. Again, thank you for your feedback. Best regards, Ethan Davidson https://etok.me
Received on Friday, 7 November 2025 02:12:09 UTC