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:
- Recruiting and intake — Prospective donors and carriers fill out detailed application forms. Orchid captures, stores, and evaluates their answers.
- Matching — Agency staff present qualified donor/carrier profiles to intended parents, who review and choose their preferred candidate.
- Case management — Once a match is made, Orchid tracks the entire journey: medical screenings, legal contracts, fertility treatments, and delivery.
- Communication — Email (Gmail and Outlook), in-app messaging, and SMS are all surfaced inside Orchid so agency staff never lose context.
- Provider coordination — Orchid shares case information with external providers (IVF clinics, attorneys, escrow agencies) through a dedicated provider portal.
Who uses it
| Role | What 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 |
| Providers | View case information shared by the agency (clinics, attorneys, escrow) |
| Orchid’s own team | Platform-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 jobsorchid_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 codetemplates/ ← Jinja2 HTML templatesstatic/ ← CSS, JS, imagesEach 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.