mazipan / mazipan/coding-kids

seo: dynamic per-route title/meta description + noindex on app routes

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

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
7
Forks
1
Avg merge
1h 41m
Merged PRs (30d)
21

Description

Problem

index.html sets one static <title> and meta description shared by every route — /, /app, /app/blocks/world/:worldId/:lessonNumber, /app/thinking/world/:worldId/:lessonNumber, etc. Consequences:

  • The browser tab title never changes when navigating within the app (every screen already renders its own <h1> per .ai/agents/context.md's route table, but the document <title> doesn't follow it).
  • Gameplay routes inherit the landing page's marketing description in any social share preview or search result, which is inaccurate and, because lesson/world screens are highly repetitive in structure, a thin/duplicate-content risk if they were ever indexed.

Task

  • Add lightweight per-route document head management — a small custom hook (e.g. useDocumentHead(title, options)) that sets document.title and updates/creates the <meta name="description"> and <meta name="robots"> tags on route change. No new dependency should be needed for this; if one is proposed anyway it must be called out in the plan per the "no new dependency without it appearing in the plan" hard constraint.
  • / keeps the existing rich title/description and index, follow.
  • All /app/* routes get a route-appropriate title (e.g. "{World name} — CodeKids", "{Lesson name} — CodeKids") and noindex, follow (keep follow so link equity still flows, just don't index the gameplay screens themselves).

Files

  • index.html (baseline meta stays as the / default)
  • src/App.tsx (wire the hook into each route)
  • new hook/util, e.g. src/hooks/useDocumentHead.ts

Part of

#74

Contributor guide

No contributing guide indexed for this repository

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.

Research direction

Read index.html and the route table in .ai/agents/context.md, then inspect src/App.tsx to see how the listed routes are rendered. Add the new hook or utility under src/hooks and wire it to the routes; done means / retains its existing metadata while every /app/* route has an appropriate title, description, and noindex, follow robots value.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend, web-dev
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
74/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.