Canonicalize showcase posts to a single public URL
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 52/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- go, javascript
- Domain
- backend-api-design, full-stack, web-dev
Research direction
Start in internal/web/seo.go, seo_status.go, frontend/src/pages/CommunityPage.vue, and the frontend router, using the f371314 reproduction and isolated Badger fixture as the baseline. Test direct requests and SPA navigation for showcase aliases, ordinary and missing threads, and storage failure; done means redirects, metadata, structured data, and sitemap locations agree without changing unrelated routing.
Written by the indexing model from the issue text.
Description
Problem
A showcase post can be indexed under two self-canonical URLs. The sitemap lists only the showcase URL, while the generic community route also returns 200 with its own canonical.
Reproduction
At f371314, create a synthetic thread with SpaceID: "showcase" and ID showcase-example, then request both routes through the frontend handler:
/community/thread/showcase-example: 200; canonical points to that generic route./community/showcase/showcase-example: 200; canonical points to the showcase route.
Both responses have no redirect. The sitemap includes only /community/showcase/showcase-example. This was reproduced with an isolated Badger fixture.
Scope
Use the stored thread space to select one canonical route on both the server and client. Start in internal/web/seo.go, seo_status.go, frontend/src/pages/CommunityPage.vue, and the frontend router.
Acceptance criteria
- Permanently redirect a valid showcase post's generic community URL to its showcase URL on direct requests.
- Normalize SPA navigation to the same destination without leaving conflicting metadata.
- Keep canonical, Open Graph URL, structured-data URL, and sitemap location consistent.
- Preserve ordinary community and personal-space routing; do not redirect a missing or unrelated thread to a showcase page.
- Test both aliases, an ordinary thread, a missing thread, and a storage failure.
The composer noindex bug is #70 and collection outage handling is #73; neither fixes this duplicate-detail route.
Audit baseline: f371314.
- Dominant language
- Go
- Stars
- 1
- Forks
- 7
- Avg merge
- 1h 45m
- Merged PRs (30d)
- 16
Getting set up
We have not checked this project's setup files yet. Start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from wavefnd/wave-platform
-
bug difficulty: beginner documentation good first issue help wanted localization
Difficulty 1/5 Under an hour Newbie friendliness 90/100
wavefnd/wave-platform#140 ·
-
bug difficulty: beginner documentation good first issue help wanted localization
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
wavefnd/wave-platform#139 ·
-
bug difficulty: beginner documentation good first issue help wanted localization
Difficulty 2/5 Half a day Newbie friendliness 88/100
wavefnd/wave-platform#137 ·
-
bug difficulty: beginner documentation good first issue help wanted localization
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
wavefnd/wave-platform#136 ·
-
bug difficulty: beginner documentation good first issue help wanted localization
Difficulty 1/5 Under an hour Newbie friendliness 94/100
wavefnd/wave-platform#135 ·
All issues in wavefnd/wave-platform
Similar issues
-
priority: low 🌱 type: enhancement 💅🏼
Difficulty 2/5 Half a day Newbie friendliness 84/100
nebari-dev/llm-serving-pack#199 ·
Maintainers usually reply within 3 days
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
area/helm kind/bug priority/backlog triage/accepted
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
lexfrei/cloudflare-tunnel-gateway-controller#889 ·
Maintainers usually reply within 1 day
-
compiler/runtime
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Priority
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
canonical/chisel-releases#1328 ·
Maintainers usually reply within 1 day