updat d2c page and scroll fix

This commit is contained in:
2026-07-03 01:41:43 +05:30
parent 60147da53e
commit 843182d393
18 changed files with 120 additions and 86 deletions

BIN
public/brand part.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

BIN
public/d2c bg1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

View File

@@ -17,7 +17,7 @@ export const metadata: Metadata = {
const STRATEGY_CARDS = [
{
title: "Our Mission",
descr: "To make mediocre, or average stores, perform as well as the great ones. By going beyond selling a product, to establish a solid brand identity and build a relationship with their customers using Nearle.",
descr: "To help average stores perform like the great ones, not just by selling products, but by building a strong brand identity and real relationships with customers through Nearle.",
icon: "target",
iconClass: "bg-[#6330D6]/[0.07] text-[#6330D6] border-[#6330D6]/10",
image: "/images/nearle-how/how-storefront.webp",
@@ -156,9 +156,9 @@ export default function AboutPage() {
</section>
{/* ─── Brand Building Banner ─── */}
<AnimatedSection>
<section className="relative overflow-hidden py-10 md:py-14 xl:py-10 px-6 md:px-12 lg:px-16 xl:px-20 2xl:px-24 text-center bg-[#FAF7FD] mb-2 md:mb-3 xl:mb-4">
<FloatingDelivery />
<section className="relative overflow-hidden py-10 md:py-14 xl:py-10 px-6 md:px-12 lg:px-16 xl:px-20 2xl:px-24 text-center bg-[#FAF7FD] mb-2 md:mb-3 xl:mb-4">
<FloatingDelivery />
<AnimatedSection>
<div className="max-w-4xl mx-auto relative z-10">
<span className="text-xs text-secondary uppercase tracking-widest font-black bg-secondary/5 px-3.5 py-1 rounded-full">
Don&apos;t miss the opportunity
@@ -186,8 +186,8 @@ export default function AboutPage() {
</Link>
</div>
</div>
</section>
</AnimatedSection>
</AnimatedSection>
</section>
</PremiumPageShell>
);
}

View File

@@ -19,7 +19,7 @@ export const metadata: Metadata = {
openGraph: {
title: "Direct-to-Customer Brands | Nearle",
description:
"Partner with Nearle to get your brand into neighbourhood stores. Distribution, retail visibility, marketing campaigns, and real-time analytics all in one platform.",
"Partner with Nearle to get your brand into neighbourhood stores. Distribution, retail visibility, marketing campaigns, and real-time analytics, all in one platform.",
url: "https://nearle.in/brands",
},
};
@@ -28,7 +28,7 @@ const WHAT_WE_OFFER = [
{
icon: "hub",
title: "Hyperlocal Distribution",
desc: "Get your products into verified neighbourhood stores across Coimbatore. Nearle's merchant network means your brand reaches the street-level where most daily purchases actually happen.",
desc: "Get your products into verified neighbourhood stores across Coimbatore. Nearle's merchant network means your brand reaches the street level, where most daily purchases actually happen.",
tone: "bg-[#6330D6]/8 text-[#6330D6]",
badge: "Distribution",
},
@@ -49,7 +49,7 @@ const WHAT_WE_OFFER = [
{
icon: "analytics",
title: "Brand & Retail Analytics",
desc: "See real-time sell-through rates, customer purchase frequency, geographic demand patterns, and campaign ROI all in your brand dashboard.",
desc: "See real-time sell-through rates, customer purchase frequency, geographic demand patterns, and campaign ROI, all in your brand dashboard.",
tone: "bg-[#6330D6]/8 text-[#6330D6]",
badge: "Analytics",
},
@@ -166,7 +166,7 @@ export default function BrandsPage() {
The Full Stack of Neighbourhood Commerce
</h2>
<p className="text-sm md:text-base text-[#5E5866] max-w-2xl mx-auto leading-relaxed">
From your first store listing to city-wide distribution Nearle builds the infrastructure so you can focus on your product.
From your first store listing to city-wide distribution, Nearle builds the infrastructure so you can focus on your product.
</p>
</div>
</AnimatedSection>
@@ -196,8 +196,18 @@ export default function BrandsPage() {
</section>
{/* ─── Industries ─── */}
<section className="py-10 md:py-14 xl:py-12 bg-[#FAF7FD] border-b border-[#6330D6]/10">
<div className="px-6 md:px-12 lg:px-16 xl:px-20 2xl:px-24">
<section className="relative overflow-hidden py-10 md:py-14 xl:py-12 bg-[#FAF7FD] border-b border-[#6330D6]/10">
<Image
src="/d2c bg1.png"
alt=""
fill
priority={false}
sizes="100vw"
className="absolute inset-0 z-0 object-cover"
aria-hidden="true"
/>
<div className="absolute inset-0 z-[1] bg-white/40" />
<div className="relative z-10 px-6 md:px-12 lg:px-16 xl:px-20 2xl:px-24">
<div className="grid grid-cols-1 lg:grid-cols-[30%_1fr] gap-10 xl:gap-16 items-center">
{/* Real product collage */}
<AnimatedSection className="order-2 lg:order-1" variant="fadeUp">
@@ -205,7 +215,7 @@ export default function BrandsPage() {
<div className="absolute left-0 top-0 h-[62%] w-[72%] overflow-hidden rounded-[28px] border-4 border-white shadow-[0_20px_50px_rgba(22,0,29,0.16)]">
<Image
src="/images/cat-daily-essentials.webp"
alt="Daily essentials milk, bread, and fresh produce stocked on Nearle stores"
alt="Daily essentials like milk, bread, and fresh produce stocked on Nearle stores"
fill
sizes="(max-width: 1023px) 300px, 22vw"
className="object-cover"
@@ -362,6 +372,7 @@ export default function BrandsPage() {
"circle at 70% 30%, rgba(99,48,214,0.2), transparent 50%",
"circle at 20% 70%, rgba(0,109,55,0.12), transparent 45%",
]}
backgroundImage="/brand part.png"
/>
</PremiumPageShell>
);

View File

@@ -13,7 +13,7 @@ import type { Metadata } from "next";
export const metadata: Metadata = {
title: "Nearle for Business",
description:
"Grow your local business with Nearle. Get discovered by nearby customers, manage online orders, run local offers, and build repeat sales all from one simple hyperlocal platform.",
"Grow your local business with Nearle. Get discovered by nearby customers, manage online orders, run local offers, and build repeat sales, all from one simple hyperlocal platform.",
};

View File

@@ -17,10 +17,10 @@ export default function ContactPage() {
<ContactHero />
{/* ─── Map Section ─── */}
<AnimatedSection>
<section className="bg-[#FAF7FD] px-4 py-8 md:px-6 lg:px-8 xl:px-10 2xl:px-12">
<div className="mx-auto w-full ">
<div className="relative h-[420px] overflow-hidden rounded-2xl border border-[#6330D6]/10 shadow-[0_4px_24px_rgba(99,48,214,0.02)]">
<AnimatedSection className="h-full">
<iframe
title="Nearle Coimbatore Location Map"
src="https://maps.google.com/maps?q=424,+Diwan+Bahadur+Rd,+Opposite+To+Sri+Krishna+Sweets,+R.S.+Puram,+Coimbatore,+Tamil+Nadu+641002&t=&z=16&ie=UTF8&iwloc=&output=embed"
@@ -42,10 +42,10 @@ export default function ContactPage() {
<p className="text-[10px] text-[#5E5866] mt-0.5 leading-none">Connecting vendors & residents</p>
</div>
</div>
</AnimatedSection>
</div>
</div>
</section>
</AnimatedSection>
</PremiumPageShell>
);
}

View File

@@ -11,7 +11,7 @@ export const metadata: Metadata = {
openGraph: {
title: "Cookie Policy | Nearle",
description:
"Nearle's cookie policy what cookies we use, why we use them, and how to manage your preferences.",
"Nearle's cookie policy explains what cookies we use, why we use them, and how to manage your preferences.",
url: "https://nearle.in/cookies",
},
};
@@ -48,7 +48,7 @@ const COOKIE_TYPES = [
id: "performance",
icon: "speed",
title: "Performance Cookies",
description: "These help us understand how fast pages load, where errors occur, and which parts of the platform customers use most. The data is used only to improve Nearle not to track individuals.",
description: "These help us understand how fast pages load, where errors occur, and which parts of the platform customers use most. The data is used only to improve Nearle, not to track individuals.",
required: false,
examples: [
{ name: "perf_timing", purpose: "Records page load times to detect slowness", duration: "1 day" },
@@ -62,7 +62,7 @@ const COOKIE_TYPES = [
id: "analytics",
icon: "analytics",
title: "Analytics Cookies",
description: "Analytics cookies help us understand aggregate usage patterns how many people browse the grocery section, which searches are most common, and how customers discover local stores. All data is anonymised.",
description: "Analytics cookies help us understand aggregate usage patterns, like how many people browse the grocery section, which searches are most common, and how customers discover local stores. All data is anonymised.",
required: false,
examples: [
{ name: "nearle_analytics", purpose: "Tracks page views and in-app navigation patterns", duration: "12 months" },
@@ -76,7 +76,7 @@ const COOKIE_TYPES = [
id: "preference",
icon: "tune",
title: "Preference Cookies",
description: "Preference cookies remember your choices your saved delivery address, your preferred neighbourhood, your language setting, and which stores you've marked as favourites.",
description: "Preference cookies remember your choices, like your saved delivery address, your preferred neighbourhood, your language setting, and which stores you've marked as favourites.",
required: false,
examples: [
{ name: "nearle_location", purpose: "Stores your selected neighbourhood and delivery zone", duration: "6 months" },
@@ -91,7 +91,7 @@ const COOKIE_TYPES = [
id: "marketing",
icon: "campaign",
title: "Marketing Cookies",
description: "Nearle does not use cross-site advertising cookies or sell your data to ad networks. We may use cookies to show you relevant promotions and offers within Nearle itself based on your neighbourhood and past orders, not third-party tracking.",
description: "Nearle does not use cross-site advertising cookies or sell your data to ad networks. We may use cookies to show you relevant promotions and offers within Nearle itself, based on your neighbourhood and past orders rather than third-party tracking.",
required: false,
examples: [
{ name: "offer_seen", purpose: "Tracks which promotions you've already seen to avoid repetition", duration: "7 days" },
@@ -184,7 +184,7 @@ export default function CookiePolicyPage() {
{/* What Are Cookies */}
<CookieSection id="what-are-cookies" title="What Are Cookies?">
<p>Cookies are small text files stored on your device when you visit a website or use an app. They let the platform remember information between visits like whether you&apos;re logged in, what&apos;s in your cart, and which neighbourhood you&apos;ve selected.</p>
<p>Cookies are small text files stored on your device when you visit a website or use an app. They let the platform remember information between visits, like whether you&apos;re logged in, what&apos;s in your cart, and which neighbourhood you&apos;ve selected.</p>
<p>On Nearle, we use cookies in the web app and similar technologies (like local storage) in the mobile apps. The principle is the same: store only what&apos;s needed to give you a smooth, personalised experience.</p>
<div className="flex gap-3 p-4 rounded-2xl bg-[#6330D6]/5 border border-[#6330D6]/10 mt-4">
@@ -262,12 +262,12 @@ export default function CookiePolicyPage() {
</ul>
<h3 className="text-base md:text-lg font-black text-[#16001D] mt-5 mb-2">Through Your Nearle Account</h3>
<p>You can manage optional cookies from your Nearle account settings. Essential cookies cannot be disabled they are required for the platform to work.</p>
<p>You can manage optional cookies from your Nearle account settings. Essential cookies cannot be disabled because they are required for the platform to work.</p>
<div className="flex gap-3 p-4 rounded-2xl bg-[#6330D6]/5 border border-[#6330D6]/10 mt-4">
<MaterialIcon icon="warning" size={18} className="text-[#6330D6] shrink-0 mt-0.5" />
<p className="text-sm text-[#5E5866] leading-relaxed">
Disabling all cookies may cause some features to stop working like staying logged in or remembering your delivery address. We recommend keeping essential and preference cookies enabled for the best experience.
Disabling all cookies may cause some features to stop working, like staying logged in or remembering your delivery address. We recommend keeping essential and preference cookies enabled for the best experience.
</p>
</div>
</CookieSection>
@@ -280,7 +280,7 @@ export default function CookiePolicyPage() {
<div className="space-y-2 text-sm text-[#5E5866]">
<div className="flex gap-2">
<MaterialIcon icon="mail" size={16} className="text-[#6330D6] shrink-0 mt-0.5" />
<a href="mailto:privacy@nearle.in" className="text-[#6330D6] font-black hover:underline">privacy@nearle.in</a>
<a href="mailto:care@nearle.in" className="text-[#6330D6] font-black hover:underline">care@nearle.in</a>
</div>
<div className="flex gap-2">
<MaterialIcon icon="location_on" size={16} className="text-[#6330D6] shrink-0 mt-0.5" />

View File

@@ -34,7 +34,7 @@ const BENEFITS = [
{
icon: "access_time",
title: "Flexible Hours",
desc: "Choose your own shifts morning, afternoon, or evening. Take a day off whenever you need. No fixed schedule, no minimum hours.",
desc: "Choose your own shifts: morning, afternoon, or evening. Take a day off whenever you need. No fixed schedule, no minimum hours.",
tone: "bg-[#6330D6]/8 text-[#6330D6]",
},
{
@@ -52,7 +52,7 @@ const BENEFITS = [
{
icon: "electric_scooter",
title: "Low Fuel, High Efficiency",
desc: "Short distances mean lower fuel costs and more deliveries per hour which means more money in your pocket.",
desc: "Short distances mean lower fuel costs and more deliveries per hour, which means more money in your pocket.",
tone: "bg-secondary/8 text-secondary",
},
{
@@ -114,7 +114,7 @@ const TIMELINE = [
{
step: "04",
title: "Pick Up Orders",
desc: "When you accept an order, you navigate to the store, pick up the package, and deliver it to the customer usually within 30 minutes.",
desc: "When you accept an order, you navigate to the store, pick up the package, and deliver it to the customer, usually within 30 minutes.",
time: "Every Shift",
},
{
@@ -128,7 +128,7 @@ const TIMELINE = [
const FAQ_ITEMS = [
{
question: "Do I need to own a vehicle to join?",
answer: "Yes, you need your own two-wheeler a bicycle, scooter, or motorcycle in good working condition. Electric scooters and bikes are also welcome. We don't provide vehicles, but delivery earnings usually cover running costs easily given the short distances.",
answer: "Yes, you need your own two-wheeler: a bicycle, scooter, or motorcycle in good working condition. Electric scooters and bikes are also welcome. We don't provide vehicles, but delivery earnings usually cover running costs easily given the short distances.",
},
{
question: "How are earnings calculated?",
@@ -140,11 +140,11 @@ const FAQ_ITEMS = [
},
{
question: "How quickly do I get paid?",
answer: "Your earnings are settled every Monday for the previous week's work. There's no minimum earnings threshold — even a single delivery is paid out.",
answer: "Your earnings are settled every Monday for the previous week's work. There's no minimum earnings threshold. Even a single delivery is paid out.",
},
{
question: "Is there a minimum number of deliveries I have to do?",
answer: "No. Nearle is fully flexible. You can go online whenever you want and go offline whenever you want. There are no minimums though performance bonuses reward consistency.",
answer: "No. Nearle is fully flexible. You can go online whenever you want and go offline whenever you want. There are no minimums, though performance bonuses reward consistency.",
},
{
question: "What if a customer cancels after I've picked up the order?",
@@ -156,7 +156,7 @@ const FAQ_ITEMS = [
},
{
question: "How do I handle customer complaints?",
answer: "You don't need to handle complaints directly. If a customer has an issue, they contact Nearle support. Your job is to deliver — we handle the communication, refund decisions, and dispute resolution.",
answer: "You don't need to handle complaints directly. If a customer has an issue, they contact Nearle support. Your job is to deliver. We handle the communication, refund decisions, and dispute resolution.",
},
];
@@ -185,7 +185,7 @@ export default function DeliveryPartnersPage() {
</h1>
<p className="text-sm md:text-base text-[#5E5866] font-bold mt-6 leading-relaxed">
Join the Nearle delivery network and earn by making short, local deliveries in your neighbourhood on your own schedule, at your own pace.
Join the Nearle delivery network and earn by making short, local deliveries in your neighbourhood, on your own schedule, at your own pace.
</p>
<div className="hidden md:flex md:flex-row md:gap-3.5 mt-8">
@@ -235,7 +235,7 @@ export default function DeliveryPartnersPage() {
More Than Just Delivery
</h2>
<p className="text-sm md:text-base text-[#5E5866] max-w-2xl mx-auto leading-relaxed">
Nearle is designed around your life not the other way around.
Nearle is designed around your life, not the other way around.
</p>
</div>
</AnimatedSection>
@@ -272,7 +272,7 @@ export default function DeliveryPartnersPage() {
What You Need to Join
</h2>
<p className="text-sm md:text-base text-[#5E5866] leading-relaxed mb-8 max-w-lg">
No experience needed. If you have a vehicle, a smartphone, and a desire to earn you&apos;re more than qualified.
No experience needed. If you have a vehicle, a smartphone, and a desire to earn, you&apos;re more than qualified.
</p>
<Link
href="/contact"

View File

@@ -16,7 +16,7 @@ const jost = Jost({
export const metadata: Metadata = {
metadataBase: new URL("https://nearle.in"),
title: {
default: "Nearle Your Neighborhood, Delivered",
default: "Nearle: Your Neighborhood, Delivered",
template: "%s | Nearle",
},
description:
@@ -32,7 +32,7 @@ export const metadata: Metadata = {
"neighborhood commerce",
],
openGraph: {
title: "Nearle Your Neighborhood, Delivered",
title: "Nearle: Your Neighborhood, Delivered",
description:
"Hyper-local essentials, hot meals, and professional services from verified businesses within your 2km radius.",
url: "https://nearle.in",
@@ -50,7 +50,7 @@ export const metadata: Metadata = {
},
twitter: {
card: "summary",
title: "Nearle Your Neighborhood, Delivered",
title: "Nearle: Your Neighborhood, Delivered",
description:
"India's hyperlocal neighborhood commerce platform",
images: ["/logo.png"],

View File

@@ -13,11 +13,11 @@ import type { Metadata } from "next";
export const metadata: Metadata = {
title: "Merchant Partners",
description:
"Bring your neighbourhood store online with Nearle. Get discovered by nearby customers, manage orders, run local offers, and build repeat sales all from one simple platform.",
"Bring your neighbourhood store online with Nearle. Get discovered by nearby customers, manage orders, run local offers, and build repeat sales, all from one simple platform.",
openGraph: {
title: "Merchant Partners | Nearle",
description:
"Join thousands of neighbourhood merchants growing with Nearle. Digital catalogue, QR ordering, local discovery, and order management all in one place.",
"Join thousands of neighbourhood merchants growing with Nearle. Digital catalogue, QR ordering, local discovery, and order management, all in one place.",
url: "https://nearle.in/merchants",
},
};
@@ -33,7 +33,7 @@ const BENEFITS = [
{
icon: "menu_book",
title: "Digital Catalogue",
desc: "Upload your entire product range with photos, pricing, and availability. Keep it updated in minutes — no technical skills needed.",
desc: "Upload your entire product range with photos, pricing, and availability. Keep it updated in minutes. No technical skills needed.",
tone: "bg-[#6330D6]/8 text-[#6330D6]",
},
{
@@ -45,7 +45,7 @@ const BENEFITS = [
{
icon: "location_on",
title: "Hyperlocal Discovery",
desc: "Appear in local searches for products you sell. Nearby customers find you first before they find a big delivery app.",
desc: "Appear in local searches for products you sell. Nearby customers find you first, before they find a big delivery app.",
tone: "bg-[#6330D6]/8 text-[#6330D6]",
},
{
@@ -75,7 +75,7 @@ const BENEFITS = [
{
icon: "people_nearby",
title: "Nearby Customer Reach",
desc: "Connect with families and residents living within 2km of your store your most valuable, loyal customer base.",
desc: "Connect with families and residents living within 2km of your store, your most valuable, loyal customer base.",
tone: "bg-[#6330D6]/8 text-[#6330D6]",
},
];
@@ -92,14 +92,14 @@ const HOW_STEPS = [
num: "02",
icon: "add_photo_alternate",
title: "Upload Your Catalogue",
desc: "Add your products with photos, prices, and stock levels. Our onboarding team helps you get set up fast even if you're starting from scratch.",
desc: "Add your products with photos, prices, and stock levels. Our onboarding team helps you get set up fast, even if you're starting from scratch.",
color: "bg-secondary/7 text-secondary",
},
{
num: "03",
icon: "notifications_active",
title: "Receive Orders",
desc: "When a nearby customer places an order, you get notified instantly. Accept, prepare, and hand off — it's that simple.",
desc: "When a nearby customer places an order, you get notified instantly. Accept, prepare, and hand off. It's that simple.",
color: "bg-[#6330D6]/7 text-[#6330D6]",
},
{
@@ -112,10 +112,10 @@ const HOW_STEPS = [
];
const WHY_REASONS = [
{ icon: "verified_user", title: "Trusted by the Community", desc: "Nearle is built for neighbourhood trust — we verify stores and protect customers so your reputation matters." },
{ icon: "savings", title: "Lower Commission Than Big Platforms", desc: "Keep more of what you earn. Nearle charges fair, transparent rates no hidden fees, no nasty surprises." },
{ icon: "verified_user", title: "Trusted by the Community", desc: "Nearle is built for neighbourhood trust. We verify stores and protect customers so your reputation matters." },
{ icon: "savings", title: "Lower Commission Than Big Platforms", desc: "Keep more of what you earn. Nearle charges fair, transparent rates, with no hidden fees and no nasty surprises." },
{ icon: "support_agent", title: "Dedicated Onboarding Support", desc: "Your own Nearle partner manager helps you get online, upload your catalogue, and answer every question." },
{ icon: "local_fire_department", title: "Built for Indian Kirana Culture", desc: "From vegetable vendors to cloth merchants Nearle is designed around how Indian neighbourhood stores actually work." },
{ icon: "local_fire_department", title: "Built for Indian Kirana Culture", desc: "From vegetable vendors to cloth merchants, Nearle is designed around how Indian neighbourhood stores actually work." },
{ icon: "schedule", title: "You Control Your Hours", desc: "Set your opening hours, manage stock, and pause orders whenever you need. No pressure. No locked-in contracts." },
{ icon: "groups", title: "Local Customer Community", desc: "Join a platform where customers genuinely care about supporting neighbourhood stores over large national brands." },
];
@@ -135,11 +135,11 @@ const FAQ_ITEMS = [
},
{
question: "What kind of stores can join Nearle?",
answer: "Nearle welcomes all neighbourhood stores grocery and kirana shops, bakeries, medical stores, fruit vendors, cloth merchants, stationery shops, pet stores, electronics retailers, and more. If you serve your local community, you belong on Nearle.",
answer: "Nearle welcomes all neighbourhood stores: grocery and kirana shops, bakeries, medical stores, fruit vendors, cloth merchants, stationery shops, pet stores, electronics retailers, and more. If you serve your local community, you belong on Nearle.",
},
{
question: "How do customers pay for their orders?",
answer: "Customers can pay online through UPI, debit/credit cards, or wallets or choose cash on delivery. You receive payouts to your bank account on a weekly settlement cycle.",
answer: "Customers can pay online through UPI, debit/credit cards, or wallets, or they can choose cash on delivery. You receive payouts to your bank account on a weekly settlement cycle.",
},
{
question: "Can I run offers and discounts for my customers?",
@@ -188,7 +188,7 @@ export default function MerchantsPage() {
</h1>
<p className="text-sm md:text-base text-[#5E5866] font-bold mt-6 leading-relaxed">
Your neighbourhood customers are already looking for you online. Get discovered, take orders, and grow your business without leaving your store.
Your neighbourhood customers are already looking for you online. Get discovered, take orders, and grow your business, without leaving your store.
</p>
<div className="hidden md:flex md:flex-row md:gap-3.5 mt-8">
@@ -238,7 +238,7 @@ export default function MerchantsPage() {
Everything Your Store Needs to Grow
</h2>
<p className="text-sm md:text-base text-[#5E5866] max-w-2xl mx-auto leading-relaxed">
Nearle gives your neighbourhood store the same tools that big online retailers have without the complexity.
Nearle gives your neighbourhood store the same tools that big online retailers have, without the complexity.
</p>
</div>
</AnimatedSection>
@@ -316,7 +316,7 @@ export default function MerchantsPage() {
<span className="text-[#6330D6]">Best Business Partner</span>
</h2>
<p className="text-sm md:text-base text-[#5E5866] leading-relaxed mb-8 max-w-lg">
Nearle isn&apos;t built like a big delivery platform that squeezes margins. We&apos;re built for neighbourhood stores like yours where community and trust come first.
Nearle isn&apos;t built like a big delivery platform that squeezes margins. We&apos;re built for neighbourhood stores like yours, where community and trust come first.
</p>
{/* Stats row */}
@@ -364,10 +364,11 @@ export default function MerchantsPage() {
Real Results from Real Stores
</h2>
</div>
</AnimatedSection>
<div className="relative overflow-hidden rounded-[2rem] bg-[linear-gradient(135deg,#ffffff_0%,#F4ECFA_100%)] border border-[#6330D6]/10 shadow-[0_18px_50px_rgba(22,0,29,0.08)] p-8 md:p-10 lg:p-12">
<div className="pointer-events-none absolute -right-20 -top-20 h-64 w-64 rounded-full bg-[#6330D6]/5 blur-3xl" />
<div className="relative z-10 grid grid-cols-1 lg:grid-cols-[1fr_1.5fr] gap-8 lg:gap-12 items-center">
<AnimatedSection className="relative z-10 grid grid-cols-1 lg:grid-cols-[1fr_1.5fr] gap-8 lg:gap-12 items-center">
<div>
<div className="inline-flex items-center gap-2 px-3 py-1 rounded-full bg-secondary/10 text-secondary text-xs font-black uppercase tracking-wider mb-5">
<MaterialIcon icon="store" size={14} />
@@ -401,9 +402,8 @@ export default function MerchantsPage() {
</AnimatedCard>
))}
</AnimatedGrid>
</div>
</AnimatedSection>
</div>
</AnimatedSection>
</div>
</section>

View File

@@ -225,12 +225,12 @@ export default function PeoplePage() {
</section>
{/* ─── Ready to Download Section ─── */}
<AnimatedSection>
<section className="bg-white px-2 pt-2 pb-2 md:px-3 md:pt-3 md:pb-3 lg:px-4 lg:pt-4 lg:pb-4 xl:px-5 xl:pt-4 xl:pb-4 2xl:px-6 2xl:pb-5">
<section id="download-section" className="relative w-full overflow-hidden rounded-[28px] bg-gradient-to-br from-[#16001D] to-[#25002F] p-8 text-center text-white md:p-10 lg:p-12 xl:p-10">
{/* Subtle glow layers */}
<div className="absolute inset-0 bg-[radial-gradient(circle_at_50%_-20%,rgba(99,48,214,0.15),transparent_70%)] pointer-events-none" />
<AnimatedSection>
{/* DESKTOP LAYOUT */}
<div className="hidden lg:grid grid-cols-12 items-center gap-10 relative z-10 w-full">
{/* Left Column: Copy & Download badges */}
@@ -494,9 +494,9 @@ export default function PeoplePage() {
</a>
</div>
</div>
</AnimatedSection>
</section>
</section>
</AnimatedSection>
</PremiumPageShell>
);
}

View File

@@ -11,7 +11,7 @@ export const metadata: Metadata = {
openGraph: {
title: "Privacy Policy | Nearle",
description:
"Nearle's privacy policy how we handle your data across our hyperlocal commerce platform.",
"Nearle's privacy policy explains how we handle your data across our hyperlocal commerce platform.",
url: "https://nearle.in/privacy",
},
};
@@ -63,7 +63,7 @@ export default function PrivacyPolicyPage() {
Privacy Policy
</h1>
<p className="text-sm md:text-base text-[#5E5866] mt-4 max-w-2xl leading-relaxed font-semibold">
Nearle is committed to protecting your privacy. This policy explains how we collect, use, and safeguard information across our hyperlocal commerce platform for customers, merchants, and delivery partners.
Nearle is committed to protecting your privacy. This policy explains how we collect, use, and safeguard information across our hyperlocal commerce platform for customers, merchants, and delivery partners.
</p>
</div>
<div className="shrink-0 text-right">
@@ -128,14 +128,14 @@ export default function PrivacyPolicyPage() {
<div className="prose-nearle max-w-none space-y-12">
<PolicySection id="information-we-collect" title="Information We Collect">
<p>When you use Nearle whether you&apos;re a customer ordering groceries from a neighbourhood store, a merchant managing your digital catalogue, or a delivery partner on your route we collect information that helps us deliver the service.</p>
<p>Whether you&apos;re a customer ordering groceries from a neighbourhood store, a merchant managing your digital catalogue, or a delivery partner on your route, using Nearle means we collect information that helps us deliver the service.</p>
<PolicySubheading>For Customers</PolicySubheading>
<PolicyList items={[
"Name, phone number, and email address when you create a Nearle account",
"Delivery address and neighbourhood location to match you with nearby stores",
"Order history, item preferences, and past interactions on the platform",
"Payment details (processed securely Nearle does not store card numbers)",
"Payment details, processed securely. Nearle does not store card numbers",
"Device type, app version, and approximate location during active sessions",
]} />
@@ -175,13 +175,13 @@ export default function PrivacyPolicyPage() {
<p>Your information stays within the Nearle platform to serve you. Here&apos;s exactly how:</p>
<PolicySubheading>Order Fulfilment</PolicySubheading>
<p>When a customer places an order, we share their delivery address and contact number with the merchant store and the assigned delivery partner only for that specific delivery. Once the order is complete, access is revoked.</p>
<p>When a customer places an order, we share their delivery address and contact number with the merchant store and the assigned delivery partner, only for that specific delivery. Once the order is complete, access is revoked.</p>
<PolicySubheading>Customer Discovery</PolicySubheading>
<p>We use your neighbourhood location to surface stores, products, and offers that are genuinely nearby not stores 20km away. We don&apos;t build advertising profiles or sell your browsing behaviour.</p>
<p>We use your neighbourhood location to surface stores, products, and offers that are genuinely nearby, not stores 20km away. We don&apos;t build advertising profiles or sell your browsing behaviour.</p>
<PolicySubheading>Merchant Analytics</PolicySubheading>
<p>Merchants see aggregated data about their own customers sales trends, popular items, delivery times. They do not see individual customer profiles, phone numbers, or personal details.</p>
<p>Merchants see aggregated data about their own customers, such as sales trends, popular items, and delivery times. They do not see individual customer profiles, phone numbers, or personal details.</p>
<PolicySubheading>Delivery Partner Routing</PolicySubheading>
<p>We use real-time GPS location data during active delivery shifts to assign orders and optimise routes. Location tracking stops the moment a delivery partner goes offline.</p>
@@ -196,7 +196,7 @@ export default function PrivacyPolicyPage() {
<PolicyList items={[
"With merchants: only the delivery address and contact number needed to prepare and hand over your order",
"With delivery partners: only the pickup location, drop-off address, and a masked contact number for that specific delivery",
"With payment processors: to securely complete transactions they are bound by PCI DSS standards",
"With payment processors: to securely complete transactions, as they are bound by PCI DSS standards",
"With government authorities: only when legally required by Indian law or a court order",
"With fraud prevention systems: to detect and prevent fake accounts and chargebacks",
]} />
@@ -207,7 +207,7 @@ export default function PrivacyPolicyPage() {
</PolicySection>
<PolicySection id="security" title="How We Keep Your Data Secure">
<p>Nearle takes security seriously because neighbourhood trust is our entire business model.</p>
<p>Nearle takes security seriously, because neighbourhood trust is our entire business model.</p>
<PolicyList items={[
"All data is transmitted over encrypted HTTPS connections",
"Passwords are hashed and never stored in plain text",
@@ -216,16 +216,16 @@ export default function PrivacyPolicyPage() {
"We conduct regular security audits and vulnerability assessments",
"Data is backed up and stored in geographically redundant, encrypted storage",
]} />
<p>If you ever suspect unauthorised access to your Nearle account, contact our support team immediately at <a href="mailto:security@nearle.in" className="text-[#6330D6] font-black hover:underline">security@nearle.in</a>.</p>
<p>If you ever suspect unauthorised access to your Nearle account, contact our support team immediately at <a href="mailto:care@nearle.in" className="text-[#6330D6] font-black hover:underline">care@nearle.in</a>.</p>
</PolicySection>
<PolicySection id="cookies" title="Cookies and Tracking">
<p>Nearle uses cookies and similar technologies to keep the platform running smoothly. Our full <Link href="/cookies" className="text-[#6330D6] font-black hover:underline">Cookie Policy</Link> explains each type in detail. In short:</p>
<PolicyList items={[
"Essential cookies: required for login, cart, and core app functions cannot be disabled",
"Essential cookies: required for login, cart, and core app functions, and cannot be disabled",
"Performance cookies: help us understand how pages are used and where errors occur",
"Preference cookies: remember your settings, neighbourhood, and saved addresses",
"Analytics cookies: aggregate, anonymised data on platform usage no individual profiles",
"Analytics cookies: aggregate, anonymised data on platform usage, with no individual profiles",
]} />
<p>We do not use advertising cookies or cross-site tracking. You can manage cookie preferences from your browser settings or your Nearle account.</p>
</PolicySection>
@@ -240,7 +240,7 @@ export default function PrivacyPolicyPage() {
"Right to withdraw consent: for optional data uses, you can withdraw consent at any time",
"Right to raise a grievance: contact our Grievance Officer (details below) for any privacy concern",
]} />
<p>To exercise any of these rights, email us at <a href="mailto:privacy@nearle.in" className="text-[#6330D6] font-black hover:underline">privacy@nearle.in</a> from your registered email address. We respond within 30 days.</p>
<p>To exercise any of these rights, email us at <a href="mailto:care@nearle.in" className="text-[#6330D6] font-black hover:underline">care@nearle.in</a> from your registered email address. We respond within 30 days.</p>
</PolicySection>
<PolicySection id="contact" title="Contact and Grievance Officer">
@@ -250,7 +250,7 @@ export default function PrivacyPolicyPage() {
<div className="space-y-2 text-sm text-[#5E5866]">
<div className="flex gap-2">
<MaterialIcon icon="mail" size={16} className="text-[#6330D6] shrink-0 mt-0.5" />
<a href="mailto:privacy@nearle.in" className="text-[#6330D6] font-black hover:underline">privacy@nearle.in</a>
<a href="mailto:care@nearle.in" className="text-[#6330D6] font-black hover:underline">care@nearle.in</a>
</div>
<div className="flex gap-2">
<MaterialIcon icon="location_on" size={16} className="text-[#6330D6] shrink-0 mt-0.5" />

View File

@@ -11,7 +11,7 @@ export const metadata: Metadata = {
openGraph: {
title: "Terms of Service | Nearle",
description:
"Nearle's terms of service governing accounts, orders, payments, merchant and delivery partner responsibilities.",
"Nearle's terms of service, governing accounts, orders, payments, merchant and delivery partner responsibilities.",
url: "https://nearle.in/terms",
},
};
@@ -65,7 +65,7 @@ export default function TermsOfServicePage() {
Terms of Service
</h1>
<p className="text-sm md:text-base text-[#5E5866] mt-4 max-w-2xl leading-relaxed font-semibold">
These Terms of Service govern your use of the Nearle platform including the customer app, merchant dashboard, and delivery partner app. By using Nearle, you agree to these terms.
These Terms of Service govern your use of the Nearle platform, including the customer app, merchant dashboard, and delivery partner app. By using Nearle, you agree to these terms.
</p>
</div>
<div className="shrink-0 text-right">
@@ -144,9 +144,9 @@ export default function TermsOfServicePage() {
<TermsSection id="orders" title="2. Orders">
<p>When you place an order through Nearle, you are entering into a purchase agreement with the merchant store, not with Nearle. Nearle facilitates the transaction and delivery but is not the seller of the goods.</p>
<TermsList items={[
"Orders are confirmed only after the merchant accepts them availability is not guaranteed",
"Orders are confirmed only after the merchant accepts them, and availability is not guaranteed",
"Order contents, quantities, and prices are as listed at the time of placement",
"Substitutions may be offered by the merchant if an item is unavailable you can accept or cancel",
"Substitutions may be offered by the merchant if an item is unavailable, and you can accept or cancel",
"Estimated delivery times are approximate and may vary based on store preparation and delivery conditions",
"You must be reachable at the delivery address at the time of order fulfillment",
]} />
@@ -186,7 +186,7 @@ export default function TermsOfServicePage() {
<p>Delivery partners accept orders on a voluntary basis and are responsible for safe, timely deliveries.</p>
<TermsList items={[
"Maintain a valid driving licence and vehicle registration (where applicable)",
"Handle all customer orders with care — no tampering with sealed packages",
"Handle all customer orders with care, and never tamper with sealed packages",
"Deliver to the correct address and confirm delivery through the app",
"Behave respectfully toward customers and merchants at all times",
"Follow road safety rules during all delivery shifts",
@@ -237,13 +237,13 @@ export default function TermsOfServicePage() {
"Merchants can offboard from the platform with 30 days written notice",
"Delivery partners can deactivate their partner profile at any time without penalty",
]} />
<p>Nearle reserves the right to suspend or permanently terminate any account customer, merchant, or delivery partner for violations of these terms, fraud, safety concerns, or behaviour that harms the community. We will notify affected parties where legally required.</p>
<p>Nearle reserves the right to suspend or permanently terminate any account, whether customer, merchant, or delivery partner, for violations of these terms, fraud, safety concerns, or behaviour that harms the community. We will notify affected parties where legally required.</p>
</TermsSection>
<TermsSection id="liability" title="9. Limitation of Liability">
<p>Nearle provides its platform on an &quot;as available&quot; basis. While we strive for a reliable, high-quality service, the following limitations apply:</p>
<TermsList items={[
"Nearle is not liable for product quality, freshness, or accuracy those are the merchant's responsibility",
"Nearle is not liable for product quality, freshness, or accuracy, as those are the merchant's responsibility",
"Nearle is not liable for delivery delays caused by weather, traffic, or force majeure",
"Nearle is not responsible for losses arising from account compromise due to sharing credentials",
"Our aggregate liability to any user for any claim shall not exceed the value of the disputed transaction",
@@ -258,7 +258,7 @@ export default function TermsOfServicePage() {
<div className="space-y-2 text-sm text-[#5E5866]">
<div className="flex gap-2">
<MaterialIcon icon="mail" size={16} className="text-[#6330D6] shrink-0 mt-0.5" />
<a href="mailto:legal@nearle.in" className="text-[#6330D6] font-black hover:underline">legal@nearle.in</a>
<a href="mailto:care@nearle.in" className="text-[#6330D6] font-black hover:underline">care@nearle.in</a>
</div>
<div className="flex gap-2">
<MaterialIcon icon="location_on" size={16} className="text-[#6330D6] shrink-0 mt-0.5" />

View File

@@ -353,7 +353,7 @@ const FEATURES = [
},
{
title: "Reach Right Audience",
descr: "We target your ideal customers people in your neighborhood search for what you offer.",
descr: "We target your ideal customers: people in your neighborhood who are already searching for what you offer.",
Illus: AudienceSVG,
},
{

View File

@@ -87,7 +87,7 @@ export function BrandsHero() {
animate="visible"
className="max-w-[650px] text-lg md:text-xl text-white/95 font-medium mt-6 leading-[1.6] [text-shadow:0_2px_16px_rgba(0,0,0,0.6)]"
>
Help your D2C brand reach nearby customers, increase repeat purchases, and build a loyal local communityall from one powerful platform.
Help your D2C brand reach nearby customers, increase repeat purchases, and build a loyal local community, all from one powerful platform.
</motion.p>

View File

@@ -174,7 +174,7 @@ export function BusinessSection() {
</h2>
<p className="max-w-md text-base text-on-surface-variant leading-relaxed">
Reach more nearby customers, accept online orders, promote local offers, and grow repeat sales while staying in control of your business.
Reach more nearby customers, accept online orders, promote local offers, and grow repeat sales, while staying in control of your business.
</p>
<div className="mt-5 space-y-3">

View File

@@ -1,6 +1,7 @@
"use client";
import Link from "next/link";
import Image from "next/image";
import { motion } from "framer-motion";
import { MaterialIcon } from "@/components/ui/MaterialIcon";
@@ -31,9 +32,10 @@ type CTABannerProps = {
primary: { href: string; icon: string; label: string };
secondary: { href: string; icon: string; label: string };
decorations?: string[];
backgroundImage?: string;
};
export function CTABanner({ badge, heading, body, primary, secondary, decorations }: CTABannerProps) {
export function CTABanner({ badge, heading, body, primary, secondary, decorations, backgroundImage }: CTABannerProps) {
return (
<section className="bg-white px-2 pt-2 pb-2 md:px-3 md:pt-3 md:pb-3 lg:px-4 lg:pt-4 lg:pb-4 xl:px-5 xl:pt-4 xl:pb-4 2xl:px-6 2xl:pb-5">
<motion.div
@@ -44,6 +46,27 @@ export function CTABanner({ badge, heading, body, primary, secondary, decoration
viewport={VP}
>
<div className="px-6 py-12 md:px-10 md:py-14 lg:px-14 xl:py-12 text-center relative">
{backgroundImage && (
<Image
src={backgroundImage}
alt=""
fill
priority={false}
className="object-cover absolute inset-0 z-0"
aria-hidden="true"
/>
)}
{backgroundImage && (
<div
className="absolute inset-0 z-[1]"
style={{
background:
"linear-gradient(135deg, rgba(26,3,34,0.72), rgba(43,0,64,0.62), rgba(10,0,13,0.72))",
}}
/>
)}
{decorations?.map((grad, i) => (
<motion.div
key={i}

View File

@@ -49,7 +49,7 @@ export function FeatureStatsRow({ items, className = "" }: FeatureStatsRowProps)
</motion.div>
{index < items.length - 1 && (
<div
className="hidden lg:block w-px h-[72px] bg-[#E9D8FD] shrink-0 self-center"
className="hidden lg:block w-px h-[72px] bg-[#E9D8FD] shrink-0 self-center lg:mx-4 xl:mx-8"
aria-hidden="true"
/>
)}