Web platform & operational systems
Foz da Cova — Cooperative coordination platform
One platform replaces fragmented coordination across multiple tools
A full-stack Next.js platform coordinating stay bookings, community events, and communal programs (food, sauna) for a regenerative cooperative in Portugal — with role-gated admin shaped around how the community actually operates.

Shipped stack
Integration boundaries from the case brief — what runs in production and how it connects.
- Next.js 15 · App Router
- TypeScript
- Tailwind CSS
- Prisma · PostgreSQL
- NextAuth (OAuth + roles)
- Stripe Checkout
- Resend (transactional email)
- Zod validation
Innerflect lens
What this engagement actually solved
- Mutations centralised in server actions with Zod validation — no ad-hoc API routes scattered across the codebase.
- Role-based access enforced at middleware level: public, member, and admin layers with clear boundaries.
- SSOT documentation set (schema, API reference, admin notes) supports handoff to contributors and AI-assisted development.
- Stripe and Resend integrations provide payment and email paths with repeatable DB seeding for safe local development.
The goal
A regenerative cooperative managing multiple houses, rotating guests, communal costs, and shared resources needed one place to coordinate — not a hotel PMS, not a spreadsheet, and not a generic SaaS product that would bend the cooperative's workflow to someone else's model.
What we shipped
A Next.js 15 application structured around how the cooperative actually operates: public booking and marketing, authenticated member routes for events and communal programs, and a role-gated admin area for bookings, rooms, and users. Mutations go through server actions with Zod validation. Prisma manages the schema. Stripe handles payments; Resend handles mail. SSOT documentation and AGENTS.md keep the codebase coherent for handoff.
Outcome
One coordinated system where previously multiple tools — spreadsheets, emails, and manual processes — were required. The platform is built for extension: the SSOT documentation set means any future contributor can maintain schema parity and feature consistency without tribal knowledge.
Named workflows
From discovery to payment signals — in plain steps
Same structure as the delivery workflow doc: each lane is a trigger, a handoff, and a clear owner for the surface or integration.
Discover → book
Public visitors browse stays, view cooperative story and community programs, and enter a Stripe-backed booking flow.
Member onboarding
NextAuth OAuth flow + role assignment → member dashboard, events, food and sauna registration.
Communal programs
Members opt into food participation and sauna reservations through dedicated authenticated routes.
Payment → confirmation
Stripe checkout → booking persisted via server action → Resend confirmation email to guest.
Admin operations
Role-gated /admin with bookings, events, rooms, and users — CRUD through a single API client with refresh handling.
Method
How this maps to our five phases
We use the same phase model on Method— diagnosis through optional ongoing management. Below is how this engagement shows up inside that frame.
01 / Diagnosis
The cooperative needed a single coordination surface — but had multiple conflicting concerns: hospitality logistics, communal resource management, and member governance. These were mapped before any code was written.
02 / Architecture
Server Components by default, mutations in server actions, Prisma as schema SSOT, and role-based middleware — all decided before building began to ensure long-term maintainability.
03 / Implementation
Innerflect shipped the full platform: public marketing, booking flow, member area, communal programs, Stripe and Resend integrations, and admin CRUD surfaces.
04 / Governance
SSOT documentation in docs/SSOT/ (schema, API reference, architecture), AGENTS.md for contributor rules, and server actions as a single audit trail for state changes.
05 / Ongoing management
Codebase designed for extension; handoff-ready documentation allows future contributors — human or AI-assisted — to maintain schema and feature parity.