+ {/* Page-specific design system — inline so it's scoped and SSR-safe */}
+ {/* eslint-disable-next-line react/no-danger */}
+
- {/* ── Hero ── */}
-
-
-
+ {/* Scroll reveal — client-only behaviour, renders nothing to DOM */}
+
-
- {/* Left: letter heading */}
-
-
Our story
-
- A Letter to Every{" "}
-
- New Parent
-
-
-
- Built by parents. Inspired by our daughter. Made for families like yours.
-
-
— Yashika & Manohar
-
+
- {/* Right: family illustration */}
-
-
-
+ {/* ── HERO: title only — suspense preserved ── */}
+
+
Our story
+
+ A letter to every
+ new parent
+
+
+
+ {/* ══ LETTER BODY ══════════════════════════════════════════ */}
+
+
+ {/* Opening — drop cap + floated photo */}
+
+
+ When we held our daughter for the first time, we felt a rush of love we never knew
+ we were capable of — and alongside it, a fear we hadn't expected.
+
+
+ {/* Family illustration — floats right, text wraps */}
+
+
+ In those early days, we wanted to capture every yawn, every gurgle, every tiny
+ hand curling around our fingers. But the apps we tried felt cold and clinical — as
+ though they had been built by people who had never stayed awake at 3 a.m.
+ wondering whether their baby's cough sounded different from yesterday.
+
+
+ When our daughter, Tia, was born, we made a silent promise: we would remember
+ everything.
+
+
We meant it completely.
+
+ And within weeks, details were already slipping away — not the big milestones, but
+ the small things. The exact weight on day five. The way she stretched when she woke
+ up. The moment she first looked at us as though she knew who we were.
+
+
+ Those tiny details felt irreplaceable, and yet they were already beginning to fade.
+
-
-
- {/* ── Letter body ── */}
-
-
- {/* Opening */}
-
-
- When we held our daughter for the first time, we felt a rush of love we never knew
- we were capable of — and alongside it, a fear we hadn't expected.
-
-
- Everything felt fragile. Everything felt new.
-
-
- In those early days, we wanted to capture every yawn, every gurgle, every tiny hand
- curling around our fingers. But the apps we tried felt cold and clinical, as though
- they had been built by people who had never stayed awake at 3 a.m. wondering whether
- their baby's cough sounded different from yesterday.
-
-
- When our daughter, Tia, was born, we made a silent promise: we would remember
- everything.
-
-
- We meant it completely.
-
-
- And within weeks, details were already slipping away — not the big milestones, but the
- small things. The exact weight on day five. The way she stretched when she woke up. The
- moment she first looked at us as though she knew who we were.
-
-
- Those tiny details felt irreplaceable, and yet they were already beginning to fade.
-
-
+
That realisation became the seed for everything Tia is today.
-
- {/* ── Section: Why We Named the App Tia ── */}
-
-
Why We Named the App Tia
-
-
- We named this app after our daughter, Tia.
+ {/* ── Why we named it ── */}
+
Why we named the app Tia
+
+
+ We named this app after our daughter, Tia. Not because we wanted a monument to
+ her. Not because we wanted her name attached to a product.
-
- Not because we wanted a monument to her. Not because we wanted her name attached
- to a product.
-
-
+
We named it after her because the love we have for our daughter is the same care
we bring to building this app every single day.
-
- When we choose privacy over profit, patience over speed, and thoughtful design over
- endless notifications, we are building Tia the way we hope to raise our daughter —
- with care, responsibility, and respect.
+
+ When we choose privacy over profit, patience over speed, and thoughtful design
+ over endless notifications, we are building Tia the way we hope to raise our
+ daughter — with care, responsibility, and respect.
-
- This app is not a trophy. It is not a brand badge.
+
+
+
+ This app is not a trophy. It is not a brand badge.
+
+
+
+
+ It is simply an extension of what matters most to us. We built Tia with the belief
+ that the earliest years of a child's life deserve extraordinary care. Every
+ decision we make comes from the same understanding:{" "}
+ small things matter.
-
- It is simply an extension of what matters most to us.
-
-
- We built Tia with the belief that the earliest years of a child's life deserve
- extraordinary care. Every decision we make, every feature we release, and every
- promise we keep comes from the same understanding: small things matter.
-
-
+
Because one day, those small things become the memories we treasure most.
-
- {/* ── Section: A Note on Modern Families ── */}
-
-
A Note on Modern Families
-
-
- Like many new parents today, we are raising our daughter in a nuclear family.
+ {/* ── Modern families ── */}
+
A note on modern families
+
+
+ Like many new parents today, we are raising our daughter in a nuclear family. And
+ with that comes a particular kind of loneliness that few people talk about.
-
- And with that comes a particular kind of loneliness that few people talk about.
-
-
+
The grandparents who once lived down the street may now live in another city. The
- relatives whose advice once arrived over a cup of tea now appear through video calls.
- The village that helped raise children for generations often feels farther away than
- ever. The hands that could help are now often on the other side of a screen.
-
-
- Tia was born from that reality, too.
+ relatives whose advice once arrived over a cup of tea now appear through video
+ calls. The village that helped raise children for generations often feels farther
+ away than ever. The hands that could help are now often on the other side of a
+ screen.
- {/* Callout: Indian family context */}
-
+
+ Tia was born from that reality, too.
+
+
+
- Tia is built so that Nani in Lucknow can see today's moments without you
- handing over your phone.
+ Tia is built so that{" "}
+ Nani in Lucknow can see today's moments
+ without you handing over your phone.
- So that Dadu in Jaipur can be reminded of the vaccination schedule without you
- sending a WhatsApp message at 11 PM.
+ So that{" "}
+ Dadu in Jaipur can be reminded of the vaccination
+ schedule without you sending a WhatsApp message at 11 PM.
So that the aunties — even when they are in another city — can still feel like a
@@ -167,142 +488,128 @@ export default function AboutPage() {
-
-
+
+
Because raising a child was never meant to be done alone.
-
- In a small way, we hope Tia helps bring that village back — digitally, gently, and
- with respect for the way modern Indian families actually live.
+
+ In a small way, we hope Tia helps bring that village back — digitally, gently,
+ and with respect for the way modern Indian families actually live.
-
+
- {/* ── Section: What We Believe ── */}
-
-
What We Believe
-
- The first years of your child's life are not a metric to optimise.
-
-
- They are irreplaceable.
-
-
- No app can give you back a missed moment. No notification can replace being present
- when your baby discovers their hands, says a first word, or falls asleep on your shoulder.
-
-
- Your job is to be present.
- Ours is to make the rest a little easier.
-
-
-
- That's why:
-
-
- {[
- "Our vaccination schedule follows the IAP chart.",
- "We don't sell your data.",
- "We don't run ads.",
- "We don't build engagement loops.",
- "We don't treat your child as a product.",
- "We build to protect memories, not compete for attention.",
- ].map((item) => (
-
-
-
-
- {item}
-
- ))}
-
-
-
- Every choice we make is guided by the same principle: your family's story belongs
- to your family.
-
-
-
- {/* ── Section: To the Parent Reading This ── */}
-
-
To the Parent Reading This
-
-
- You are in the middle of something extraordinary.
+ {/* ══ WHAT WE BELIEVE — dark manifesto section ════════════ */}
+
+
+ What we believe
+
+ The first years of your child's life are not{" "}
+ a metric to optimise. They are irreplaceable.
-
- Exhausting. Overwhelming. Beautiful.
+
+ No app can give you back a missed moment. No notification can replace being
+ present when your baby discovers their hands, says a first word, or falls asleep
+ on your shoulder.
-
+
+ Your job is to be present. Ours is to make the rest a little easier.
+
+
+
+ {CREED.map((item, i) => (
+
+ 0{i + 1}
+ {item}
+
+ ))}
+
+
+
+ Every choice we make is guided by the same principle:{" "}
+ your family's story belongs to your family.
+
+
+
+
+ {/* ══ TO THE PARENT + SIGNATURE ════════════════════════════ */}
+
+
To the parent reading this
+
+
+ You are in the middle of something extraordinary.{" "}
+ Exhausting. Overwhelming. Beautiful.
+
+
You will never have this week again. Or this month. Or this exact version of your
child — so small, so curious, and so completely dependent on you.
-
- Tia is not here to track your baby.
-
-
- Tia is here to help you remember your baby — and to hand that memory to them
- someday, complete, authentic, and full of love.
-
-
+
Tia is not here to track your baby.
+
+
+
+ Tia is here to help you remember your baby — and to hand that memory to them
+ someday, complete, authentic, and full of love.
+
+
+
+
And one day, when your child asks,{" "}
“What was I like when I was little?” — we hope you'll
have an answer richer than memory alone.
-
- Photos. Stories. Milestones. Tiny moments that would otherwise have faded with time.
+
+ Photos. Stories. Milestones. Tiny moments that would otherwise have faded with
+ time.
-
+
A digital heirloom, built with love and preserved with care.
-
- {/* ── Signature ── */}
-
-
Thank you for trusting us with your family's story.
-
Welcome to the Tia family.
-
With warmth,
+ {/* Final reveal — authorship */}
+
+ Built by parents. Inspired by our daughter. Made for families like yours.
+
+
✦
-
-
-
-
- Yashika & Manohar
-
-
Co-founders, Tia · Gurugram
+ {/* Signature */}
+
+
Thank you for trusting us with your family's story.
+
Welcome to the Tia family.
+
With warmth,
+
+
+
Yashika & Manohar
+
Co-founders, Tia · Gurugram
+
-
- (and Tia — currently eight months old, trying very hard to eat her own feet, and
- having absolutely no idea that we named this app after her. One day she'll find
- out. We can't wait to see her face.)
+ {/* P.S. — Tia's portrait floated left */}
+
+ {/* eslint-disable-next-line @next/next/no-img-element */}
+
+ P.S.{" "}
+ …and Tia — currently eight months old, trying very hard to eat her own feet, and
+ having absolutely no idea that we named this app after her. One day she'll
+ find out. We can't wait to see her face.
-
- {/* ── CTA ── */}
-
-
- Join the families already building their digital heirloom.
-
-
- Get started — it's free →
-
-
Free during early access. No credit card.
-
+ {/* CTA */}
+
+
Join the families already building their heirloom
+
Start your child's story today.
+
+ Get started — it's free →
+
+
Free during early access. No credit card.
+
+
diff --git a/src/components/marketing/AboutScrollReveal.tsx b/src/components/marketing/AboutScrollReveal.tsx
new file mode 100644
index 0000000..c763186
--- /dev/null
+++ b/src/components/marketing/AboutScrollReveal.tsx
@@ -0,0 +1,56 @@
+"use client";
+import { useEffect } from "react";
+
+// Initialises the gentle fade-in-on-scroll behaviour for the About letter.
+// Default: all .tia-reveal elements are VISIBLE on first paint.
+// Only elements below the fold get .tia-pre (opacity 0 + translateY) applied
+// on mount, then removed as they scroll into view. This guarantees content is
+// never stuck invisible if JS/IntersectionObserver misbehaves.
+export function AboutScrollReveal() {
+ useEffect(() => {
+ const mq = window.matchMedia("(prefers-reduced-motion: reduce)");
+
+ const vh0 = window.innerHeight;
+ const all = Array.from(document.querySelectorAll(".tia-reveal"));
+
+ // If reduced motion: don't hide anything at all
+ if (!mq.matches) {
+ all.forEach((el) => {
+ if (el.getBoundingClientRect().top > vh0 * 0.9) {
+ el.classList.add("tia-pre");
+ }
+ });
+ }
+
+ let ticking = false;
+ function revealVisible() {
+ const vh = window.innerHeight;
+ document.querySelectorAll(".tia-reveal.tia-pre").forEach((el) => {
+ if (el.getBoundingClientRect().top < vh * 0.92) {
+ el.classList.remove("tia-pre");
+ }
+ });
+ }
+ function onTick() {
+ if (!ticking) {
+ ticking = true;
+ requestAnimationFrame(() => {
+ revealVisible();
+ ticking = false;
+ });
+ }
+ }
+
+ window.addEventListener("scroll", onTick, { passive: true });
+ window.addEventListener("resize", onTick);
+ window.addEventListener("load", revealVisible);
+ setTimeout(revealVisible, 300);
+
+ return () => {
+ window.removeEventListener("scroll", onTick);
+ window.removeEventListener("resize", onTick);
+ };
+ }, []);
+
+ return null;
+}