added Support Us#720
Conversation
📝 WalkthroughWalkthroughAdds external "Support Us" Open Collective links across the site (navbar, footer, home, about, and component headers) and normalizes JSX/whitespace in hero and projects sections; no exported API changes. ChangesSupport CTA and formatting updates
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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
src/app/page.jsxParsing error: Expected corresponding JSX closing tag for . (273:8) 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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 5
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@src/app/about/page.jsx`:
- Around line 219-221: The <h5> heading is currently nested inside a <motion.p>
which produces invalid HTML; change the container element used in the animation
so headings are not children of a paragraph—e.g., replace the <motion.p> wrapper
that contains the <h5> with a <motion.div> (or move the <h5> out of the
<motion.p>) in the component rendering the "Get to know our Community" block so
the <h5> is not inside a paragraph.
- Around line 227-229: The file uses the Next.js <Link> component (seen in the
JSX block with className and href "https://opencollective.com/aossie") but does
not import it; add the missing import for Link from 'next/link' at the top of
the module so the Link identifier is defined (e.g., add an import statement for
Link before the component definition where the JSX uses Link).
In `@src/app/page.jsx`:
- Around line 241-245: Remove the target="_blank" attribute from the Link
component that renders the internal route (the Link with href="/projects") so it
behaves as an in-app navigation link; locate the Link element in
src/app/page.jsx (the component using Link with className="group relative
inline-flex ...") and delete the target prop, leaving other props (href,
className, etc.) intact.
In `@src/components/apply/ApplyHeader.jsx`:
- Around line 49-53: The file uses the Next.js Link component in the ApplyHeader
component (the <Link> element near the Open Collective callout) but never
imports it; add an import for Link from "next/link" at the top of
ApplyHeader.jsx (alongside other imports) so the Link symbol is defined and the
component builds correctly.
In `@src/components/shared/Footer.jsx`:
- Line 52: The Support Us NavLink is an external URL but doesn't open in a new
tab; update the code so external links set target="_blank" and rel="noopener
noreferrer". Modify the NavLink usage in Footer.jsx (and/or the NavLink
component itself) to detect external hrefs (e.g., href startsWith('http') or a
passed isExternal prop) and add target and rel attributes when true; ensure
NavLink (component) passes these attributes through to the rendered anchor
element so Support Us and other external links behave consistently.
🪄 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: defaults
Review profile: CHILL
Plan: Pro
Run ID: 38e43823-f168-4cda-880f-fe408102dbec
📒 Files selected for processing (6)
src/app/about/page.jsxsrc/app/page.jsxsrc/components/apply/ApplyHeader.jsxsrc/components/ideas/IdeasHeader.jsxsrc/components/shared/Footer.jsxsrc/components/shared/Header.jsx
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
src/app/page.jsx (1)
190-316:⚠️ Potential issue | 🔴 Critical | ⚡ Quick winCritical: Malformed JSX structure with duplicate content and unclosed Container tag.
The Projects section has severe structural issues:
- Unclosed Container: Line 191 opens
<Container>, then line 217 opens another<Container>without closing the first one, causing a parse error.- Duplicate header: The "Our Projects" header block (SVG icon + heading) appears twice (lines 193-215 and 218-242).
- Duplicate description: The project description paragraph is duplicated (lines 244-250 and 267-272).
- Duplicate grid: The projects grid with
CardEffectcomponents is duplicated (lines 251-264 and 273-288).This will cause parse errors and render duplicate content on the page.
🛠️ Proposed fix: Remove duplicate content and fix Container nesting
The entire section from lines 216-265 should be removed. The Projects section should have only one header, one description, and one grid:
</div> </div> - {/* Projects Section */} - <Container className="mt-24 mb-20"> - <div className="space-y-10 "> - <div className="flex text-center items-center justify-center"> - <div className=" relative top-2 hidden h-12 w-12 translate-x-px transform items-center justify-center rounded-full bg-[`#00843D`] p-2 dark:bg-yellow-400 md:flex"> - <svg - aria-hidden="true" - role="img" - className="scale-125 font-extrabold text-white dark:text-black" - viewBox="0 0 24 24" - width="24" - height="24" - fill="currentColor" - > - <path d="M7.25 6a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5A.75.75 0 007.25 6zM12 6a.75.75 0 00-.75.75v4.5a.75.75 0 001.5 0v-4.5A.75.75 0 0012 6zm4 .75a.75.75 0 011.5 0v9.5a.75.75 0 01-1.5 0v-9.5z"></path> - <path - fillRule="evenodd" - d="M3.75 2A1.75 1.75 0 002 3.75v16.5c0 .966.784 1.75 1.75 1.75h16.5A1.75 1.75 0 0022 20.25V3.75A1.75 1.75 0 0020.25 2H3.75zM3.5 3.75a.25.25 0 01.25-.25h16.5a.25.25 0 01.25.25v16.5a.25.25 0 01-.25.25H3.75a.25.25 0 01-.25-.25V3.75z" - ></path> - </svg> - </div> - <div className="col-span-8 mt-3 self-center lg:col-start-2"> - <h1 className="font-mono pl-3 text-5xl font-black capitalize tracking-tighter text-zinc-500 lg:text-zinc-800 dark:text-white"> - Our Projects - </h1> - </div> - </div> - - <p className=" font-mono text-lg text-zinc-500 lg:text-zinc-800 dark:text-zinc-400 text-center "> - Our Projects span a wide range of themes, such as: - open money; decentralized economic and financial stability; - trust; education; sustainability; communication; governance and management; - and user-empowering sunny tools. - </p> - </div> - <div className="mt-10"> - <Container.Inner> - <div className="grid grid-cols-1 gap-x-12 gap-y-16 sm:grid-cols-2 lg:grid-cols-3 justify-items-center"> - {randomProjects.map((project) => ( - <div key={project.name} className="w-full max-w-[18rem] sm:max-w-none"> - <CardEffect - heading={project.name} - logo={project.logo} - content={project.description} - /> - </div> - ))} - </div> - </Container.Inner> - </div> <p className=" font-mono text-lg text-zinc-600 dark:text-zinc-400 text-center ">Also consider updating the remaining description paragraph color classes to match the intended responsive design (lines 267-272 would become the only paragraph after the fix).
🤖 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/app/page.jsx` around lines 190 - 316, The JSX has duplicated blocks and an unclosed Container: remove the entire repeated chunk that starts with the second <Container> and the duplicate header/paragraph/grid so you only keep one Projects section (keep a single header block with the SVG + "Our Projects", one description paragraph, one grid rendering randomProjects with CardEffect, and the final View All Projects Link). Ensure the original opening <Container> (Container) is properly closed after the single grid and link, and verify keys use project.name and components CardEffect, Container.Inner, randomProjects, and Link remain unchanged.
♻️ Duplicate comments (2)
src/app/page.jsx (1)
290-294:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winRemove
target="_blank"from internal/projectslink.The
/projectsroute is internal to the app, sotarget="_blank"forces an unnecessary new tab and breaks expected in-app navigation behavior. This differs from external links (like the Open Collective link in the hero CTA) which correctly usetarget="_blank".Fix
<Link - target="_blank" className="group relative inline-flex items-center overflow-hidden rounded-lg bg-[`#00843D`] px-8 py-3 text-white focus:outline-none active:bg-[`#00843D`] dark:bg-yellow-400 dark:text-zinc-900" href="/projects" >🤖 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/app/page.jsx` around lines 290 - 294, The Link element in page.jsx that renders the "/projects" CTA currently includes target="_blank" which opens an unnecessary new tab; remove the target attribute from the Link (the JSX element with href="/projects") so the in-app navigation uses the router's normal behavior, leaving className, href, and other props unchanged; ensure no other logic relies on target being present and run the app to verify the link navigates within the SPA.src/components/apply/ApplyHeader.jsx (1)
48-53:⚠️ Potential issue | 🔴 Critical | ⚡ Quick winMissing import:
Linkfromnext/link.The
<Link>component is used at line 50, butnext/linkis not imported. This will cause a build failure.🔧 Proposed fix
Add the import at the top of the file:
import { useRef, useMemo } from 'react' import { useInView, motion, useScroll, useTransform } from 'framer-motion' import { Container } from '`@/components/shared/Container`' +import Link from 'next/link' import { FontAwesomeIcon } from '`@fortawesome/react-fontawesome`'🤖 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/components/apply/ApplyHeader.jsx` around lines 48 - 53, ApplyHeader.jsx uses the Next.js Link component but never imports it; add an import for Link from "next/link" at the top of the file so the JSX <Link> usage (in the paragraph containing "Support us on Open Collective") resolves correctly; ensure the import statement is placed with the other React/Next imports so the component compiles.
🤖 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 `@src/app/page.jsx`:
- Around line 190-316: The JSX has duplicated blocks and an unclosed Container:
remove the entire repeated chunk that starts with the second <Container> and the
duplicate header/paragraph/grid so you only keep one Projects section (keep a
single header block with the SVG + "Our Projects", one description paragraph,
one grid rendering randomProjects with CardEffect, and the final View All
Projects Link). Ensure the original opening <Container> (Container) is properly
closed after the single grid and link, and verify keys use project.name and
components CardEffect, Container.Inner, randomProjects, and Link remain
unchanged.
---
Duplicate comments:
In `@src/app/page.jsx`:
- Around line 290-294: The Link element in page.jsx that renders the "/projects"
CTA currently includes target="_blank" which opens an unnecessary new tab;
remove the target attribute from the Link (the JSX element with
href="/projects") so the in-app navigation uses the router's normal behavior,
leaving className, href, and other props unchanged; ensure no other logic relies
on target being present and run the app to verify the link navigates within the
SPA.
In `@src/components/apply/ApplyHeader.jsx`:
- Around line 48-53: ApplyHeader.jsx uses the Next.js Link component but never
imports it; add an import for Link from "next/link" at the top of the file so
the JSX <Link> usage (in the paragraph containing "Support us on Open
Collective") resolves correctly; ensure the import statement is placed with the
other React/Next imports so the component compiles.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: ac63909a-e51c-42fb-9c27-202470e851de
📒 Files selected for processing (2)
src/app/page.jsxsrc/components/apply/ApplyHeader.jsx

Addressed Issues:
Fixes #699
Screenshots/Recordings:
Before:
No “Support Us” button was present on the website.
After:
A “Support Us” button is added to the navigation/header section.
Clicking the button redirects users to the official Open Collective page for AOSSIE:
https://opencollective.com/aossie
Additional Notes:
AI Usage Disclosure:
I have used the following AI models and tools:
Checklist
Summary by CodeRabbit
New Features
Style