Mary's Farm
A flexible reservation and experience-booking platform for a farm business — venues, overnight stays, appointments, payments, and admin workflows.
- React
- Next.js
- TypeScript
- Supabase
- PostgreSQL
- Stripe
- Tailwind CSS
Mary’s Farm is a custom reservation and experience-booking platform built for a farm business with several types of bookable experiences. The goal was to move beyond a simple checkout flow and build a flexible system that supports real operational complexity: venues, rooms, appointments, guest information, payments, admin workflows, availability rules, and check-in flows.
The problem
Mary’s Farm needed a system that could support several different booking models inside one product. A standard ecommerce checkout was not enough because the business sells experiences, not just products. Each reservation depends on time, capacity, resource availability, attendee details, forms, waivers, payment state, and operational rules.
What I worked on
I contributed as a developer focused on building and improving the booking platform across both customer-facing and admin-facing areas:
- Building and refining booking flows for different reservation types
- Implementing admin tools for managing venues, rooms, bookings, and users
- Connecting the payment flow with Stripe
- Working with Supabase and PostgreSQL for data modeling and backend logic
- Improving authentication and user management flows
- Building reusable UI patterns for complex forms, calendars, and dashboards
- Supporting availability logic so resources cannot be double-booked
Key features built
End-to-end reservation flow
Customers browse experiences, choose a date and time, enter details, complete payment, and manage bookings afterward. Admins can also create bookings outside the normal checkout flow.
Venues & rooms management
Admins create, edit, enable, and disable venues and rooms. These resources plug into the booking flow, availability checks, and customer-facing experience pages.
Appointment booking
Session duration, capacity per appointment, ticket variants, required and bundle-style variants, hidden admin-only variants, sales launch timing, cutoff windows, add-ons, schedule by date range, buffer times, blocked dates.
Stripe integration
Connects booking state, checkout state, pricing totals, taxes, fees, and customer information — smooth on the frontend, reliable on the backend for confirmations and updates.
Admin dashboard
A scalable admin layout for checking bookings, managing resources, configuring experiences, and reviewing customer information.
Auth & user management
Improved login flows, profile pages, and admin-facing user management with role-based workflows.
Technical direction
- Flexible reservation modeling — structured around reservation types and resources to support different rules for venues, rooms, appointments, and future booking categories.
- Customer / admin flow separation — customer flows focus on simplicity, admin flows focus on control.
- Server-side validation — backend checks prevent conflicts and protect booking integrity. Availability is too important to leave only to the frontend.
- Modular feature growth — clean extension points for memberships, waivers, reminders, QR check-in, and access workflows.
A booking platform is not just a calendar plus a payment button. It is a coordination system — time, inventory, people, payment, communication, access, exceptions, and admin operations.
Where it landed
A strong foundation for a custom farm reservation platform, with completed work across authentication, user management, admin layouts, venues, rooms, booking management, customer booking flows, and Stripe payments — and a clear path toward appointments, memberships, waivers, QR check-in, access workflows, and more reservation types.