05 — Side project · Tasteando

Tasteando

A tasting experience, from discovery to booking

Role
Creator — product and full-stack development
Organisation
Tasteando
Period
Nov 2025 — now
Status
Active
  • React
  • FastAPI
  • Supabase
  • Stripe
  • Resend
  • Pydantic AI

01The problem

Booking a tasting touches several moving parts: a catalogue, real availability, payment, confirmation emails and the operational tools behind them.

Instagram is also where people discover the experience, and stories that mention it deserve an answer without someone watching all day.

02The solution

The React, TypeScript and Vite frontend is hosted on Netlify. It calls a central FastAPI backend on Render, where business rules and availability checks live. Supabase provides PostgreSQL; Stripe handles checkout and payment webhooks, and Resend sends transactional emails.

Slower automation runs outside the booking path, in its own worker and deployment.

One product, two independent workflows

Bookings & availability

Step 01 / 03 React + Vite Customer-facing web, hosted on Netlify

Payments & confirmations

Step 01 / 02 FastAPI Creates checkout; receives payment webhooks

Instagram automation

Step 01 / 04 Instagram webhook FastAPI verifies and stores the event

The worker has its own deployment on Render, a heartbeat and usage limits. Its processing stays outside the booking request path.

Key decisions

  1. 01

    Keep business rules in the API.

    The frontend presents the journey; the backend validates operations and coordinates payments and data access.

  2. 02

    Move slow work off the request path.

    A durable inbox and a separate worker let Instagram automation progress without holding up booking requests.

  3. 03

    Check the whole journey.

    Python tests, frontend tests and Playwright end-to-end checks, alongside distinct development and production environments.

03Where AI fits

AI-poweredAI-assisted

Instagram events enter through a verified webhook into a PostgreSQL inbox. A separate worker uses Pydantic AI for the model-assisted reading of stories; ordinary code makes the decisions and takes the actions.

The model has a bounded job: clear cases can receive a DM, uncertain ones are referred to a person. The worker has retries, a heartbeat and usage limits, and can be paused without touching bookings.

The product itself is also built with AI assistance: Claude Code is part of the day-to-day development workflow.

04Results

Live bookings and payments at tasteando.com, plus an AI worker in production
In production Instagram worker running automatically
  • A clear boundary between the customer interface, business operations and external services.
  • Conversion and revenue impact will get their own measurement before appearing here.