Villa Network
Webhooks wired straight into property-management systems (PMS) seed new users automatically at check-in. Every arriving guest is a fresh top-of-loop entry.
20 + 9·ddaily seeds (d = day)The go-to-market playbook for Michele Mauri's Bali Concierge - a four-engine system engineered to manufacture word-of-mouth and turn every guest into a new seed.
10,000
signups in 30 days
The north-star number for the launch sprint.
1,000
Phase 1 milestone
Proof-of-loop checkpoint, cleared inside the first week.
K ≥ 0.45
viral coefficient floor
Every cohort must spawn at least 0.45 of the next.
The Virality Formula
Multiplier = 1 / (1 - K)
Engine 2 closes the loop, so every seeded user invites a companion who invites the next. As long as the viral coefficient K stays at or above 0.45, the seeded base compounds into a runaway multiplier.
Drag K · watch the loop compound
Live multiplier and the resulting 30-day total.
K-factor
0.45
Multiplier
1.82×
Sensitivity warning
If K drops below 0.40 OR the Paid Dial falls under 120/day, the 10k target is missed.
The model has almost no slack at the edges. Both levers - loop quality (K) and the paid floor (E4) - have to hold simultaneously. Guard them like the launch depends on it, because it does.
Four independent acquisition engines feed one shared loop. Each does a different job, and each is individually measurable.
Webhooks wired straight into property-management systems (PMS) seed new users automatically at check-in. Every arriving guest is a fresh top-of-loop entry.
20 + 9·ddaily seeds (d = day)Automated deep-links provision a companion the moment a guest lands, initializing the referral loop immediately instead of waiting for a manual share.
× 1/(1-K)loop amplifierOrganic shares and curated local-guide attribution. Tastemakers and insiders broadcast hand-picked itineraries, each share credited back to its cohort.
15 + 3·ddaily organic seedsA controlled paid-acquisition engine that switches on once the loop is proven. It is the floor under the curve, not the curve itself.
120 / dayfrom Day 3 onwardSix steps, one cycle. Every converted user is engineered to re-enter at the top as a new seed.
PMS webhooks and the paid dial drop new users at the top of the loop.
First-session value lands fast, so the user has something worth sharing.
Deep-linked companions and insider shares push the invite outward.
Each click hits the dynamic redirect route, logged to Supabase with its cohort ref intact.
Phone numbers are hashed securely on conversion and attributed back to the originating cohort.
The converted user becomes a fresh seed - and the cycle restarts.
New seed loops back to Step 1
Cumulative signups across 30 days, driven by all four engines and amplified by the loop.
9,999
projected Day 30
Day 7
Phase 1 (1,000) cleared
1.82×
active loop multiplier
The attribution layer is real code, not a diagram. Every click is logged and every cohort ref survives the redirect.
app/r/[slug]/route.tsfully implementedimport { NextRequest, NextResponse } from "next/server";
import { createClient } from "@/lib/supabase/server";
// GET /r/:slug — log the click, preserve cohort ref, redirect.
export async function GET(
req: NextRequest,
{ params }: { params: Promise<{ slug: string }> },
) {
const { slug } = await params;
const ref = req.nextUrl.searchParams.get("ref");
const supabase = createClient();
// fire-and-forget: never block the redirect on logging
await supabase.from("clicks").insert({
slug,
ref, // cohort attribution survives
ua: req.headers.get("user-agent"),
ts: new Date().toISOString(),
});
const dest = new URL("/welcome", req.url);
if (ref) dest.searchParams.set("ref", ref);
return NextResponse.redirect(dest, { status: 307 });
}The dynamic redirect at /app/r/[slug]/route.ts logs every click to Supabase while preserving the cohort ref, so conversions from /api/first-text attribute cleanly back to the engine that sourced them.
The bet
Hold K at 0.45, keep the Paid Dial at 120, and the math carries Bali Concierge from a single check-in to a city-wide habit in thirty days.
Bali Concierge · Growth Strategy & GTM · Michele Mauri