Skip to content

feat(site): landing page repositioned to 'all developer disk waste' - #45

Merged
AhmedFr merged 10 commits into
mainfrom
feat/landing-all-disk-waste
Jul 20, 2026
Merged

AhmedFr merged 10 commits into
mainfrom
feat/landing-all-disk-waste

Conversation

@AhmedFr

@AhmedFr AhmedFr commented Jul 20, 2026 •

Copy link
Copy Markdown
Owner

Repositions the TidyDisk landing page from a node_modules cleaner to "all developer disk waste" (projects + caches + packages + Docker), across all 5 locales.

What changed

  • Hero + statement band broadened: subhead names node_modules + Docker + build caches; the "heaviest object" joke kept but widened to Docker/caches/dead projects.
  • New "Areas" section — four peer cards (Projects / Caches / Packages / Docker), Docker accented, between the band and the features.
  • Docker feature row with a hand-built by-project visual + a new i-docker sprite icon.
  • Caches promoted from "coming soon" to real; the pill reframed to genuinely-future items only.
  • Hero mockup rebuilt to show the app's new panel dashboard (the old one recreated a UI the app no longer has); AppPanel left intact for the OG image.
  • meta.description broadened; all copy translated into fr/es/de/pt.

Quality

  • Built spec → plan → subagent-driven TDD, 7 tasks, fresh implementer + independent review each, final Opus whole-branch review (Ready to merge, 0 Critical/0 Important).
  • pnpm typecheck + pnpm build green (41 pages, 5 locales). The Dictionary type enforced all 5 locales (features became a 5-tuple, new areas slice).
  • Site lint clean except one pre-existing CookieConsent error from feat(site): consent-gated Google Analytics + brand favicon + legal pages #44 (not this branch, not in CI).

Follow-up: optional native-speaker proofread of the new machine-translated fr/es/de/pt copy.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added an “Areas” section covering projects, caches, packages, and Docker storage.
    • Added a dedicated Docker cleanup feature with grouped resource details.
    • Updated the hero dashboard to show total tracked developer disk usage across key storage areas.
  • Improvements

    • Broadened landing-page messaging beyond node_modules to include Docker data, build caches, and forgotten projects.
    • Updated marketing content and metadata across English, French, Spanish, German, and Portuguese.
    • Refreshed “coming soon” messaging for package caches and build outputs.

@vercel

vercel Bot commented Jul 20, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
clean-my-node-modules Ready Ready Preview, Comment Jul 20, 2026 9:47am

@coderabbitai

coderabbitai Bot commented Jul 20, 2026 •

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The landing page is repositioned around all developer disk waste. It adds Areas and Docker feature sections, expands i18n contracts and translations across five locales, replaces the hero dashboard mock, and updates related design, verification, and status documentation.

Changes

Landing Page Redesign

Layer / File(s) Summary
i18n contract and localized messaging
site/lib/i18n/i18n.types.ts, site/lib/i18n/dictionaries/*, docs/superpowers/...
Dictionary types now include four Areas cards and five feature entries; translated copy covers Docker, caches, projects, packages, SEO, and coming-soon content.
Areas section and page composition
site/components/Areas/*, site/components/pages/HomePage/HomePage.tsx
A new dictionary-driven Areas grid renders Projects, Caches, Packages, and Docker cards between the statement band and feature list.
Docker feature visual and row
site/components/Features/*, site/components/SvgSprite/SvgSprite.tsx
Features gains a fifth Docker row with a static grouped-by-project visual and Docker sprite icon.
Hero dashboard replacement and verification
site/components/Hero/*, STATUS.html, docs/superpowers/...
HeroScene now uses HeroPanel with tracked-disk rows, while planning and status records document implementation and verification steps.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Visitor
  participant HomePage
  participant Areas
  participant Features
  participant HeroScene
  Visitor->>HomePage: open landing page
  HomePage->>Areas: render localized Areas cards
  HomePage->>Features: render localized feature rows
  HeroScene->>HeroScene: render HeroPanel dashboard
Loading

Possibly related PRs

Poem

A bunny hops through Docker’s maze,
Past caches stacked in dusty ways.
Four bright cards and panels gleam,
Five feature rows now join the dream.
“No rm -rf!” the rabbit sings—
Disk space dances on tidy springs.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 66.67% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: repositioning the landing page around broader developer disk waste.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/landing-all-disk-waste

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint install timed out. The project may have too many dependencies for the sandbox.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@AhmedFr
AhmedFr merged commit 10866f1 into main Jul 20, 2026
4 of 5 checks passed
AhmedFr added a commit that referenced this pull request Jul 20, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@site/components/Hero/HeroPanel.tsx`:
- Around line 5-14: Move the HeroPanel component from the Hero directory into a
dedicated HeroPanel folder, preserving the exported HeroPanel symbol and its
current behavior. Add the required index.ts barrel and HeroPanel.types.ts file,
and relocate the ROWS constant to HeroPanel.constants.ts if consistent with the
project convention; update imports and exports that reference the original
location.

In `@STATUS.html`:
- Line 17: Update the updated field in the STATUS data block from July 17, 2026
to today’s date, July 20, 2026, without changing other status fields.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 1581c1b7-5f5d-4854-b76f-d60efaebe884

📥 Commits

Reviewing files that changed from the base of the PR and between 005034f and b5be3f1.

📒 Files selected for processing (19)
  • STATUS.html
  • docs/superpowers/plans/2026-07-16-landing-page-all-disk-waste.md
  • docs/superpowers/specs/2026-07-16-landing-page-all-disk-waste-design.md
  • site/components/Areas/Areas.constants.ts
  • site/components/Areas/Areas.tsx
  • site/components/Areas/Areas.types.ts
  • site/components/Areas/index.ts
  • site/components/Features/DockerVisual.tsx
  • site/components/Features/Features.tsx
  • site/components/Hero/HeroPanel.tsx
  • site/components/Hero/HeroScene.tsx
  • site/components/SvgSprite/SvgSprite.tsx
  • site/components/pages/HomePage/HomePage.tsx
  • site/lib/i18n/dictionaries/de.tsx
  • site/lib/i18n/dictionaries/en.tsx
  • site/lib/i18n/dictionaries/es.tsx
  • site/lib/i18n/dictionaries/fr.tsx
  • site/lib/i18n/dictionaries/pt.tsx
  • site/lib/i18n/i18n.types.ts

Comment on lines +5 to +14
const ROWS = [
{ name: "Projects", used: 41.2, threshold: 30, value: "41.2 GB", sev: false },
{ name: "Caches", used: 6.4, threshold: 10, value: "6.4 GB", sev: false },
{ name: "Packages", used: 0, threshold: 1, value: "7 vuln", sev: true },
{ name: "Docker", used: 23.6, threshold: 20, value: "23.6 GB", sev: false },
];

// The hero's recreation of the new read-only menu bar panel dashboard:
// a "Tracked on disk" aggregate plus four click-through area rows.
export function HeroPanel() {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Move to a dedicated component folder.

As per coding guidelines, components must follow the one-folder-per-component structure. HeroPanel.tsx is currently placed as a standalone file inside site/components/Hero/.

Please extract it into its own directory (site/components/HeroPanel/HeroPanel.tsx) alongside a required index.ts and HeroPanel.types.ts. You should also consider extracting the ROWS constant into a HeroPanel.constants.ts file within that folder to fully satisfy the project structure convention.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@site/components/Hero/HeroPanel.tsx` around lines 5 - 14, Move the HeroPanel
component from the Hero directory into a dedicated HeroPanel folder, preserving
the exported HeroPanel symbol and its current behavior. Add the required
index.ts barrel and HeroPanel.types.ts file, and relocate the ROWS constant to
HeroPanel.constants.ts if consistent with the project convention; update imports
and exports that reference the original location.

Source: Coding guidelines

Comment thread STATUS.html
app: "TidyDisk",
version: "1.0.0",
updated: "2026-07-16",
updated: "2026-07-17",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Update the status date to today.

As per coding guidelines, you must update the STATUS data block at the end of every session and bump updated to today's date. Since the current date is July 20, 2026, please update this field.

🗓️ Proposed fix
-  updated: "2026-07-17",
+  updated: "2026-07-20",
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
updated: "2026-07-17",
updated: "2026-07-20",
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@STATUS.html` at line 17, Update the updated field in the STATUS data block
from July 17, 2026 to today’s date, July 20, 2026, without changing other status
fields.

Source: Coding guidelines

This branch was successfully deployed

1 active deployment
Preview — b5be3f17 Deployed Jul 20, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant