diff --git a/next-env.d.ts b/next-env.d.ts
index 4f11a03..40c3d68 100644
--- a/next-env.d.ts
+++ b/next-env.d.ts
@@ -2,4 +2,4 @@
///
// NOTE: This file should not be edited
-// see https://nextjs.org/docs/basic-features/typescript for more information.
+// see https://nextjs.org/docs/app/building-your-application/configuring/typescript for more information.
diff --git a/package-lock.json b/package-lock.json
index d9885fa..7ad3d63 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1853,9 +1853,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001625",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001625.tgz",
- "integrity": "sha512-4KE9N2gcRH+HQhpeiRZXd+1niLB/XNLAhSy4z7fI8EzcbcPoAqjNInxVHTiTwWfTIV4w096XG8OtCOCQQKPv3w==",
+ "version": "1.0.30001731",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001731.tgz",
+ "integrity": "sha512-lDdp2/wrOmTRWuoB5DpfNkC0rJDU8DqRa6nYL6HK6sytw70QMopt/NIc/9SM7ylItlBWfACXk0tEn37UWM/+mg==",
"funding": [
{
"type": "opencollective",
@@ -1869,7 +1869,8 @@
"type": "github",
"url": "https://github.com/sponsors/ai"
}
- ]
+ ],
+ "license": "CC-BY-4.0"
},
"node_modules/chalk": {
"version": "4.1.2",
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index e120d44..fe2e1c7 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -25,8 +25,8 @@ export default function RootLayout({
children: React.ReactNode
}) {
return (
-
-
{children}
+
+ {children}
)
}
diff --git a/src/components/Benefits.tsx b/src/components/Benefits.tsx
index 13de4fd..2700c4e 100644
--- a/src/components/Benefits.tsx
+++ b/src/components/Benefits.tsx
@@ -8,78 +8,78 @@ import Benefits4 from '@/images/benefits/benefits4.jpg'
export default function Benefits() {
return (
-
+
-
+
Built Different. For a Change.
-
- EngageOS isn’t just another tech platform — it’s a digital infrastructure built from the ground up for purpose-driven organizations. From white-label sovereignty to field-ready resilience, every element of EngageOS is designed to meet the real-world challenges of civil society.
+
+ EngageOS isn't just another tech platform — it's a digital infrastructure built from the ground up for purpose-driven organizations. From white-label sovereignty to field-ready resilience, every element of EngageOS is designed to meet the real-world challenges of civil society.
-
+
-
Built for Civil Society
-
Purpose-First, Not Profit-First
-
+
Built for Civil Society
+
Purpose-First, Not Profit-First
+
Unlike traditional SaaS built for commercial scale, EngageOS was born from the realities of NGOs, grassroots coalitions, and purpose-led institutions. Every module, flow, and metric is optimized to serve impact — not ad revenue or venture capital.
-
+
-
White-Label, Zero-Code
-
Your Brand, Your Movements
-
+
White-Label, Zero-Code
+
Your Brand, Your Movements
+
EngageOS empowers organizations to fully own their digital identity. From Red Cross OS to Montessori OS, each instance is custom-branded — no tech team required. You launch a platform that looks and feels like you, not us.
-
+
-
Sovereign & Ethical Infrastructure
-
Own Your Data. Always.
-
- We don’t mine or monetize user data. EngageOS runs on decentralized, privacy-respecting infrastructure — built for trust, compliance, and sovereignty. You control where your data lives and who sees it.
+
Sovereign & Ethical Infrastructure
+
Own Your Data. Always.
+
+ We don't mine or monetize user data. EngageOS runs on decentralized, privacy-respecting infrastructure — built for trust, compliance, and sovereignty. You control where your data lives and who sees it.
-
+
-
Mutualized Model
-
Share Infrastructure. Multiply Impact.
-
+
Mutualized Model
+
Share Infrastructure. Multiply Impact.
+
By pooling tech costs across aligned organizations, EngageOS offers enterprise-grade functionality at a fraction of the price. When one partner grows, the entire ecosystem benefits — through shared modules, updates, and insights.
diff --git a/src/components/Cta.tsx b/src/components/Cta.tsx
index 029d229..83fb1ea 100644
--- a/src/components/Cta.tsx
+++ b/src/components/Cta.tsx
@@ -1,6 +1,6 @@
export default function Cta() {
return (
-
+
@@ -30,9 +30,9 @@ export default function Cta() {
-
-
-
+
+
+
diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx
index 5b8a9d2..7c38640 100644
--- a/src/components/Footer.tsx
+++ b/src/components/Footer.tsx
@@ -22,11 +22,11 @@ function QrCodeBorder(props: React.ComponentPropsWithoutRef<'svg'>) {
export function Footer() {
return (
-
+
-
+
EngageOS
@@ -37,25 +37,25 @@ export function Footer() {
-
+
-
+
-
+
Download the app
-
+
Scan the QR code to download the app from the App Store.
-
+
-
+
© Copyright {new Date().getFullYear()}. All rights reserved.
diff --git a/src/components/Header.tsx b/src/components/Header.tsx
index a89b0cc..bc39b16 100644
--- a/src/components/Header.tsx
+++ b/src/components/Header.tsx
@@ -49,7 +49,7 @@ function MobileNavLink(
return (
)
@@ -73,7 +73,7 @@ export function Header() {
{({ open }) => (
<>
{({ open }) =>
@@ -93,7 +93,7 @@ export function Header() {
initial={{ opacity: 0 }}
animate={{ opacity: 1 }}
exit={{ opacity: 0 }}
- className="fixed inset-0 z-0 bg-gray-300/60 backdrop-blur-sm"
+ className="fixed inset-0 z-0 bg-black/60 backdrop-blur-sm"
/>
diff --git a/src/components/HeroHome.tsx b/src/components/HeroHome.tsx
index 50b0eaa..bdd90ea 100644
--- a/src/components/HeroHome.tsx
+++ b/src/components/HeroHome.tsx
@@ -14,14 +14,14 @@ const navigation = [
export default function HeroHome() {
return (
-
+
-
+
Empowering Purpose-Driven Organizations.
-
+
Welcome to EngageOS : the first all-in-one, white-label engagement platform to mobilize communities, engage supporters, scale impact, and fundraise—at a fraction of the cost.
diff --git a/src/components/NavLinks.tsx b/src/components/NavLinks.tsx
index ea08e3b..b013f7f 100644
--- a/src/components/NavLinks.tsx
+++ b/src/components/NavLinks.tsx
@@ -17,7 +17,7 @@ export function NavLinks() {
{
if (timeoutRef.current) {
window.clearTimeout(timeoutRef.current)
@@ -33,7 +33,7 @@ export function NavLinks() {
{hoveredIndex === index && (
@@ -142,7 +142,7 @@ function Plan({
{price.Monthly === price.Annually ? (
@@ -175,7 +175,7 @@ function Plan({
{description}
@@ -186,8 +186,8 @@ function Plan({
className={clsx(
'-my-2 divide-y text-sm',
featured
- ? 'divide-gray-800 text-gray-300'
- : 'divide-gray-200 text-gray-700',
+ ? 'divide-gray-700 text-gray-100'
+ : 'divide-gray-700 text-gray-300',
)}
>
{features.map((feature) => (
@@ -195,7 +195,7 @@ function Plan({
{feature}
@@ -205,7 +205,7 @@ function Plan({
@@ -224,19 +224,20 @@ export function Pricing() {
Flat pricing, no management fees.
-
- Whether you’re one person trying to get ahead or a big firm trying
- to take over the world, we’ve got a plan for you.
+
+ Whether you're one person trying to get ahead or a big firm trying
+ to take over the world, we've got a plan for you.
@@ -252,7 +253,7 @@ export function Pricing() {
key={period}
value={period}
className={clsx(
- 'cursor-pointer border border-gray-300 px-[calc(--spacing(3)-1px)] py-[calc(--spacing(2)-1px)] text-sm text-gray-700 transition-colors hover:border-gray-400 data-focus:outline-2 data-focus:outline-offset-2',
+ 'cursor-pointer border border-gray-600 px-[calc(--spacing(3)-1px)] py-[calc(--spacing(2)-1px)] text-sm text-gray-300 transition-colors hover:border-gray-500 data-focus:outline-2 data-focus:outline-offset-2 bg-gray-800',
period === 'Monthly'
? 'rounded-l-lg'
: '-ml-px rounded-r-lg',
@@ -286,7 +287,7 @@ export function Pricing() {
-
+
{plans.map((plan) => (
))}
diff --git a/src/components/Reviews.tsx b/src/components/Reviews.tsx
index cbd6294..f1c6bd1 100644
--- a/src/components/Reviews.tsx
+++ b/src/components/Reviews.tsx
@@ -16,13 +16,13 @@ interface Review {
const reviews: Array
= [
{
title: 'A true game-changer for nonprofits.',
- body: 'EngageOS allowed us to centralize our volunteer hub, training, and crowdfunding into one platform. We’ve seen a 3x jump in community engagement.',
+ body: 'EngageOS allowed us to centralize our volunteer hub, training, and crowdfunding into one platform. We have seen a 3x jump in community engagement.',
author: 'Sarah D., Program Director at WomenRise',
rating: 5,
},
{
title: 'No tech team needed.',
- body: 'Launching our own branded platform felt intimidating—until EngageOS. It’s intuitive, scalable, and beautifully designed.',
+ body: 'Launching our own branded platform felt intimidating—until EngageOS. It is intuitive, scalable, and beautifully designed.',
author: 'Ahmed K., Director at The Green Schools Alliance',
rating: 5,
},
@@ -52,7 +52,7 @@ const reviews: Array = [
},
{
title: 'Highly recommend for grassroots orgs.',
- body: 'Even with limited staff, we launched a branded hub in 10 days. It’s helping our community organize and train in ways we never imagined.',
+ body: 'Even with limited staff, we launched a branded hub in 10 days. It is helping our community organize and train in ways we never imagined.',
author: 'Tania B., Founder of SpeakUp Brazil',
rating: 5,
},
@@ -69,14 +69,13 @@ const reviews: Array = [
rating: 5,
},
{
- title: 'This platform *is* our movement.',
+ title: 'This platform is our movement.',
body: 'Before EngageOS, our digital presence was scattered. Now we have a true home where our supporters connect and take action.',
author: 'Ravi P., Strategy Director at Clean Energy for All',
rating: 5,
},
]
-
function StarIcon(props: React.ComponentPropsWithoutRef<'svg'>) {
return (
@@ -119,21 +118,21 @@ function Review({
return (
-
+
-
- {title}
+
+ "{title}"
{body}
-
- {author}
+
+ — {author}
)
@@ -241,8 +240,8 @@ function ReviewGrid() {
/>
>
)}
-
-
+
+
)
}
@@ -253,15 +252,16 @@ export function Reviews() {
id="reviews"
aria-labelledby="reviews-title"
className="pt-20 pb-16 sm:pt-32 sm:pb-24"
+ style={{ backgroundColor: '#121212' }}
>
Everyone is changing their life with EngageOS.
-
+
Thousands of people have doubled their net-worth in the last 30 days.
diff --git a/src/components/Tractions.tsx b/src/components/Tractions.tsx
index abd50b7..52f73da 100644
--- a/src/components/Tractions.tsx
+++ b/src/components/Tractions.tsx
@@ -19,11 +19,11 @@ const stats = [
export default function Tractions() {
return (
-
+
{/* LEFT IMAGE + LOGO */}
-
+
-
Our track record
-
+
Our track record
+
Trusted by Changemakers worldwide
-
+
EngageOS powers the digital headquarters for over 300,000 users across 50+ countries. From grassroots NGOs to global movements, our platform is built to scale impact, not just numbers.
{stats.map((stat) => (
-
-
{stat.name}
-
{stat.value}
+
+
{stat.name}
+ {stat.value}
))}
diff --git a/src/styles/tailwind.css b/src/styles/tailwind.css
index fcfccc9..416ad33 100644
--- a/src/styles/tailwind.css
+++ b/src/styles/tailwind.css
@@ -41,17 +41,21 @@
--radius-4xl: 2rem;
--radius-5xl: 2.5rem;
- --color-gray-50: oklch(0.985 0 0);
- --color-gray-100: oklch(0.97 0 0);
- --color-gray-200: oklch(0.922 0 0);
- --color-gray-300: oklch(0.87 0 0);
- --color-gray-400: oklch(0.708 0 0);
+ /* Dark mode color palette - inverted grays */
+ --color-gray-50: oklch(0.145 0 0);
+ --color-gray-100: oklch(0.205 0 0);
+ --color-gray-200: oklch(0.269 0 0);
+ --color-gray-300: oklch(0.371 0 0);
+ --color-gray-400: oklch(0.439 0 0);
--color-gray-500: oklch(0.556 0 0);
- --color-gray-600: oklch(0.439 0 0);
- --color-gray-700: oklch(0.371 0 0);
- --color-gray-800: oklch(0.269 0 0);
- --color-gray-900: oklch(0.205 0 0);
- --color-gray-950: oklch(0.145 0 0);
+ --color-gray-600: oklch(0.708 0 0);
+ --color-gray-700: oklch(0.87 0 0);
+ --color-gray-800: oklch(0.922 0 0);
+ --color-gray-900: oklch(0.97 0 0);
+ --color-gray-950: oklch(0.985 0 0);
+
+ /* Custom dark background */
+ --color-dark-bg: #121212;
--font-sans: var(--font-inter);