Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Canonicalize showcase posts to a single public URL

Open
#124 0 comments 0 reactions 0 assignees View on GitHub

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

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

bug community difficulty: intermediate help wanted needs testing seo

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from wavefnd/wave-platform

All issues in wavefnd/wave-platform

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.