HostCasa

Flight Plan — de producto construido a ingresos recurrentes

SaaS multi-tenant de operación digital para hospitalidad boutique del Pacífico mexicano. El producto ya existe; el lanzamiento depende de cerrar 4 bloqueadores P0, instalar el espinazo multi-tenant y abrir el grifo.

v2.0 · Audit-Corrected B2B Premium SaaS ICP 5–50 propiedades Suscripción + Concierge 60/40 Cloudflare + Supabase · cero Vercel 2026-06-23
Tesis

Visión

El sistema operativo digital del anfitrión boutique: reservar, cobrar (SPEI/IVA/CFDI), sincronizar calendarios, facturar y atender huéspedes con un Concierge AI de marca — sin comisiones por reserva.

ICP bloqueado

Operadores boutique de 5–50 propiedades. Un operador = una organización con varias propiedades y miembros → multi-tenancy por organización desde el día 0.

Modelo

Suscripción SaaS plana (gate de activación) + motor de upsell Concierge con split 60/40 (operador 60% / HostCasa 40%). Sin comisión por reserva.

Principio de arquitectura

Single-platform: Cloudflare + Supabase

Todo HostCasa vive en dos planos y nada más — sin sprawl operativo. Cero Vercel. Stripe/Resend son SaaS externos consumidos por Workers, no plataformas de hosting.

☁️ Cloudflare — cómputo / edge

Pages (Next.js)Workers / Functions (API)Webhooks StripeCron TriggersDNS · CDN · WAFR2 (opcional)

🗄️ Supabase — datos / auth

Postgres + RLS multi-tenantAuth (email+Apple)StorageRealtimeEdge Functions

Migración Vercel → Cloudflare Pages (track paralelo, ~2–3 sem, fuera de ruta crítica)

M1 OpenNext adapterM2 Worker-compat (constructEventAsync)M3 Mongo→hc_property_sitesM4 cron CFM5 retirar vercel.jsonM6 CI wranglerM7 DNS cutover

El cutover DNS aterriza junto con F4 ("abrir el grifo") para que el primer peso live ya corra en Cloudflare. RLS/datos/multi-tenant no cambian.

Estado real (corregido por auditoría)

Construido vs. bloqueado

Casi todos los módulos tienen implementación real sobre Supabase en producción — no son stubs. El build typechecka y lintea limpio, 13/13 tests verdes, sin secretos commiteados. Lo que falta es seguridad de la ruta de dinero y el cutover multi-tenant.

✅ Ya construido

Auth (Supabase)LobbyStudioVaultCloudWorkflowsBilling UIMarketingMarina / ConciergeFlujo de reservaDashboards host/guestLanding /welcomeSPEI+IVA+reconcil.

🔴 Bloqueadores P0 (ruta de dinero)

Precio manipulableGate Marina muertoDrift hc_bookingsColisión payment_intents

🟠 Bloquea el 2º tenant

Sin aislamiento orgRLS USING(true)RLS no reproducibleCI sin gate RLS/tsc
Secuencia de despegue

Fases con go / no-go

Ruta crítica de ingresos: F0 → F4. Mobile corre en paralelo y no bloquea el primer peso. crítica · dinero.

F0
Hotfix P0
Precio · Marina · drift · colisión
3–5 días
F1
Reproducibilidad
hc_current_role · CREATE · rebase org
1–2 sem
F2
Cutover RLS
org-scoping · 2 tenants
1 sem
F3
Billing
gate de activación
1–2 sem
F4
Abrir el grifo
1er peso live · Resend
1 sem
F5
Connect 60/40
concierge split
2–3 sem
F6
Mobile
paralelo
3–4 sem
F7
GA + MTY
expansión
Tracción objetivo

Métricas de éxito

<30min
Time-to-first-property
≥30%
Trial → activo
≥99.5%
Reservas E2E sin error
0incidentes
Fugas cross-tenant
≥35%
Take-rate concierge
≥100% NRR
Net revenue retention
<300ms p95
Latencia API
≥9/10
Email deliverability
Gestión de riesgo

Riesgos & mitigaciones

RiesgoSeveridadMitigación
Cobrar con precio manipulable (P0-1)Alta · CríticoCálculo server-side antes de live mode (bandera dura F0)
Reserva pagada no se crea (drift P0-3/4)Alta · CríticoMigración aditiva reconciliada + test integración del webhook
Fuga cross-tenant al 2º operador (P1)Media · CríticoCutover org-RLS (F2) + tenant_isolation.sql en CI antes de onboardear
RLS no reproducible (hc_current_role)Alta · AltoCommitear función + CREATE faltantes (F1)
Sin emails (no hay key Resend)Alta · AltoKey real → 1Password → env; DKIM/DMARC (F4)
CI deja pasar regresiones (sin tsc/RLS)Media · AltoJobs tsc + RLS real; gating en supabase/migrations
Pre-vuelo

Day-0 checklist

P0 precio server-side · Marina aprueba operator/admin · drift hc_bookings · 1 sola def payment_intents
RLS tenant_isolation verde 2 tenants · sin USING(true) en billing
Repro hc_current_role + CREATE faltantes commiteados · hc_addon_orders creada · rama org rebasada
DNS/Email hostcasa.app TLS · Resend dominio verificado (SPF/DKIM/DMARC) + key real
Stripe 3 planes × {mensual,anual} en hc_billing_plans · webhook billing separado e idempotente
Connect cuenta verificada del operador piloto · IVA 16% · SPEI reconciliado · payout correcto
Env Supabase/Stripe/Resend en 1Password · service_role solo backend · price IDs en DB
CI/Obs tsc + RLS real en CI · alertas de webhooks · backups · runbook + rollback
HostCasa Flight Plan v2.0 — Audit-Corrected · 2026-06-23 · ancla: prod Supabase vlmzocifueauzroeafxz + docs/HOSTCASA-AUDIT-2026-06-23.md. Reglas de marca bloqueadas. Bandera dura: no cobrar en live mode hasta cerrar P0-1/P0-3/P0-4; no onboardear 2º operador hasta el cutover RLS. Solo HostCasa.