H1Molino Critical Viability Snapshot
Date: 2026-05-02 | Code-Verified Status + New Viability Paths
H2Tech Stack (Verified)
Next.js 16.1.6, React 19.2.3, Prisma 7.7.0, Better-SQLite3, Vercel-ready
H2Code Structure
Routes: /trips, /experiences, /magazine, /milestones, /products, /pricing, /assets, /studio, /documents, /sponsor
Prisma Models (partial): User, Trip, Experience, Product, BookingBundle, BookingItem, Document, Project, Order, Offer, LineItem
Key Dependencies: @prisma/client, openai, @react-pdf/renderer, lucide-react, tailwindcss 4, next-auth, qrcode
H2Verified Implemented Features
- Public trip/experience browsing (
app/trips/page.tsx,app/experiences/page.tsx) - FareHarbor Lightframe modal integration (
hook-useFareHarborBookButton.tsx) - Magazine with static/flipbook layouts (
app/magazine/components/) - Milestone tracking UI (
app/(milestones)/milestones/) - Product pricing engine (
app/products/actions/product-engine/) - Asset generation (poster, skill cards)
- AI assistant integration (OpenAI dep present)
- Trip→Offer→Order flow:
createOfferFromTrip(),checkoutOffer()(manual payment) - Etsy PDF generation:
generate-etsy-pdf.ts,/api/trips/[tripId]/export/etsy-pdf - DB seeding: Studio journeys seeded via
npm run seed:studio-journeys
H2Partial/In-Progress (Code Exists)
- Commercial pipeline: Trip→Offer→Order ✅ DONE (actions in
app/trips/actions/,app/orders/actions/) - Booking execution: BookingBundle/BookingItem models defined in schema, migration not deployed
- Payment processing: Manual payment ✅ ACTIVE (bank transfer/PayPal/cash, no Stripe needed)
- Document projection: Exists in
app/documents/, relation to commercial pipeline incomplete - Etsy PDF extraction: ✅ READY (
generate-etsy-pdf.ts, 3 product types)
H2External Resources (Code-Verified)
| Resource | Status | Usage | Code Ref |
|---|---|---|---|
| FareHarbor | ✅ Integrated | Booking buttons/modals | app/lib/fareharbor/config.ts |
| OpenAI | ✅ Integrated | Trip planner assistant | app/assistant/lib/openai.ts |
| Google Apps Script | ⏳ Planned | Sheet sync, exports | dev-docs/_PRD/platform/ |
| Etsy | 🚀 Manual soon | PDF outlet store | Not in code yet |
| Stripe | ❌ Blocked | Use manual payment first | Legacy only (bookings.ts) |
| Shopify | ⚪ Future | Global storefront | Not started |
| Vercel | ✅ Active | Deployment | npm run ship |
H3External Resource Details
FareHarbor:
- Account:
alandalus-experience - Flow IDs: Main
1361158, Group Trip1362489, City tours1610878,1610879,1610876,1610877 - Lightframe API:
https://fareharbor.com/embeds/api/v1/?autolightframe=yes - Status: ✅ Integrated, next: calendar validation (Phase 7)
OpenAI:
- Model:
gpt-4.1 - Usage: Trip planner assistant, structured prompts
- Status: ✅ Integrated, next: Maestro de Ritmos persona (Silk Route)
Google Apps Script:
- Production API:
https://script.google.com/macros/s/AKfycbwVZ_iZYachR-Yy5O2dKvD7eExkPZR1Bpg-_YE7ceIjkK8zV5a-i4VFaj4fpdwq4vvDZg/exec - Staging API:
https://script.google.com/macros/s/AKfycbxfUsPGiRHwM5n3gnnWYEdVZ2xw4OIcnaqmWPmpiqjqzpzv0IXFFfjQctr9cOJFkCKm/exec - Usage: Sheet sync, document generation, email campaigns
- Status: ⏳ Planned (Phase 6 - Apps Script exports)
Etsy:
- Status: 🚀 Not yet integrated (manual listing first, no API yet)
- Future: API integration after 30-50 products, consistent sales
- Strategy: PDF → app upgrade path (
/trips/new,/products/<slug>)
H2New Viability Paths (Added 2026-05-02)
H3Etsy/Asset Extraction Path (Parallel, Low Effort)
- Extract 3-5 PDFs from existing trips/docs (code exists:
/trips/[tripId]/export/pdf) - Manual Etsy listings (no API integration needed, zero friction)
- Link PDF → app upgrade path (existing routes
/trips/new,/products/<slug>) - Target: First €20 sale within 7-14 days
- Constraint: Pause Etsy if it slows core pipeline
- External needed: Etsy seller account (create manually)
- Time allocation: 20% of weekly dev time (70% core pipeline, 10% content)
First 3 products (high probability of sale):
- Granada 3-Day Itinerary
- Andalusia Route Planner (multi-city)
- Travel Pricing Template (simplified system version)
H3Core Revenue Path (Primary)
- Complete Trip→Offer→Order (partial code exists in
app/trips/actions/) - Deploy Prisma migration (BookingBundle/BookingItem models ready in schema)
- Manual payment first (no Stripe dep needed, skip payment processing setup)
- Target: First €500+ sale within 14-30 days
- External needed: None (use bank transfer/PayPal/cash)
- Execution order:
- Run
npx prisma migrate deploy(deploy BookingBundle models) - Complete
checkoutOffer()action inapp/trips/actions/ - Wire "Confirm Booking" UI to
confirmBookingItem()action - Test full flow: Trip → Quote → Offer → Order (manual payment)
- Run
H2Dual Cash Flow Strategy
| Path | Speed | Value | Effort | External Resources |
|---|---|---|---|---|
| Etsy extraction | Fast (days) | €20 | Near-zero | Etsy account |
| Trip→Offer→Order | Slower | €500+ | In progress | None (manual payment) |
| Stripe (later) | Medium | Both | New dep | Stripe account |
H2Current Operational Reality (2026-05-02)
- Project is in active full-time build phase
- Ongoing financial contribution partially covers living/working capacity
- System is close to commercial activation (core pipeline nearly complete)
- Existing work already produces structured outputs (documents, pricing, flows) that can be reused
H2Strategic Shift (Integrated Model)
One unified engine, not separate ideas
Core Engine (final form):
Walk & Talk → PDF Product (entry) → Molino System (core)
→ Module/Upgrade → Service/License → Repeat
Every piece of work produces two outputs:
- A. Core Commercial Flow (primary): Trip/System → Offer → Order → Payment → Service
- B. Product Flow (secondary, extracted): Document (Folio) → Structured asset → PDF → Etsy (entry) → Link to Molino → Upgrade
H2Key Insight
- The system already produces value in multiple forms
- The constraint is NOT opportunity - it is focused execution under stable conditions to reach revenue
- PDF-to-system ladder strengthens model by: enabling early validation, creating entry points, building repeatable revenue structure
H2Missing for Viability Activation
- ✅ Offer→Order flow complete (manual payment)
- 🚀 Browser test full flow with real trip data
- 🚀 Generate and list first Etsy PDF (target: 7-14 days)
- 🚀 Get first client conversation started (target: 14-30 days)
- 🚀 Close first transaction (target: 30-60 days)
H2Decision Point (60-90 days)
Can current conditions sustain 60-90 days to reach revenue?
- YES → Continue with integrated model
- NO → Reduce scope, maintain continuity, extend timeline
- Verify FareHarbor booking flow in browser
- Connect pricing engine to Order commit
- Create Etsy seller account for parallel path
H2Viability Assessment
| Component | Code Status | Viability Gap |
|---|---|---|
| Content browsing | Built/Locked | None |
| Booking flow | Partial | Payment dep + migration |
| Commercial pipeline | Partial | Complete Offer→Order |
| Revenue generation | Not started | Payment processing |
H2Revised Viability Assessment (With Dual Path)
- Before: Single path dependency (high pressure, all-or-nothing)
- Now: Dual path (reduces pressure, same work output monetized twice)
- Constraint: Etsy must stay subordinate to core pipeline
- Execution: 70% core pipeline, 20% Etsy extraction, 10% content (per reality check)
- External resources: All identified, most already integrated or blocked intentionally
H2Summary
Functional content platform with partial commercial infrastructure. Viability achievable by:
- Completing in-progress server actions (Trip→Offer→Order)
- Deploying pending schema changes (BookingBundle migration)
- Using manual payment for first sales (skip Stripe setup)
- Extracting 3-5 PDFs for parallel Etsy path (same work, dual monetization)
H2🔮 Future Scope (Post-Revenue, Not Blocking Ship)
H3External Channel Tracking & Sync
For later development (NOT current priority):
| Channel | Tracking Method | Purpose | Timeline |
|---|---|---|---|
| FareHarbor | Manual entry or API webhook | Reconcile FH bookings with Molino Orders | 60-90 days |
| Etsy | Manual or API (after 30-50 sales) | Track Etsy orders, link to PDF products | 90-120 days |
| Shopify | API integration | Replace manual Etsy, centralize storefront | 120+ days |
Current Critical Path (DO NOT ADD THESE TO SHIP LIST):
- ✅ Activate Trip→Offer→Order (manual payment)
- ✅ Generate 3 Etsy PDFs
- ✅ Close first transaction (€20+ from Etsy or €500+ from trip)
- 🛑 STOP → Test all workflows manually for 1-2 months
Principle: External channel tracking is NOT part of current urgent shipping features. These are operational nice-to-haves after revenue proves the system works.
Next build cycle (post-revenue):
- Add
externalReffield to Order model - Build FH webhook endpoint
- Build Etsy API integration (if justified by sales volume)
- Migrate from Etsy manual → Shopify (if volume warrants)