Skip to content

Enhance landing page with dynamic version fetching and UI polish#2

Merged
leeebo merged 5 commits intomainfrom
website
Feb 26, 2026
Merged

Enhance landing page with dynamic version fetching and UI polish#2
leeebo merged 5 commits intomainfrom
website

Conversation

@leeebo
Copy link
Owner

@leeebo leeebo commented Feb 26, 2026

Note

Low Risk
Low risk, as changes are limited to static website/docs content and client-side JavaScript; the only operational dependency added is a best-effort fetch to PyPI for the version badge.

Overview
Updates the project landing page (docs/index.html) with a redesigned hero/CTA, three scroll-activated “mode” sections (IDF/bin/interactive) that each run their own terminal/progress animation, and more responsive styling.

Adds client-side fetching of the latest PyPI version to populate the release badge, and updates README.md to link to the official website. Also introduces a new website/index.html static page copy of the older landing content.

Written by Cursor Bugbot for commit 2e15cce. This will update automatically on new commits. Configure here.

Summary by CodeRabbit

Release Notes

  • New Features

    • Launched a new landing page with hero section, copyable install command, and interactive terminal demonstration.
    • Added feature showcase panels highlighting key modes with simulated terminal scenarios.
    • Implemented dynamic package version display fetched from the registry on page load.
  • Documentation

    • Redesigned documentation layout with improved responsiveness and modular sections.
    • Enhanced interactive command-line scenarios with animated progress visualization.
  • Updates

    • Updated README navigation to include website link.

@leeebo leeebo merged commit 9e8ee71 into main Feb 26, 2026
16 of 17 checks passed
@coderabbitai
Copy link

coderabbitai bot commented Feb 26, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 312817f and 2e15cce.

📒 Files selected for processing (3)
  • README.md
  • docs/index.html
  • website/index.html

📝 Walkthrough

Walkthrough

This PR updates project documentation and introduces a new website presence. It adds a website badge to the README, substantially redesigns the docs landing page with new feature showcases and interactive terminal scenario simulations, and creates a standalone promotional website with installation instructions and a multi-device flashing demo animation.

Changes

Cohort / File(s) Summary
Documentation Navigation
README.md
Added website badge and updated navigation line to include "Official Website" link alongside language options.
Docs Landing Page
docs/index.html
Comprehensive UI overhaul: introduced new CSS styling and responsive layout structure; added "modes-showcase" section with three feature panels (IDF Ready, Direct Binary Flash, Interactive Selection); replaced static terminal content with dynamic scenario runner system supporting command typing animation and simulated console output with progress bars; integrated IntersectionObserver for auto-play triggering; added PyPI version badge fetching and clipboard copy functionality for install command.
Website Landing Page
website/index.html
New promotional landing page with hero section, release badge, and gradient-styled branding; includes copyable pip install command with typing animation; implements simulated parallel-flashing demo with eight-port progress visualization, animated progress bars with percentage counters, and completion banner; client-side only with no error handling.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • PR #1 — Modifies docs/index.html and website files with similar terminal typing animation, progress bar visualization, and multi-port flashing demo UI logic.

Poem

🐰 A website hops into view,
With terminals that dance and brew,
Progress bars tick left to right,
Documentation shines so bright!
Flash eight ports at once with glee—
What a marvelous sight to see!

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch website

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 and usage tips.

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Bugbot Free Tier Details

Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable autofix in the Cursor dashboard.

</script>
</body>

</html> No newline at end of file
Copy link

Choose a reason for hiding this comment

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

Unreferenced duplicate file accidentally committed

Medium Severity

website/index.html is a near-complete duplicate of the old docs/index.html (before the redesign). It's not referenced anywhere in the codebase — no config, README, or setup mentions the website/ directory. It also carries a broken GitHub link (esp_batch_flash with underscore instead of the correct esp-batch-flash with dash per setup.py) and a hardcoded wrong version (v1.2.0 while the actual version is 0.2.0). This looks like a backup copy that was accidentally committed alongside the redesigned docs/index.html.

Fix in Cursor Fix in Web

document.getElementById('copy-trigger').addEventListener('click', function() {
// Intersection Observer for scroll-triggered animations
const observerOptions = {
threshold: 0.5
Copy link

Choose a reason for hiding this comment

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

Feature sections invisible on shorter viewports

Medium Severity

The .feature-item elements default to opacity: 0 and only become visible when the IntersectionObserver fires with threshold: 0.5. Each feature item is very tall (~1000px+ on desktop with 8rem padding, 4rem gap, and a 420px min-height terminal). On viewports shorter than roughly half the element height (~515px), the element can never achieve 50% visibility, so the observer never fires and the active class is never added. The entire modes showcase section remains permanently invisible on smaller laptops, landscape tablets, or resized windows.

Additional Locations (1)

Fix in Cursor Fix in Web

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