Skip to content

Rebuild website with Next.js and enhance layout components#274

Closed
danielmarv wants to merge 10 commits intohiero-ledger:mainfrom
OpenElements:daniel-dev-rebuild
Closed

Rebuild website with Next.js and enhance layout components#274
danielmarv wants to merge 10 commits intohiero-ledger:mainfrom
OpenElements:daniel-dev-rebuild

Conversation

@danielmarv
Copy link

@danielmarv danielmarv commented Mar 11, 2026

Description

This pull request sets up the initial structure for a new Next.js-based Hiero website, migrating from the previous Hugo site. It introduces a modern React/Next.js application with TypeScript, Tailwind CSS, and essential project configuration files. The PR adds foundational components, layout, and static data for the site, along with configuration for development, linting, deployment, and code quality.

The most important changes are:

1. Next.js Application Bootstrapping

  • Added a new Next.js project with TypeScript support, including essential configuration files: tsconfig.json, package.json, next.config.ts, and postcss.config.mjs. Tailwind CSS and other dependencies are configured for styling and markdown support. [1] [2] [3] [4]
  • Introduced a basic project README with setup instructions and links to documentation.

2. Core Application Layout and Components

  • Implemented the main layout in app/layout.tsx, including global font configuration, metadata, and structure for header, footer, and main content.
  • Added reusable components: Header, Footer, Menu, and Container, providing navigation, branding, and consistent page structure. [1] [2] [3] [4]
  • Created a homepage in app/page.tsx with a migration notice and links to the repository and blog.

3. Static Data for Site Content

  • Added JSON data files for repository stats and the Technical Steering Committee, enabling future dynamic rendering of this information. [1] [2]

4. Development, Linting, and Deployment Configuration

  • Added ESLint configuration for Next.js and TypeScript, and a .gitignore with standard Node/Next.js exclusions. [1] [2]
  • Added a nixpacks.toml file to support reproducible builds and deployment with Nixpacks.

5. Code Quality and Tooling

  • Updated .codacy.yaml to exclude lock files from analysis, improving code quality checks.

These changes provide a solid, modern foundation for further development of the Hiero website on Next.js.

Changes Made

  • Added...
  • Modified...
  • Fixed...

Related Issues

Screenshots (if applicable)

Checklist

  • Tests added/updated
  • Documentation updated
  • Linting passes
  • Branch up-to-date with main

Deployment Notes

Summary by CodeRabbit

  • New Features

    • Initialized a Next.js website with responsive design and modern styling
    • Added header and navigation menu with mobile support
    • Created homepage announcing website migration
    • Implemented responsive footer component
    • Applied comprehensive Tailwind CSS theming and styling
  • Chores

    • Updated repository configuration and ignore rules
    • Set up project dependencies and build tooling

…folder

Signed-off-by: Daniel Ntege <danientege785@gmail.com>
…folder

Signed-off-by: Daniel Ntege <danientege785@gmail.com>
…folder

Signed-off-by: Daniel Ntege <danientege785@gmail.com>
Signed-off-by: Daniel Ntege <danientege785@gmail.com>
Signed-off-by: Daniel Ntege <danientege785@gmail.com>
chore: initialization of the website rebuild to nextjs in the nextjs folder
…bility

Signed-off-by: Daniel Ntege <danientege785@gmail.com>
…layout

Signed-off-by: Daniel Ntege <danientege785@gmail.com>
Signed-off-by: Daniel Ntege <danientege785@gmail.com>
@danielmarv danielmarv requested review from a team as code owners March 11, 2026 12:29
@netlify
Copy link

netlify bot commented Mar 11, 2026

Deploy Preview for hiero-open-source ready!

Name Link
🔨 Latest commit a220519
🔍 Latest deploy log https://app.netlify.com/projects/hiero-open-source/deploys/69b1603e25625300077e6479
😎 Deploy Preview https://deploy-preview-274--hiero-open-source.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@lfdt-bot
Copy link
Contributor

Snyk checks have passed. No issues have been found so far.

Status Scanner Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@coderabbitai
Copy link

coderabbitai bot commented Mar 11, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 8c4da42e-fafe-4e8e-bd34-ffc21e36dbdf

📥 Commits

Reviewing files that changed from the base of the PR and between 568331d and a220519.

⛔ Files ignored due to path filters (97)
  • nextjs/app/favicon.ico is excluded by !**/*.ico
  • nextjs/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • nextjs/public/file.svg is excluded by !**/*.svg
  • nextjs/public/globe.svg is excluded by !**/*.svg
  • nextjs/public/images/HI60000_GetInvolvedBanner_V1.jpg is excluded by !**/*.jpg
  • nextjs/public/images/Hiero-Favicon.svg is excluded by !**/*.svg
  • nextjs/public/images/Hiero-Feb-16th.png is excluded by !**/*.png
  • nextjs/public/images/Hiero-Icon-Decentralized.svg is excluded by !**/*.svg
  • nextjs/public/images/Hiero-Icon-Fair.svg is excluded by !**/*.svg
  • nextjs/public/images/Hiero-Icon-Fast.svg is excluded by !**/*.svg
  • nextjs/public/images/Hiero-Icon-Github.svg is excluded by !**/*.svg
  • nextjs/public/images/Hiero-Icon-Heart.svg is excluded by !**/*.svg
  • nextjs/public/images/Hiero-Icon-Leaderless.svg is excluded by !**/*.svg
  • nextjs/public/images/Hiero-Icon-ModalClose.svg is excluded by !**/*.svg
  • nextjs/public/images/Hiero-Icon-Nav-Menu.svg is excluded by !**/*.svg
  • nextjs/public/images/Hiero-Icon-Open.svg is excluded by !**/*.svg
  • nextjs/public/images/Hiero-Icon-OpenSource.svg is excluded by !**/*.svg
  • nextjs/public/images/Hiero-Icon-Quote-Left.svg is excluded by !**/*.svg
  • nextjs/public/images/Hiero-Icon-Quote-Right.svg is excluded by !**/*.svg
  • nextjs/public/images/Hiero-Icon-Secure.svg is excluded by !**/*.svg
  • nextjs/public/images/Hiero-Icon-Timeline-1.svg is excluded by !**/*.svg
  • nextjs/public/images/Hiero-Icon-Timeline-2.svg is excluded by !**/*.svg
  • nextjs/public/images/Hiero-Icon-Timeline-3.svg is excluded by !**/*.svg
  • nextjs/public/images/Hiero-Icon-Timeline-4.svg is excluded by !**/*.svg
  • nextjs/public/images/Hiero-Icon-Timeline-5.svg is excluded by !**/*.svg
  • nextjs/public/images/Hiero-Icon-Timeline-6.svg is excluded by !**/*.svg
  • nextjs/public/images/Hiero-Icon-wLogo-white-text.svg is excluded by !**/*.svg
  • nextjs/public/images/Hiero-Icon-wLogo.svg is excluded by !**/*.svg
  • nextjs/public/images/Hiero-Icon.svg is excluded by !**/*.svg
  • nextjs/public/images/Hiero-Logo-Calaxy.png is excluded by !**/*.png
  • nextjs/public/images/Hiero-Logo-DiamondStandard.svg is excluded by !**/*.svg
  • nextjs/public/images/Hiero-Logo-HashPack.png is excluded by !**/*.png
  • nextjs/public/images/Hiero-Logo-Hashgraph.png is excluded by !**/*.png
  • nextjs/public/images/Hiero-Logo-HbarFoundry.png is excluded by !**/*.png
  • nextjs/public/images/Hiero-Logo-Hedera.png is excluded by !**/*.png
  • nextjs/public/images/Hiero-Logo-Hgraph.png is excluded by !**/*.png
  • nextjs/public/images/Hiero-Logo-IBM.png is excluded by !**/*.png
  • nextjs/public/images/Hiero-Logo-Outline.svg is excluded by !**/*.svg
  • nextjs/public/images/Hiero-Logo-Sentx.png is excluded by !**/*.png
  • nextjs/public/images/Hiero-Logo-ioBuilders.png is excluded by !**/*.png
  • nextjs/public/images/Hiero-fair-cover.png is excluded by !**/*.png
  • nextjs/public/images/Hiero-orgs.png is excluded by !**/*.png
  • nextjs/public/images/Hiero_v4.png is excluded by !**/*.png
  • nextjs/public/images/IPI.png is excluded by !**/*.png
  • nextjs/public/images/Jan-Links.png is excluded by !**/*.png
  • nextjs/public/images/Python_office_hours.jpg is excluded by !**/*.jpg
  • nextjs/public/images/SDK_hub_V1.jpg is excluded by !**/*.jpg
  • nextjs/public/images/TSC_results_V1.jpg is excluded by !**/*.jpg
  • nextjs/public/images/blog_posts/python_office_hour.jpg is excluded by !**/*.jpg
  • nextjs/public/images/blog_posts/v0.1.4.jpg is excluded by !**/*.jpg
  • nextjs/public/images/blog_posts/v0.1.6.png is excluded by !**/*.png
  • nextjs/public/images/blog_posts/v0.1.7.jpg is excluded by !**/*.jpg
  • nextjs/public/images/blog_titles/blog_august_open_issues.jpg is excluded by !**/*.jpg
  • nextjs/public/images/blog_titles/blog_developer_interest_flourishing.png is excluded by !**/*.png
  • nextjs/public/images/blog_titles/blog_release_v0.1.3.jpg is excluded by !**/*.jpg
  • nextjs/public/images/blog_titles/hiero-hacktoberfest-banner.jpg is excluded by !**/*.jpg
  • nextjs/public/images/blog_titles/september-issues.png is excluded by !**/*.png
  • nextjs/public/images/feb_ninth.png is excluded by !**/*.png
  • nextjs/public/images/feb_second.png is excluded by !**/*.png
  • nextjs/public/images/feb_twentythird.png is excluded by !**/*.png
  • nextjs/public/images/hacktoberfest-2025.png is excluded by !**/*.png
  • nextjs/public/images/hedera-devday-2026.png is excluded by !**/*.png
  • nextjs/public/images/hiero-cli.png is excluded by !**/*.png
  • nextjs/public/images/hiero-did-sdk-js.png is excluded by !**/*.png
  • nextjs/public/images/hiero-enterprise-java.png is excluded by !**/*.png
  • nextjs/public/images/hiero-graduation.png is excluded by !**/*.png
  • nextjs/public/images/hiero-hcs.png is excluded by !**/*.png
  • nextjs/public/images/hip-1261.png is excluded by !**/*.png
  • nextjs/public/images/march_second.png is excluded by !**/*.png
  • nextjs/public/images/members/Mounil2005.png is excluded by !**/*.png
  • nextjs/public/images/members/cheese-cakee.jpg is excluded by !**/*.jpg
  • nextjs/public/images/members/chithraka-kal.jpeg is excluded by !**/*.jpeg
  • nextjs/public/images/members/exploreriii.png is excluded by !**/*.png
  • nextjs/public/images/profile-hiero.png is excluded by !**/*.png
  • nextjs/public/images/sdk-collaboration-hub.png is excluded by !**/*.png
  • nextjs/public/images/swift-6-support-banner.png is excluded by !**/*.png
  • nextjs/public/images/transition.png is excluded by !**/*.png
  • nextjs/public/images/tsc-vote-september.jpg is excluded by !**/*.jpg
  • nextjs/public/images/tsc-voting-process-post/TSCVotingProcessBanner_V1.jpg is excluded by !**/*.jpg
  • nextjs/public/images/tsc-voting-process-post/helios-test-election.png is excluded by !**/*.png
  • nextjs/public/images/tsc-voting-process-post/helios-vote.png is excluded by !**/*.png
  • nextjs/public/images/tsc-voting-process-post/helios-voting-home-page.png is excluded by !**/*.png
  • nextjs/public/images/tsc/Hiero_v3.png is excluded by !**/*.png
  • nextjs/public/images/tsc/Hiero_v4.png is excluded by !**/*.png
  • nextjs/public/images/tsc/alex.jpg is excluded by !**/*.jpg
  • nextjs/public/images/tsc/brandon.jpeg is excluded by !**/*.jpeg
  • nextjs/public/images/tsc/georgi.jpeg is excluded by !**/*.jpeg
  • nextjs/public/images/tsc/hendrik.jpg is excluded by !**/*.jpg
  • nextjs/public/images/tsc/leemon.jpg is excluded by !**/*.jpg
  • nextjs/public/images/tsc/michael.jpeg is excluded by !**/*.jpeg
  • nextjs/public/images/tsc/milan.jpeg is excluded by !**/*.jpeg
  • nextjs/public/images/tsc/richard.jpg is excluded by !**/*.jpg
  • nextjs/public/images/tsc/stoyan.jpg is excluded by !**/*.jpg
  • nextjs/public/images/tsc_results_sep.jpg is excluded by !**/*.jpg
  • nextjs/public/next.svg is excluded by !**/*.svg
  • nextjs/public/vercel.svg is excluded by !**/*.svg
  • nextjs/public/window.svg is excluded by !**/*.svg
📒 Files selected for processing (20)
  • .codacy.yaml
  • .gitignore
  • nextjs/.gitignore
  • nextjs/README.md
  • nextjs/app/globals.css
  • nextjs/app/layout.tsx
  • nextjs/app/page.tsx
  • nextjs/components/Container.tsx
  • nextjs/components/Footer.tsx
  • nextjs/components/Header.tsx
  • nextjs/components/Menu.tsx
  • nextjs/data/repository_stats.json
  • nextjs/data/technical_steering_committee.json
  • nextjs/eslint.config.mjs
  • nextjs/global.d.ts
  • nextjs/next.config.ts
  • nextjs/nixpacks.toml
  • nextjs/package.json
  • nextjs/postcss.config.mjs
  • nextjs/tsconfig.json

📝 Walkthrough

Walkthrough

This pull request introduces a new Next.js project scaffold within the repository. It adds configuration files, component structures, global styling with Tailwind CSS v4, a responsive navigation menu, static data files, and updates root-level ignore patterns to accommodate the new Next.js subdirectory while excluding its lockfile from analysis.

Changes

Cohort / File(s) Summary
Root-level Configuration
.codacy.yaml, .gitignore
Updated Codacy exclusions for the Next.js lockfile; scoped root public/ ignore with explicit exception for nextjs/public/.
Build & Tooling Configuration
nextjs/...config.*, nextjs/.gitignore, nextjs/package.json
Next.js, ESLint, PostCSS, TypeScript, and Nixpacks configurations; project dependencies and gitignore rules.
App Layout & Styling
nextjs/app/layout.tsx, nextjs/app/globals.css, nextjs/README.md
Root layout with Google fonts, global Tailwind v4 base styles, component overrides, and project documentation.
Page & Component Layer
nextjs/app/page.tsx, nextjs/components/Container.tsx, nextjs/components/Header.tsx, nextjs/components/Footer.tsx, nextjs/components/Menu.tsx
Home hero page, presentational container/header/footer components, and a client-side responsive navigation menu with state and path-based active styling.
Type Declarations & Data
nextjs/global.d.ts, nextjs/data/repository_stats.json, nextjs/data/technical_steering_committee.json
TypeScript CSS module ambient declaration and static JSON datasets for repository information and committee members.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰 A warren of configs, a garden of styles,
Components arranged in neat little files,
With tailwind and fonts dancing merrily round,
A Next.js home blooms from repository ground! ✨🌿

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

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
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR bootstraps a new nextjs/ Next.js + TypeScript + Tailwind v4 application to begin migrating the Hiero website from Hugo, adding initial layout components and static site data alongside deployment/linting configuration.

Changes:

  • Adds a new Next.js app structure (app/, components/, configs) with Tailwind v4 styling and shared layout (Header/Footer/Menu).
  • Introduces static JSON data for repository stats and the Technical Steering Committee.
  • Adds a large set of public assets (logos/icons/images) and deployment/tooling config (ESLint, Nixpacks, Codacy, gitignore adjustments).

Reviewed changes

Copilot reviewed 18 out of 117 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
nextjs/tsconfig.json TypeScript configuration for the Next.js app (incl. path alias).
nextjs/postcss.config.mjs PostCSS config for Tailwind v4 integration.
nextjs/package.json App dependencies/scripts for Next.js + Tailwind + tooling.
nextjs/nixpacks.toml Nixpacks build/install/start pipeline for deployment.
nextjs/next.config.ts Next.js configuration (image remote patterns).
nextjs/eslint.config.mjs Flat ESLint config using Next.js presets and ignores.
nextjs/global.d.ts Global TS module declaration for CSS imports.
nextjs/README.md Initial Next.js project README.
nextjs/.gitignore Next.js-scoped gitignore for build artifacts and env files.
nextjs/app/layout.tsx Root layout with fonts, metadata, header/footer scaffolding.
nextjs/app/page.tsx Initial homepage migration notice and links.
nextjs/app/globals.css Tailwind v4 theme tokens and global styles ported from Hugo.
nextjs/components/Container.tsx Shared layout container wrapper.
nextjs/components/Header.tsx Fixed header with logo + menu.
nextjs/components/Menu.tsx Responsive navigation menu (mobile overlay + desktop nav).
nextjs/components/Footer.tsx Global footer with LF Projects policy link.
nextjs/data/repository_stats.json Static repository stats seed data.
nextjs/data/technical_steering_committee.json Static TSC member seed data.
.gitignore Adjusts root ignore rules to ignore root /public/ but allow nextjs/public/.
.codacy.yaml Excludes nextjs/pnpm-lock.yaml from Codacy analysis.
nextjs/public/next.svg Adds Next.js default public asset.
nextjs/public/vercel.svg Adds Vercel default public asset.
nextjs/public/window.svg Adds default public icon asset.
nextjs/public/file.svg Adds default public icon asset.
nextjs/public/globe.svg Adds default public icon asset.
nextjs/public/images/profile-hiero.png Adds Hiero profile image asset.
nextjs/public/images/members/exploreriii.png Adds member image asset.
nextjs/public/images/members/Mounil2005.png Adds member image asset.
nextjs/public/images/Hiero-fair-cover.png Adds cover image asset.
nextjs/public/images/Hiero-Logo-ioBuilders.png Adds logo asset.
nextjs/public/images/Hiero-Logo-Sentx.png Adds logo asset.
nextjs/public/images/Hiero-Logo-Outline.svg Adds outline logo asset.
nextjs/public/images/Hiero-Logo-IBM.png Adds logo asset.
nextjs/public/images/Hiero-Logo-Hgraph.png Adds logo asset.
nextjs/public/images/Hiero-Logo-Hedera.png Adds logo asset.
nextjs/public/images/Hiero-Logo-Hashgraph.png Adds logo asset.
nextjs/public/images/Hiero-Logo-HashPack.png Adds logo asset.
nextjs/public/images/Hiero-Logo-DiamondStandard.svg Adds logo asset.
nextjs/public/images/Hiero-Logo-Calaxy.png Adds logo asset.
nextjs/public/images/Hiero-Icon.svg Adds icon asset.
nextjs/public/images/Hiero-Icon-wLogo.svg Adds icon+wordmark asset.
nextjs/public/images/Hiero-Icon-wLogo-white-text.svg Adds icon+wordmark (white text) asset.
nextjs/public/images/Hiero-Icon-Timeline-1.svg Adds timeline icon asset.
nextjs/public/images/Hiero-Icon-Timeline-2.svg Adds timeline icon asset.
nextjs/public/images/Hiero-Icon-Timeline-3.svg Adds timeline icon asset.
nextjs/public/images/Hiero-Icon-Timeline-4.svg Adds timeline icon asset.
nextjs/public/images/Hiero-Icon-Timeline-5.svg Adds timeline icon asset.
nextjs/public/images/Hiero-Icon-Timeline-6.svg Adds timeline icon asset.
nextjs/public/images/Hiero-Icon-Secure.svg Adds feature icon asset.
nextjs/public/images/Hiero-Icon-Quote-Right.svg Adds quote icon asset.
nextjs/public/images/Hiero-Icon-Quote-Left.svg Adds quote icon asset.
nextjs/public/images/Hiero-Icon-OpenSource.svg Adds feature icon asset.
nextjs/public/images/Hiero-Icon-Open.svg Adds feature icon asset.
nextjs/public/images/Hiero-Icon-Nav-Menu.svg Adds navigation icon asset.
nextjs/public/images/Hiero-Icon-ModalClose.svg Adds modal close icon asset.
nextjs/public/images/Hiero-Icon-Leaderless.svg Adds feature icon asset.
nextjs/public/images/Hiero-Icon-Heart.svg Adds icon asset.
nextjs/public/images/Hiero-Icon-Github.svg Adds GitHub icon asset.
nextjs/public/images/Hiero-Icon-Fast.svg Adds feature icon asset.
nextjs/public/images/Hiero-Icon-Fair.svg Adds feature icon asset.
nextjs/public/images/Hiero-Icon-Decentralized.svg Adds feature icon asset.
nextjs/public/images/Hiero-Favicon.svg Adds favicon asset for Next.js metadata.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment on lines +21 to +26
<a
href="/blog"
className="w-full rounded-full border border-white px-6 py-3 text-center font-medium text-white no-underline transition-colors hover:bg-white hover:text-charcoal sm:w-auto sm:min-w-[12rem]"
>
Blog (Next.js)
</a>
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

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

This is an internal navigation to /blog, but it's implemented as a plain <a href> which will trigger a full page reload. Prefer next/link for internal routes to preserve client-side navigation and prefetch behavior.

Copilot uses AI. Check for mistakes.
"firstName": "Richard",
"lastName":"Bair",
"gitHubAccount": "https://github.com/rbair23",
"photo": "richard.jpg",
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

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

This entry references photo: "richard.jpg", but there is no corresponding file in nextjs/public/images/ (or nextjs/public/images/members/) in this PR. If/when this JSON is rendered, it will produce broken images. Either add the referenced photo assets, or update photo to the correct existing path/filename.

Suggested change
"photo": "richard.jpg",

Copilot uses AI. Check for mistakes.

<nav
id="navigation"
className={`${isOpen ? "active-navigation" : "hidden"} fixed inset-0 z-50 flex-col items-center justify-start overflow-y-auto bg-black px-6 pt-24 pb-10 text-white sm:relative sm:inset-auto sm:z-auto sm:h-auto sm:w-9/12 sm:max-w-xl sm:flex sm:flex-row sm:items-center sm:justify-end sm:overflow-visible sm:bg-transparent sm:px-0 sm:pt-0 sm:pb-0 sm:text-inherit`}
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

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

nav uses flex-col, items-center, etc. but does not include the flex display utility when isOpen is true. Since active-navigation isn't defined anywhere in the codebase, the opened mobile menu will render as a non-flex block and the layout rules won't apply. Consider replacing active-navigation with flex (and optionally using hidden when closed) so the menu opens with the intended flex layout.

Suggested change
className={`${isOpen ? "active-navigation" : "hidden"} fixed inset-0 z-50 flex-col items-center justify-start overflow-y-auto bg-black px-6 pt-24 pb-10 text-white sm:relative sm:inset-auto sm:z-auto sm:h-auto sm:w-9/12 sm:max-w-xl sm:flex sm:flex-row sm:items-center sm:justify-end sm:overflow-visible sm:bg-transparent sm:px-0 sm:pt-0 sm:pb-0 sm:text-inherit`}
className={`${isOpen ? "flex" : "hidden"} fixed inset-0 z-50 flex-col items-center justify-start overflow-y-auto bg-black px-6 pt-24 pb-10 text-white sm:relative sm:inset-auto sm:z-auto sm:h-auto sm:w-9/12 sm:max-w-xl sm:flex sm:flex-row sm:items-center sm:justify-end sm:overflow-visible sm:bg-transparent sm:px-0 sm:pt-0 sm:pb-0 sm:text-inherit`}

Copilot uses AI. Check for mistakes.
<nav
id="navigation"
className={`${isOpen ? "active-navigation" : "hidden"} fixed inset-0 z-50 flex-col items-center justify-start overflow-y-auto bg-black px-6 pt-24 pb-10 text-white sm:relative sm:inset-auto sm:z-auto sm:h-auto sm:w-9/12 sm:max-w-xl sm:flex sm:flex-row sm:items-center sm:justify-end sm:overflow-visible sm:bg-transparent sm:px-0 sm:pt-0 sm:pb-0 sm:text-inherit`}
aria-hidden={!isOpen && pathname !== undefined}
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

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

aria-hidden is set to true whenever isOpen is false, but the nav is still visible on sm+ due to sm:flex overriding hidden. This makes the desktop navigation visible but hidden from assistive technologies. Either remove aria-hidden (CSS display:none already removes hidden content), or compute it so it's only true when the nav is actually hidden (mobile closed state).

Suggested change
aria-hidden={!isOpen && pathname !== undefined}

Copilot uses AI. Check for mistakes.
return (
<html lang="en">
<body className={`${spaceGrotesk.className} ${spaceGrotesk.variable} ${ibmPlexMono.variable}`}>
<header className="relative h-22.5">
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

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

h-22.5 is not a default Tailwind height token, and there is no custom spacing token defined in globals.css to back it. If this class doesn't compile, the wrapper header won't reserve space for the fixed Header, causing page content to sit underneath it. Use an arbitrary height (e.g. h-[90px]) or define the spacing token in the Tailwind theme.

Suggested change
<header className="relative h-22.5">
<header className="relative h-[90px]">

Copilot uses AI. Check for mistakes.
Comment on lines +21 to +25
],
"paths": {
"@/*": ["./*"]
}
},
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

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

paths is configured for the @/* alias, but compilerOptions.baseUrl is missing. TypeScript only applies paths mapping when a baseUrl is set, so imports like @/components/... may fail type-checking/build. Add "baseUrl": "." (or the appropriate base directory) alongside paths.

Copilot uses AI. Check for mistakes.
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "eslint"
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

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

The lint script is set to eslint without any file/directory arguments. With ESLint v9 this typically exits with a usage error (no target files) and will fail CI. Consider switching to next lint (recommended for Next.js) or eslint . / eslint "**/*.{ts,tsx,js,jsx}".

Suggested change
"lint": "eslint"
"lint": "next lint"

Copilot uses AI. Check for mistakes.
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.

3 participants