r3dr: URL shortener page under Projects - #277
Merged
Merged
Conversation
Ports the r3dr_v2 frontend (MoonBase #1359 chunk 2) to /r3dr: shorten form with expiry chips, localStorage recent links, iili.uk short links. Nav entry moves from Elsewhere (r3dr.net, retiring) to Projects. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017HmkKHfFNgq4buWdcAFqB8
This was referenced Aug 21, 2026
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
muchq | cca3e5d | Commit Preview URL Branch Preview URL |
Aug 21 2026, 09:02 PM |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ports the r3dr_v2 frontend (MoonBase #1359 chunk 2) into the site as
/r3dr, under the Projects nav. The standalone sibling keeps living in MoonBase, rebranded for its new home at iili.uk — both mint from the same API and displayiili.uk/r/{slug}short links.src/apps/r3dr/on the house convention: shorten form (bare domains gethttps://, uppercased schemes lowercased, API traits mirrored client-side in code points), expiry chips (1h/1d/7d/30d — the top one 5 minutes under the API ceiling so a fast client clock can't mint a 400), copy buttons with announced states, last-five recent links in localStorage (slug-shape validated, expiry-pruned each minute), 10s fetch timeout, friendly 429/network messages. Springtime page palette in module CSS; a11y carried over: busy-not-disabled submit, persistent live regions,aria-pressedchips.VITE_R3DR_API_URL || https://api.muchq.com/r3dr/v2, wired intolocal-serverlike the other apps.@testing-library/user-event(dev).Verified: typecheck, lint, 460/460 vitest (7 new suites), production build, Playwright smoke in real Chromium at 1440×900 and 390×844 (mint → copy → recent persistence across reload → 400 surfacing → client-validation short-circuit). The component logic previously went through two full review panels on the MoonBase side; all folded findings are in this port.
🤖 Generated with Claude Code
https://claude.ai/code/session_017HmkKHfFNgq4buWdcAFqB8
Generated by Claude Code