Skip to content

What is Orchid?

The business problem

Running a fertility agency means coordinating dozens of moving pieces simultaneously: recruiting and screening egg donors and gestational carriers, matching them with intended parents, managing legal contracts, tracking medical cycles, and communicating with clinics and attorneys — all while serving 40+ separate agencies that each have their own clients, staff, and data.

Before Orchid existed, agencies managed all of this in spreadsheets, generic CRMs, and email inboxes. Orchid replaced that chaos with a purpose-built system.

What Orchid does

Orchid is a multi-tenant CRM (Customer Relationship Management) platform built specifically for fertility agencies. It manages the full operational lifecycle of third-party reproduction — the process where intended parents (IPs) build their families with the help of egg donors (EDs), gestational carriers (GCs), and sperm donors (SDs).

At its core, Orchid does five things:

  1. Recruiting and intake — Prospective donors and carriers fill out detailed application forms. Orchid captures, stores, and evaluates their answers.
  2. Matching — Agency staff present qualified donor/carrier profiles to intended parents, who review and choose their preferred candidate.
  3. Case management — Once a match is made, Orchid tracks the entire journey: medical screenings, legal contracts, fertility treatments, and delivery.
  4. Communication — Email (Gmail and Outlook), in-app messaging, and SMS are all surfaced inside Orchid so agency staff never lose context.
  5. Provider coordination — Orchid shares case information with external providers (IVF clinics, attorneys, escrow agencies) through a dedicated provider portal.

Who uses it

RoleWhat they do in Orchid
Agency staff (Admins)Manage cases, review applications, coordinate matching, communicate with clients
Intended Parents (IPs)Review profiles, accept/decline matches, track their case status, submit forms
Egg Donors (EDs)Complete their profile, submit forms, view their case status
Gestational Carriers (GCs)Complete their profile, submit forms, view their case status
Sperm Donors (SDs)Complete their profile, submit forms
ProvidersView case information shared by the agency (clinics, attorneys, escrow)
Orchid’s own teamPlatform-level administration across all agencies

How it is built

Orchid is a Flask monolith — one Python web application that handles everything. It is not a microservices system. There is no separate API service, no mobile app backend, and no GraphQL layer. HTML pages and JSON APIs share the same codebase.

flaskapp.py ← Main web app (the one users hit)
cronapp.py ← Scheduled background jobs
orchid_jobs/ ← Async task queue (email sync, email matching)
orchid/ ← The main Python package
api/ ← JSON endpoints
views/ ← HTML page endpoints
models/ ← Database models (SQLAlchemy)
utils/ ← Shared utility code
templates/ ← Jinja2 HTML templates
static/ ← CSS, JS, images

Each of the 40+ agencies runs on its own isolated MySQL database and its own AWS Elastic Beanstalk instance. This is the defining architectural decision of the entire system — read more about it here.