Skip to content

feat(template): upgrade template repo with webpage-starter architecture, i18n, and client-side pages - #11

Merged
Zahnentferner merged 7 commits into
AOSSIE-Org:mainfrom
reach2saksham:webpage-starter
Jul 30, 2026
Merged

Zahnentferner merged 7 commits into
AOSSIE-Org:mainfrom
reach2saksham:webpage-starter

Conversation

@reach2saksham

@reach2saksham reach2saksham commented Jul 28, 2026 •

Copy link
Copy Markdown
Member

Overview

This Pull Request completely overhauls the Template-Repo-NextJS repository, bringing over the feature-rich, multi-lingual, and modern architecture from webpage-starter while preserving all of this repository's open-source governance (DCO.md, COPYRIGHT.md, Contributors.md), GitHub Actions CI/CD workflows, CodeRabbit AI reviews, and the Project Maturity & TODO Checklist.

Per project requirements, the main page component is explicitly configured as client-side only using the "use client"; directive and client-hook translation loading.


Complete Feature Breakdown (From Scratch)

Core Framework & Architecture

  • Next.js 16 (App Router) & React 19: Built on the latest Next.js 16 Turbopack compiler and React 19.
  • Tailwind CSS v4: Utility-first styling with native CSS variables and streamlined @tailwindcss/postcss integration.
  • Clean src/ Layout: Organized codebase with clean separation of source code (src/app, src/components, src/config, src/i18n, src/messages) from root configuration files.

Client-Side Page Execution ("use client")

  • SPA & Static Compatibility: Main landing page (src/app/[locale]/page.tsx) configured with "use client"; and client-side translation hooks (useTranslations, React.use(params)).

Internationalization (i18n) & Localization (l10n)

  • next-intl Integration: Deeply integrated multi-language support out-of-the-box.
  • Pre-configured Locales: Includes English (en) and Hindi (hi) translation catalogs with step-by-step documentation for adding additional languages.
  • Subpath Routing: Dynamic locale prefixing (e.g., /en, /hi).
  • Type-Safe Navigation: Custom Link, useRouter, and usePathname helpers imported from src/i18n/navigation.ts.
  • Interactive Language Switcher: LanguageSwitcher client component for instant locale toggling.

Dual-Theme System & Styling Engine

  • Flash-Free Theme Switcher: Light, Dark, and System preferred themes powered by next-themes.
  • Tailwind v4 Custom Variants: Semantic background and text tokens connected to CSS variables (bg-background-primary, text-foreground-primary).
  • Animated Toggle: ThemeToggle component with smooth SVG transitions and micro-animations.

UX & Inertial Motion

  • Smooth Scroll (lenis): Integrated lenis inertial scrolling provider (LenisProvider) and useLenis hook bindings for high-performance scrolling across all browsers.

Official Branding & Design Specs

  • Dedicated Brand Assets: Assets housed in brand/ (logo.svg, favicon.ico, Brand.md).
  • AOSSIE Brand Guidelines: Documented hex color tokens, typography mapping (Inter font mapped to --font-sans), and logo specifications.

AI Agent Pair Programming Readiness

  • Agent Instructions: Includes AGENTS.md and CLAUDE.md to guide AI pair-programming assistants on build commands, breaking changes, and routing rules.

Open-Source CI/CD Automation

  • GitHub Actions Workflows (.github/workflows/):
    • ci.yml: Automated TypeScript typechecking and ESLint checks on every push/PR.
    • nextjs.yml: Automated build and deployment pipeline for GitHub Pages.
    • label-merge-conflicts.yml: Automatic labeling of pull requests with merge conflicts.

Automated AI Code Review

  • CodeRabbit AI (.coderabbit.yml): Pre-configured automated code review integration for Pull Requests.

Legal & Open-Source Governance

  • Compliance Files: Retains DCO.md (Developer Certificate of Origin), COPYRIGHT.md, and Contributors.md for open-source legal compliance.

Mobile & AI Platform Integrations

  • Android App Links: Pre-configured public/.well-known/assetlinks.json for deep-linking mobile apps.
  • AI Agent Plugins & Crawlers: Includes public/.well-known/ai-plugin.json and public/llms.txt for AI agent search indexing.

Comprehensive README & Project Maturity Checklist

  • Unabridged 260-Line README: Full guide covering language registration, translation usage in Server/Client components, theme customization, Lenis scroll configuration, and platform setup checklists.
  • Project Maturity Checklist: Merged Project Maturity & TODO checklist embedded at the top of the README.

Verification & Build Results

All verification checks were run locally and passed cleanly:

  • Dependencies (npm install): 377 packages audited cleanly.
  • TypeScript & Next.js Build (npm run build):
    ▲ Next.js 16.2.11 (Turbopack)
    Creating an optimized production build ...
    ✓ Compiled successfully in 1731ms
    ✓ Finished TypeScript in 1187ms
    ✓ Generating static pages using 5 workers (3/3)
    
    

Additional Notes:

AI Usage Disclosure:

We encourage contributors to use AI tools responsibly when creating Pull Requests. While AI can be a valuable aid, it is essential to ensure that your contributions meet the task requirements, build successfully, include relevant tests, and pass all linters. Submissions that do not meet these standards may be closed without warning to maintain the quality and integrity of the project. Please take the time to understand the changes you are proposing and their impact. AI slop is strongly discouraged and may lead to banning and blocking. Do not spam our repos with AI slop.

Check one of the checkboxes below:

  • This PR does not contain AI-generated code at all.
  • This PR contains AI-generated code. I have read the AI Usage Policy and this PR complies with this policy. I have tested the code locally and I am responsible for it.

I have used the following AI models and tools: TODO

Checklist

  • My PR addresses a single issue, fixes a single bug or makes a single improvement.
  • My code follows the project's code style and conventions
  • If applicable, I have made corresponding changes or additions to the documentation
  • If applicable, I have made corresponding changes or additions to tests
  • My changes generate no new warnings or errors
  • I have joined the Discord server and I will share a link to this PR with the project maintainers there
  • I have read the Contribution Guidelines
  • Once I submit my PR, CodeRabbit AI will automatically review it and I will address CodeRabbit's comments.
  • I have filled this PR template completely and carefully, and I understand that my PR may be closed without review otherwise.

Summary by CodeRabbit

  • New Features
    • Added a localized starter experience (English and Hindi) with in-app language switching.
    • Added light/dark/system theme support with an interactive theme toggle.
    • Added smooth scrolling and a refreshed AOSSIE-branded landing page.
    • Added localized error and not-found pages with retry and home navigation.
    • Added SEO enhancements: localized metadata, sitemap generation, robots rules, and discovery/manifests (AI plugin + asset links).
  • Documentation
    • Replaced placeholder README with complete setup/usage/deployment guidance, theming/i18n conventions, and tooling checklist.
    • Added AOSSIE branding guidelines and agent-rule documentation references.

@coderabbitai

coderabbitai Bot commented Jul 28, 2026 •

Copy link
Copy Markdown

Review Change Stack

Walkthrough

The placeholder Next.js application is replaced with an AOSSIE webpage starter featuring locale-aware routing, English and Hindi translations, theme and smooth-scrolling providers, localized metadata and sitemap generation, public integration manifests, and expanded project and brand documentation.

Changes

AOSSIE webpage starter

Layer / File(s) Summary
i18n foundation and project configuration
package.json, next.config.ts, tsconfig.json, src/config/*, src/i18n/*, src/messages/*
Adds dependencies, source aliases, locale routing, request-time message loading, navigation helpers, and English/Hindi catalogs.
Locale middleware and page rendering
src/proxy.ts, src/app/[locale]/*
Adds locale middleware, translated page states, semantic light/dark CSS variables, locale validation, providers, and structured page data.
Theme, language, and scrolling controls
src/components/*
Adds language switching, mounted-safe theme cycling, class-based theme context, and reduced-motion-aware Lenis scrolling.
Metadata, sitemap, and public integration files
src/i18n/metadata.ts, src/app/sitemap.ts, public/*
Adds localized SEO metadata, locale sitemap entries, crawler rules, AI plugin metadata, Android asset links, and LLM project guidance.
Starter documentation and brand guidance
AGENTS.md, CLAUDE.md, README.md, brand/Brand.md
Documents project conventions, usage, deployment, contribution guidance, and AOSSIE visual identity.

Estimated code review effort: 4 (Complex) | ~45 minutes

Possibly related PRs

Suggested labels: Typescript Lang, Documentation

Suggested reviewers: zahnentferner, m4dhav

Sequence Diagram(s)

sequenceDiagram
  participant Browser
  participant Proxy
  participant RootLayout
  participant RequestConfig
  participant Home
  Browser->>Proxy: Request localized pathname
  Proxy->>RootLayout: Route with locale
  RootLayout->>RequestConfig: Load locale messages
  RequestConfig-->>RootLayout: Return locale and messages
  RootLayout->>Home: Render translated page
  Home-->>Browser: Return UI and WebPage JSON-LD
Loading

Poem

I’m a bunny with a brand-new route,
Hindi and English hop about.
Dark themes glow, smooth scrolls glide,
AOSSIE’s logo beams with pride.
“Ship the starter!” I cheer and dash!

🚥 Pre-merge checks | ✅ 4
✅ 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 reflects the main change: upgrading the template into a webpage-starter with i18n and client-side pages.
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 unit tests (beta)
  • Create PR with unit tests

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.

@socket-security

socket-security Bot commented Jul 28, 2026 •

Copy link
Copy Markdown

@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: 15

🤖 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 `@AGENTS.md`:
- Around line 21-22: Replace every author-machine file:///x:/... URL with
repository-relative links throughout AGENTS.md lines 21-22, 29-31, and 37-38;
README.md lines 132, 186, 213, 245, and 304-316; and brand/Brand.md lines 25-31
and 39. Link each reference to its specified repository path, including
globals.css, localized app/navigation files, next.config.ts, brand assets,
languages.ts, lenis-provider.tsx, and stylesheet, without changing the
surrounding documentation.

In `@public/robots.txt`:
- Line 3: Remove the Disallow: /_next/ rule from robots.txt so crawlers can
access Next.js runtime assets, while preserving the existing /api/ exclusion
only if it is intentionally configured to remain blocked.

In `@README.md`:
- Around line 212-235: Update the README sections “Customizing Colors” and
“Using Theme Classes” to document the repository’s class-based next-themes
system and semantic theme tokens. Replace the prefers-color-scheme CSS example
with the implemented root token configuration, and replace inline dark utility
examples with the approved semantic token usage; preserve guidance for explicit
light/dark theme selection.
- Around line 141-148: Update the README new-language example to create fr.json
under src/messages/ and use the Home.title translation key, matching the key
referenced by the later example.
- Around line 55-57: Update the README feature checklist to remove or qualify
the “fully static and client-side” claim, since the GitHub Pages workflow
deploys ./out while the current configuration and proxy.ts do not establish
static export or build-time root locale routing. Keep the deployment and CI
claims unchanged.

In `@src/app/`[locale]/globals.css:
- Around line 6-26: Centralize status-icon theme colors by adding semantic
foreground/background tokens to the `@theme` block in src/app/[locale]/globals.css
for both light and dark themes, then update the status icon classes in
src/app/[locale]/error.tsx at line 22 and src/app/[locale]/not-found.tsx at line
10 to use those semantic tokens instead of inline dark:bg-* and dark:text-*
utilities.
- Around line 21-24: Rename the card shadow token in globals.css from the color
namespace to the Tailwind shadow namespace so the full box-shadow value
generates a shadow utility. Update the matching card-shadow class usage in
src/app/[locale]/page.tsx:42, src/app/[locale]/error.tsx:21, and
src/app/[locale]/not-found.tsx:9 to follow the renamed token; all three sibling
sites require this direct usage change.

In `@src/app/`[locale]/page.tsx:
- Around line 19-31: Update the JSON-LD construction in the locale page to
source the WebPage description from the locale messages via the existing t(...)
translation helper instead of the hard-coded English string. Add or use the
matching message key across supported locales, while preserving the existing
inLanguage value and other structured-data fields.

In `@src/app/sitemap.ts`:
- Line 17: Remove the generation-time `lastModified: new Date()` assignment from
the sitemap URL entries. Either omit `lastModified` or replace it with a stable
content or deployment timestamp, ensuring unchanged pages do not receive a new
timestamp on each generation.

In `@src/components/LanguageSwitcher.tsx`:
- Around line 22-24: Externalize the hardcoded user-facing labels by sourcing
the language label in src/components/LanguageSwitcher.tsx lines 22-24 and the
accessible theme toggle label in src/components/ThemeToggle.tsx line 29 from the
existing locale catalog, using the components’ established i18n access pattern.

In `@src/config/languages.ts`:
- Around line 1-12: The languages catalog in src/config/languages.ts lines 1-12
should preserve literal locale values by using a readonly const-satisfies
declaration and deriving the Locale type from the catalog for defaultLanguage.
Update src/i18n/routing.ts lines 4-7 to pass that Locale union to defineRouting,
preserving compile-time validation for “en” and “hi”.
- Around line 7-10: Update the exported languages configuration and
LanguageSwitcher flow so user-visible name and localName values use translation
keys rather than hardcoded English and Hindi labels. Add the corresponding keys
to the English and Hindi message catalogs, then resolve those keys through the
existing i18n mechanism when rendering LanguageSwitcher while preserving the
current displayed text.

In `@src/i18n/metadata.ts`:
- Around line 1-2: Replace the runtime Next.js type imports with type-only
imports: update Metadata in src/i18n/metadata.ts lines 1-2 and MetadataRoute in
src/app/sitemap.ts lines 1-2 to use import type; leave getTranslations
unchanged.
- Around line 15-25: Update the metadata URL construction in the visible
alternates and openGraph configuration to use the sitemap’s default-locale URL
logic: emit the pathless siteUrl for English and retain the locale path for
other languages. Apply this consistently to canonical, the English alternate,
and openGraph.url.

In `@src/proxy.ts`:
- Line 1: Use type-only imports for the referenced types: update src/proxy.ts
lines 1-1 to import NextRequest with import type, and update
src/components/providers/lenis-provider.tsx lines 3-7 to import ReactNode with
import type, using ReactNode directly in the prop type instead of the default
React import.
🪄 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: Path: .coderabbit.yml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 5df8a043-4994-4cce-ae29-af4f1fb88149

📥 Commits

Reviewing files that changed from the base of the PR and between e54700e and 06cd245.

⛔ Files ignored due to path filters (6)
  • app/favicon.ico is excluded by !**/*.ico
  • brand/favicon.ico is excluded by !**/*.ico
  • brand/logo.svg is excluded by !**/*.svg
  • package-lock.json is excluded by !**/package-lock.json
  • public/assets/icons/aossie_logo.svg is excluded by !**/*.svg
  • public/assets/icons/favicon.ico is excluded by !**/*.ico
📒 Files selected for processing (32)
  • AGENTS.md
  • CLAUDE.md
  • README.md
  • app/globals.css
  • app/layout.tsx
  • app/page.tsx
  • brand/Brand.md
  • next.config.ts
  • package.json
  • public/.well-known/ai-plugin.json
  • public/.well-known/assetlinks.json
  • public/llms.txt
  • public/robots.txt
  • src/app/[locale]/error.tsx
  • src/app/[locale]/globals.css
  • src/app/[locale]/layout.tsx
  • src/app/[locale]/not-found.tsx
  • src/app/[locale]/page.tsx
  • src/app/sitemap.ts
  • src/components/LanguageSwitcher.tsx
  • src/components/ThemeToggle.tsx
  • src/components/providers/lenis-provider.tsx
  • src/components/providers/theme-provider.tsx
  • src/config/languages.ts
  • src/i18n/metadata.ts
  • src/i18n/navigation.ts
  • src/i18n/request.ts
  • src/i18n/routing.ts
  • src/messages/en.json
  • src/messages/hi.json
  • src/proxy.ts
  • tsconfig.json
💤 Files with no reviewable changes (3)
  • app/page.tsx
  • app/layout.tsx
  • app/globals.css

Comment thread AGENTS.md Outdated
Comment thread public/robots.txt Outdated
Comment thread README.md Outdated
Comment thread README.md Outdated
Comment thread README.md
Comment thread src/config/languages.ts Outdated
Comment on lines +1 to +12
export interface Language {
code: string;
name: string;
localName: string;
}

export const languages: Language[] = [
{ code: 'en', name: 'English', localName: 'English' },
{ code: 'hi', name: 'Hindi', localName: 'हिन्दी' }
];

export const defaultLanguage = 'en';

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 | 🔵 Trivial | ⚡ Quick win

Preserve literal locale types across the routing boundary.

The current Language[] declaration widens the configured locales to string, so the navigation layer loses compile-time checks for "en" and "hi". Keep the catalog literal and pass that preserved type into routing. (github.com)

  • src/config/languages.ts#L1-L12: use as const satisfies readonly Language[] and derive a Locale type for defaultLanguage.
  • src/i18n/routing.ts#L4-L7: consume the literal locale union when calling defineRouting.
📍 Affects 2 files
  • src/config/languages.ts#L1-L12 (this comment)
  • src/i18n/routing.ts#L4-L7
🤖 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 `@src/config/languages.ts` around lines 1 - 12, The languages catalog in
src/config/languages.ts lines 1-12 should preserve literal locale values by
using a readonly const-satisfies declaration and deriving the Locale type from
the catalog for defaultLanguage. Update src/i18n/routing.ts lines 4-7 to pass
that Locale union to defineRouting, preserving compile-time validation for “en”
and “hi”.

Comment thread src/config/languages.ts Outdated
Comment on lines +7 to +10
export const languages: Language[] = [
{ code: 'en', name: 'English', localName: 'English' },
{ code: 'hi', name: 'Hindi', localName: 'हिन्दी' }
];

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Externalize the language labels.

name and localName are rendered by LanguageSwitcher, so they are user-visible strings currently embedded in configuration. Store translation keys here and resolve them from the English/Hindi message catalogs instead.

As per path instructions, user-visible strings should be externalized to resource files (i18n).

🤖 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 `@src/config/languages.ts` around lines 7 - 10, Update the exported languages
configuration and LanguageSwitcher flow so user-visible name and localName
values use translation keys rather than hardcoded English and Hindi labels. Add
the corresponding keys to the English and Hindi message catalogs, then resolve
those keys through the existing i18n mechanism when rendering LanguageSwitcher
while preserving the current displayed text.

Source: Path instructions

Comment thread src/i18n/metadata.ts Outdated
Comment thread src/i18n/metadata.ts Outdated
Comment thread src/proxy.ts Outdated
…tokens, i18n labels, robots.txt, and relative doc links)
@socket-security

socket-security Bot commented Jul 28, 2026 •

Copy link
Copy Markdown

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn High
Obfuscated code: npm es-abstract is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package-lock.json → npm/eslint-config-next@16.2.11 → npm/es-abstract@1.24.2

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/es-abstract@1.24.2. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

@reach2saksham reach2saksham self-assigned this Jul 28, 2026
@reach2saksham reach2saksham added documentation Improvements or additions to documentation enhancement New feature or request labels Jul 28, 2026
@reach2saksham
reach2saksham requested a review from M4dhav July 29, 2026 12:40
Comment thread README.md Outdated
<p align="center">
<!-- Telegram -->
<a href="https://t.me/StabilityNexus">
<a href="https://t.me/AOSSIE">

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Comment thread README.md
<!-- Organization Logo -->
<div align="center" style="display: flex; align-items: center; justify-content: center; gap: 16px;">
<img alt="Stability Nexus" src="public/stability.svg" width="175">
<img src="public/todo-project-logo.svg" width="175" />

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Keep this line.

Comment thread README.md
<a href="https://linkedin.com/company/stability-nexus">
<img src="https://img.shields.io/badge/LinkedIn-black?style=flat&logo=LinkedIn&logoColor=white&logoSize=auto&color=0A66C2" alt="LinkedIn Badge"></a>
&nbsp;&nbsp;
<!-- Youtube -->

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Add AOSSIE's YouTube and other badges, as in here (https://github.com/AOSSIE-Org/Template-Repo).

@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: 4

🤖 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 `@AGENTS.md`:
- Line 29: In AGENTS.md, update the heading text “Dynamic segement” to “Dynamic
segment” while leaving the localized routing directive and link unchanged.

In `@README.md`:
- Line 7: Update the README logo image to remove the placeholder
public/todo-project-logo.svg or replace it with an official accessible AOSSIE
logo asset. If retaining the image, add appropriate descriptive alt text, or
empty alt text when decorative.

In `@src/components/providers/lenis-provider.tsx`:
- Around line 7-10: Update LenisProvider to detect the prefers-reduced-motion:
reduce media preference and avoid animated Lenis behavior for matching users,
either by rendering children without ReactLenis or disabling its smoothing
options. Preserve the existing ReactLenis configuration for users without the
reduced-motion preference.

In `@src/i18n/metadata.ts`:
- Line 11: Normalize NEXT_PUBLIC_SITE_URL by removing its trailing slash before
the localeUrl composition in the metadata flow, then reuse that normalized base
wherever metadata and sitemap URLs are constructed. Preserve the default-locale
URL and ensure non-default locales produce a single separator.
🪄 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: Path: .coderabbit.yml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 056ca907-c986-4342-8d6c-dd6aa524e5ec

📥 Commits

Reviewing files that changed from the base of the PR and between 06cd245 and 5a4f3f2.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (18)
  • AGENTS.md
  • README.md
  • brand/Brand.md
  • package.json
  • public/robots.txt
  • src/app/[locale]/error.tsx
  • src/app/[locale]/globals.css
  • src/app/[locale]/not-found.tsx
  • src/app/[locale]/page.tsx
  • src/app/sitemap.ts
  • src/components/LanguageSwitcher.tsx
  • src/components/ThemeToggle.tsx
  • src/components/providers/lenis-provider.tsx
  • src/config/languages.ts
  • src/i18n/metadata.ts
  • src/messages/en.json
  • src/messages/hi.json
  • src/proxy.ts

Comment thread AGENTS.md Outdated
Comment thread README.md Outdated
<div align="center" style="display: flex; align-items: center; justify-content: center; gap: 16px;">
<img alt="Stability Nexus" src="public/stability.svg" width="175">
<img alt="AOSSIE" src="brand/logo.svg" width="175">
<img src="public/todo-project-logo.svg" width="175" />

@coderabbitai coderabbitai Bot Jul 30, 2026 •

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

Remove the leftover placeholder logo or replace it with an accessible AOSSIE asset.

public/todo-project-logo.svg conflicts with the AOSSIE branding and its <img> element has no alt attribute. Use the official logo, or provide descriptive/empty alt text if the image is intentional.

🧰 Tools
🪛 markdownlint-cli2 (0.23.1)

[warning] 7-7: Images should have alternate text (alt text)

(MD045, no-alt-text)

🤖 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 `@README.md` at line 7, Update the README logo image to remove the placeholder
public/todo-project-logo.svg or replace it with an official accessible AOSSIE
logo asset. If retaining the image, add appropriate descriptive alt text, or
empty alt text when decorative.

Source: Linters/SAST tools

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This is a tempelate repo and hence mentor has also advised to keep this todo project logo for whoever uses this repo for whatever project.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

@reach2saksham, understood—retaining public/todo-project-logo.svg is appropriate for a reusable template, so the branding-conflict concern does not apply.

The remaining accessibility/lint requirement is simply to give that intentional image an alt attribute: use descriptive text if it conveys template-project branding, or alt="" if it is purely decorative. For example:

<img src="public/todo-project-logo.svg" width="175" alt="Template project logo" />

You are interacting with an AI system.

Comment thread src/components/providers/lenis-provider.tsx
Comment thread src/i18n/metadata.ts
@Zahnentferner
Zahnentferner merged commit 40faba9 into AOSSIE-Org:main Jul 30, 2026
4 of 5 checks passed

@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.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (4)
README.md (4)

219-240: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use the canonical navigation-module import in the examples.

The ../../i18n/navigation imports depend on the example file’s directory depth. Point both examples directly at the configured module for src/i18n/navigation.ts instead.

🤖 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 `@README.md` around lines 219 - 240, Update both navigation examples in the
“Navigation Helpers” section to import Link, useRouter, and usePathname from the
canonical configured module for src/i18n/navigation.ts rather than the
directory-depth-dependent ../../i18n/navigation path.

Source: Path instructions


16-46: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Match badge metadata to the linked organizations.

The Stability Nexus Discord and YouTube badges reuse AOSSIE’s server/channel identifiers, so they display the wrong organization’s badge data. Use matching identifiers or remove the stale duplicate badges.

🤖 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 `@README.md` around lines 16 - 46, Update the Stability Nexus Discord and
YouTube badge links in the README social handles section to use identifiers
matching Stability Nexus, or remove those duplicate badges if matching
identifiers are unavailable; leave the AOSSIE badges unchanged.

189-216: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Externalize the alert text in the client example.

alert('Clicked!') is user-visible text and conflicts with the repository’s i18n rule. Add a translation key and call alert(t('clicked')) instead.

🤖 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 `@README.md` around lines 189 - 216, Update the Client Components example in
README.md so the user-visible alert text is externalized: add the corresponding
clicked translation key to the example’s translation messages and replace the
literal alert text in InteractiveButton with the existing t function using the
clicked key.

Source: Path instructions


332-351: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Describe llms.txt as AI guidance, not LLM crawler blocking.

llms.txt is an emerging content guidance signal and is generally distinct from access-control directives like robots.txt, so framing Update if you wish to block specific AI search engines as enforcing LLM indexing is misleading.

🤖 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 `@README.md` around lines 332 - 351, Update the “LLM Crawler Rules” checklist
entry for public/llms.txt to describe it as an optional AI-content guidance
signal, not an access-control mechanism. Remove the claim that changing it
blocks specific AI search engines, while preserving the surrounding setup
guidance.
♻️ Duplicate comments (1)
src/i18n/metadata.ts (1)

12-12: 🗄️ Data Integrity & Integration | 🔵 Trivial | ⚡ Quick win

Use the configured default locale.

src/app/sitemap.ts compares against routing.defaultLocale, but this metadata helper hardcodes 'en'. If the default locale changes, metadata canonical/Open Graph URLs will diverge from the sitemap. Use routing.defaultLocale here as the single source of truth.

Proposed fix
-  const localeUrl = locale === 'en' ? siteUrl : `${siteUrl}/${locale}`;
+  const localeUrl =
+    locale === routing.defaultLocale ? siteUrl : `${siteUrl}/${locale}`;
🤖 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 `@src/i18n/metadata.ts` at line 12, Update the locale comparison in the
metadata helper’s localeUrl construction to use routing.defaultLocale instead of
the hardcoded 'en'. Preserve the existing URL formatting for the default and
non-default locale cases, using routing as the single source of truth.
🤖 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.

Outside diff comments:
In `@README.md`:
- Around line 219-240: Update both navigation examples in the “Navigation
Helpers” section to import Link, useRouter, and usePathname from the canonical
configured module for src/i18n/navigation.ts rather than the
directory-depth-dependent ../../i18n/navigation path.
- Around line 16-46: Update the Stability Nexus Discord and YouTube badge links
in the README social handles section to use identifiers matching Stability
Nexus, or remove those duplicate badges if matching identifiers are unavailable;
leave the AOSSIE badges unchanged.
- Around line 189-216: Update the Client Components example in README.md so the
user-visible alert text is externalized: add the corresponding clicked
translation key to the example’s translation messages and replace the literal
alert text in InteractiveButton with the existing t function using the clicked
key.
- Around line 332-351: Update the “LLM Crawler Rules” checklist entry for
public/llms.txt to describe it as an optional AI-content guidance signal, not an
access-control mechanism. Remove the claim that changing it blocks specific AI
search engines, while preserving the surrounding setup guidance.

---

Duplicate comments:
In `@src/i18n/metadata.ts`:
- Line 12: Update the locale comparison in the metadata helper’s localeUrl
construction to use routing.defaultLocale instead of the hardcoded 'en'.
Preserve the existing URL formatting for the default and non-default locale
cases, using routing as the single source of truth.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 84b29fc1-1a25-4200-9f10-afb61eece86a

📥 Commits

Reviewing files that changed from the base of the PR and between 5a4f3f2 and b07aee1.

📒 Files selected for processing (5)
  • AGENTS.md
  • README.md
  • src/app/sitemap.ts
  • src/components/providers/lenis-provider.tsx
  • src/i18n/metadata.ts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants