WHOISRISHAV
Home/Work/Kavikara
Growvior ↗ Kavikara

One platform.
Four experiences.

One wedding. Every tradition honored.

Role
Architect & Lead Developer
Studio
Product
Cross-cultural
wedding platform
Scope
4 Next.js apps
1 Turborepo
Category
Multi-tenant SaaS
Site
01 The Film

The whole platform,
in eighty seconds.

1:21 runtime 1080p with sound All four portals
Watch the film · 81 seconds, sound on
The master cut, running the guest, couple, vendor and planner portals end to end.
02 Overview

A wedding platform for
two families at once.

Kavikara is a wedding platform built around a problem most wedding software ignores: the couple, their families, their vendors and their planner are often working from different cultural playbooks, and nobody wants to be the person who asks what happens at the Anand Karaj.

Rather than one app with four permission levels bolted on, it is four separate portals, each designed for a single audience and named for it: Kavi for the couple, Grove for vendors, Fern for planners and Dew for guests. They share one database, one design language and one AI layer, but a guest never sees a dashboard and a vendor never sees a seating chart.

I architected and built it through Growvior as a Turborepo monorepo: four Next.js applications and a set of shared packages, each app deploying to its own subdomain, all of them talking to a single Supabase project through one shared client.

03 The Shift

The week before
the wedding.

Every feature in the platform is aimed at the same week: the one where the group chat stops working.

The group-chat way

  • 148 people, 400 unread messages.
  • The same question, asked forty times.
  • A PDF invite, forwarded until nobody has the current one.
  • Nobody willing to admit they don't know the customs.

The Kavikara way

  • One link, always up to date.
  • Kavika answers, instantly.
  • Every ceremony explained to the people attending it.
  • Vendors briefed before they arrive.
04 The Four Portals

Four audiences,
four front doors.

Each portal is its own Next.js app on its own subdomain, with its own authentication model, its own navigation and its own emotional register. They only look like one product because they share a design system.

The couple's journey

Kavi

kavi.kavikara.com

The planning home for the two people getting married. It holds the guest list, the RSVP tracker and the seating planner, but the parts that matter most are cultural: a Love Story page, a Ceremonies builder, a Cultural Bridge for couples marrying across traditions, and a Website Studio that publishes their public wedding site.

dashboardlove-storyceremoniescultural-bridge website-studioguestsrsvpvendors plannersoutfit-lookbooktime-capsulekavika
Email and password, plus OAuth. Partners join by invite token.
Kavi couple portal navigation
The vendor's cultural bridge

Grove

grove.kavikara.com

Where photographers, florists and caterers run their side of the wedding. Enquiries arrive tagged with the traditions involved, so a vendor booking an Igbo Nkwu wine-carrying ceremony gets briefed on it before they reply. Kavika drafts responses, answers protocol questions and writes cultural briefings straight into the inbox.

dashboardinboxcalendarprofile public-profilereviewskavikavendor/[slug]
Email and password, with a public profile page per vendor.
Grove vendor enquiry inbox
The planner's command centre

Fern

fern.kavikara.com

Built for the person running several weddings at once. The portfolio view counts active weddings, total guests, outstanding RSVPs and overdue tasks across every client. Inside a wedding there are tabs for RSVP, protocol, checklist, vendors and notifications, and then a Day-Of mode: a live progress bar, a running checklist and vendor quick-dial, for the one day when nobody has time to navigate.

dashboardweddings/[id]teamsettings
Email and password, with team members under one planning firm.
Fern day-of command centre
The guest experience

Dew

dew.kavikara.com

The only portal with no account and no app. A guest gets one magic link and lands on a personalized hub: their RSVP, the events they are actually invited to, a cultural guide to each ceremony, what to wear, how to get there, the registry, and a time capsule. Kavika sits inside it, answering questions about this wedding only.

rsvpeventscultural-guideoutfit getting-hereregistrytime-capsulekavika
Magic link keyed to a UUID. No password, with a link-expired fallback.
Dew guest portal
05 Kavika

The layer that knows
what the ceremony means.

Kavika is the AI companion running through all four portals. It is the same idea each time, pointed at a different job: the thing that already knows the customs, so nobody has to admit they don't.

I built Kavika as a separate service, not as part of this monorepo. It runs on Claude as its language model, wrapped in its own retrieval and prompt layer for wedding traditions, and the four portals reach it over an API. Keeping it out of the repo means the cultural knowledge, the prompts and the guardrails version independently of the product, and each portal only ever sees the answer.

Kavika · your wedding companion
I know the difference between a Lazo and a Handfasting, a Stefanosi and a Sofreh Aghd.
Help me write our ceremony order for a Nikah and Baraat
Beautiful. Here's an order that honors both families…
Brief me on Igbo Nkwu
Step back at the wine-pour, let her find him in the crowd.
01

For couples

Drafts a ceremony order that works when two traditions have to share one afternoon, and powers the Cultural Bridge.

02

For guests

Answers questions about their own wedding only, scoped to the invite. What to wear to the sangeet, what happens at the mehndi.

03

For vendors

Cultural briefings, protocol answers and draft replies, so a vendor walks into a ceremony already knowing where to stand.

04

Scoped by design

Each portal calls the service with its own context, so what Kavika can answer is bounded by what that user is allowed to see. A guest's companion cannot reach another guest's data.

06 Architecture

Four portals,
one repo.

Four portals that share a database but not a codepath is exactly the situation a monorepo is for. Turborepo builds only what changed and replays cached output for everything else, so shipping one portal doesn't mean rebuilding the other three.

kavikara / turborepo
apps/
├── kavi    kavi.kavikara.com   Couples portal, email + OAuth
├── grove   grove.kavikara.com  Vendors portal
├── fern    fern.kavikara.com   Planners portal
└── dew     dew.kavikara.com    Guests portal, magic link

packages/
├── supabase           Shared client: publishable + admin
├── database           Schema and types
├── ui                 Shared component library
└── typescript-config  Shared TS base

One client, two keys

A single @kavikara/supabase package exposes the publishable client for browsers and server components, and an admin client behind the secret key for route handlers and server actions only.

Auth per audience

Couples get email, password and OAuth. Vendors and planners get email and password. Guests get a UUID magic link, because asking 148 people to make an account is how you lose 148 people.

Shared design system

A @kavikara/ui package keeps the four portals recognizably one product while letting each keep its own palette and typographic voice.

Staging and production

Two env files point the whole repo at two Supabase projects. One command builds every app against staging, another against production, with no per-app config drift.

Build only what changed

Turborepo caches per app, and a --filter builds a single portal. Shipping a fix to Dew never waits on the other three compiling.

Kavika stays outside

The AI companion is its own service on Claude, called over an API. The portals ship on their own cadence; the cultural knowledge and prompts version on theirs.

07 Screens

The product,
portal by portal.

Fern day-of command centre
Fern · day-of01
Kavi couple portal
Kavi · couple portal02
Grove vendor enquiry inbox
Grove · enquiry inbox03
Dew guest portal
Dew · guest portal04
Cultural bridge, two backgrounds one plan
Cultural bridge05
Kavika AI cultural companion
Kavika06
08 Tech Stack

What it
runs on.

Framework
Next.jsReactTypeScriptServer Components
Monorepo
Turboreponpm workspacesShared packages
Data & Auth
SupabasePostgreSQLOAuthMagic links
Interface
Tailwind CSSDesign system
Kavika (separate service)
ClaudeRetrieval layerPrompt designAPI

Got something
worth building?

I take on a small number of independent projects each year, from platforms like this one to focused product builds.