Skip to content

added Support Us#720

Closed
hiranya25 wants to merge 2 commits into
AOSSIE-Org:mainfrom
hiranya25:main
Closed

added Support Us#720
hiranya25 wants to merge 2 commits into
AOSSIE-Org:mainfrom
hiranya25:main

Conversation

@hiranya25
Copy link
Copy Markdown

@hiranya25 hiranya25 commented Apr 5, 2026

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:

  • Added a “Support Us” button to improve visibility of contribution options.
  • The button links to AOSSIE’s official Open Collective page, enabling users to financially support the organization.
  • The link opens in a new tab to preserve the current browsing session.
  • The implementation follows existing UI styling and does not introduce layout inconsistencies.

AI Usage Disclosure:

  • 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:

  • ChatGPT (for guidance and refinement)

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 "Support Us" navigation link to header (mobile & desktop).
    • Added Open Collective support CTAs across the homepage, about, apply, ideas, and footer; these links open in a new tab.
  • Style

    • Minor heading and project description styling adjustments.
    • Normalized whitespace/JSX/formatting across multiple pages and components (no visual or behavioral regressions).

Review Change Stack

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 5, 2026

📝 Walkthrough

Walkthrough

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

Changes

Support CTA and formatting updates

Layer / File(s) Summary
Hero JSX formatting
src/app/page.jsx
Normalized whitespace/JSX on hero motion elements and headings; adjusted social/contact wrapper markup.
Hero CTA, Stats & Projects reinsertion
src/app/page.jsx
Replaced hero CTA with a flex container rendering two links (internal /about + external Open Collective https://opencollective.com/aossie with target="_blank" and rel="noopener noreferrer"); reinserted Stats and began Projects block with minor class tweaks.
Projects section formatting
src/app/page.jsx
Adjusted projects description styling, normalized JSX in projects grid and "View All Projects" block.
ApplyHeader support prompt
src/components/apply/ApplyHeader.jsx
Added an informational paragraph with a themed external Open Collective link (target="_blank", rel="noopener noreferrer") under the ApplyHeader timeline description.
About page formatting & support link
src/app/about/page.jsx
Whitespace normalization around the "Get to know our Community" intro and added an external Open Collective CTA link (target="_blank", rel="noopener noreferrer").
Header & Footer navigation
src/components/shared/Header.jsx, src/components/shared/Footer.jsx
Added "Support Us" external link to desktop/mobile navigation and footer navigation; minor whitespace/indentation normalization.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • Zahnentferner

Poem

🐰 Hoppity-hop, new links in sight,
From nav to footer, shining bright.
Open Collective, lend a paw,
I nibble code and cheer hurrah! 💚

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% 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 'added Support Us' directly reflects the main change, which is adding support/donation links across multiple components.
Linked Issues check ✅ Passed The PR successfully implements #699 requirements: adds 'Support Us' links throughout the website (header, footer, about page, apply section, ideas section) pointing to Open Collective, follows existing UI design patterns, and includes proper link attributes for external URLs.
Out of Scope Changes check ✅ Passed All changes are in-scope: the PR consistently adds Open Collective support links and performs minor whitespace/formatting normalizations directly supporting the feature objective.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

src/app/page.jsx

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

❤️ Share

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

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

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

📥 Commits

Reviewing files that changed from the base of the PR and between bb70285 and e3cc4b5.

📒 Files selected for processing (6)
  • src/app/about/page.jsx
  • src/app/page.jsx
  • src/components/apply/ApplyHeader.jsx
  • src/components/ideas/IdeasHeader.jsx
  • src/components/shared/Footer.jsx
  • src/components/shared/Header.jsx

Comment thread src/app/about/page.jsx
Comment thread src/app/about/page.jsx
Comment thread src/app/page.jsx
Comment thread src/components/apply/ApplyHeader.jsx
Comment thread src/components/shared/Footer.jsx
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

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 (1)
src/app/page.jsx (1)

190-316: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Critical: Malformed JSX structure with duplicate content and unclosed Container tag.

The Projects section has severe structural issues:

  1. Unclosed Container: Line 191 opens <Container>, then line 217 opens another <Container> without closing the first one, causing a parse error.
  2. Duplicate header: The "Our Projects" header block (SVG icon + heading) appears twice (lines 193-215 and 218-242).
  3. Duplicate description: The project description paragraph is duplicated (lines 244-250 and 267-272).
  4. Duplicate grid: The projects grid with CardEffect components 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 win

Remove target="_blank" from internal /projects link.

The /projects route is internal to the app, so target="_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 use target="_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 win

Missing import: Link from next/link.

The <Link> component is used at line 50, but next/link is 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

📥 Commits

Reviewing files that changed from the base of the PR and between e3cc4b5 and 4c69803.

📒 Files selected for processing (2)
  • src/app/page.jsx
  • src/components/apply/ApplyHeader.jsx

Copy link
Copy Markdown
Author

@hiranya25 hiranya25 left a comment

Choose a reason for hiding this comment

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

All reviews done

@reach2saksham
Copy link
Copy Markdown
Member

The PR has a lot of problems:

  1. in src/app/page.jsx the Projects Section is duplicated twice which causes syntax error and prevents the website to load.
  2. Even after fixing the above manually, within the navbar the "Support Us" text is getting pushed to new line for no reason.
  3. Causing duplication and problems in Our Projects Section

Due to the above reasons I am closing the PR.

image

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.

[FEATURE]: Add “Support Us” button to the official website

2 participants