Phase 1 — Foundation
Cycle 1 · May 12–15, 2026
4 tasks
Reactive Layout System — Mobile, iPad & Desktop
Built the structural foundation the entire app runs on. The same screens now adapt intelligently to the device: phone matches Carlee's Lovable designs exactly, desktop shifts to a multi-column sidebar layout. Every surface — Home, Search, Pathway, Groups, Calendar — responds automatically.
What was delivered
- Mobile (390px): 5-tab bottom nav, single-column cards — identical to Lovable prototype
- iPad (820px): two-column cards where it aids scanning
- Desktop (1280px+): sidebar nav, multi-column, no stretched-mobile look
- MatchED visual identity preserved: beige, navy, terracotta, soft photography
Talking point: "This was the skeleton of the whole app. Until this landed, every screen was just a mobile prototype. Now every surface automatically adapts to whatever device your users are on."
📱 Member home — mobile

📱 Vendor home — mobile

🖥 Member home — desktop
localhost:5173/

🖥 Vendor home — desktop
localhost:5173/

Sign In & Create Account Screens
The first thing a new mom sees. Both screens built to match Carlee's Lovable designs on mobile, with deliberate desktop adaptations. Copy is warm throughout — "Sign in to your MatchED account," errors like "That password doesn't match what we have for you."
What was delivered
- Sign In: email + password, "Forgot password?", full-width terracotta CTA
- Create Account: email, password, optional phone, zip, terms link
- All interaction states: focus, validation error, loading spinner, network error
- Warm beige background, rounded corners, generous padding — on-brand
Talking point: "This is the first impression. Every word was chosen carefully — nothing clinical. It should feel like walking into a welcoming community, not filling out a form."
📱 Sign In

📱 Create Account

🖥 Sign In
localhost:5173/auth

🖥 Create Account
localhost:5173/auth

Home Screen Polish — Filter Button & Chat Bubble Removed
Two targeted clean-ups that make Home feel calmer. The Filter button was removed — the recommender handles curation on Home. The floating chat bubble was removed — it wasn't Carlee's intent and made the screen feel Facebook-like. Chat belongs in Groups.
What was delivered
- Filter button removed — cards reflow naturally, no layout shift
- Floating chat bubble removed — cleaner, less social-media-y
- Verified across mobile, iPad, and desktop breakpoints
- No regressions on Match-of-the-Week scroll or Encouragement card
Talking point: "Small change, big difference. Home should feel curated, not like a marketplace. Removing those two elements brings it much closer to what Carlee intended."
🚫Filter button removed — previously sat above the resource cards; the recommender handles curation automatically now
🚫Floating chat bubble removed — was overlapping cards in the bottom-right corner; chat lives in Groups instead
📱 Mobile — full feed, no filter, no bubble

🖥 Desktop — full feed, no filter, no bubble
localhost:5173/

4-Step Onboarding Wizard
A 60-second onboarding after sign-up that collects everything MatchED needs to personalize the app — without ever feeling like a form. Five steps, each a single decision. "Skip for now" on Children means no parent hits a wall.
What was delivered
- Step 0 — Welcome: Member vs. Vendor card-buttons
- Step 1 — Role: Parent / Both / Leader chip selector
- Step 2 — Profile: name, email, zip, optional avatar upload
- Step 3 — Family: schooling type chips (Homeschool, Co-op, Hybrid, Microschool…)
- Step 4 — Children: per-child card with name + grade, "Skip for now" link
Talking point: "This is where MatchED gets to know each family. The personalization — recommendations, trust signals, the Friends filter — all starts here. We designed it to feel like a conversation, not a sign-up form."
📱 Welcome step

📱 Role step

📱 Family step

🖥 Welcome step
localhost:5173/account-setup

Phase 2 — Vendor Experience
Cycle 2 · May 15–29, 2026
7 tasks
Vendor Signup Flow
The complete end-to-end flow for a curriculum publisher, tutor, or micro-school to join MatchED. From selecting Vendor role through the application form through Company Profile setup post-approval. The Company Profile step was the missing piece — designed and built from scratch.
What was delivered
- Screen 1 — Role selection: Member vs. Vendor toggle
- Screen 2 — Application: Business Name, Email, Phone, Website, Services, Affiliate Agreement
- Screen 2.5 — Submitted modal: "Fill Out Your Vendor Profile" with Let's Go CTA
- Screen 3 — Company Profile (new): logo, tagline, bio, category, location, social links, ESA toggle
Talking point: "Every vendor starts here. We wanted it to feel professional and curated — like applying to something special. The founder approval is real; the UI reflects that honestly."
📱 Role Selection

📱 Company Profile

🖥 Role Selection
localhost:5173/account-setup

🖥 Company Profile
localhost:5173/profile?tab=company

Vendor Dashboard — Sales, Bookings & Calendar
Before building, a structured review with Andrew confirmed exactly what's in scope vs. placeholder. The result: a full dashboard with Sales, Bookings, Calendar, and Availability tabs — each with real mock data that shows what the experience looks and feels like when a vendor has activity.
What was delivered
- Sales tab: transaction list, playlist revenue breakdown, monthly totals
- Bookings tab: upcoming sessions with client, time, price, status, Approve/Decline
- Calendar tab: month view with booked dates highlighted
- Premium Analytics placement — deferred to post-MVP per Andrew review
Talking point: "Rather than building and tearing back features, we confirmed with Andrew what was real vs. placeholder first. That saved a week of rework downstream."
📱 Sales tab

📱 Bookings tab

📱 Calendar tab

🖥 Sales tab
localhost:5173/profile?tab=transactions

Search Results + Recommender Surface
MatchED's core value proposition lives here. Results are ranked by what a parent's trusted network already uses. The Everyone / Friends / Groups filter chips make that trust layer one tap away — calm and intuitive, not crowded like Amazon.
What was delivered
- Everyone / Friends / Groups trust-layer filter chips at top of results
- Resource cards: title, vendor, rating, price, ESA-eligibility badge
- Playlists section alongside Resources — both recommender-ranked
- Tapping "Reviews" auto-scrolls to reviews section
- No "Welcome back" header — personalized greeting belongs on Home only
Talking point: "This is the screen that makes MatchED different. The trust layer — seeing what people in your network already use — is one tap away. No other platform does this."
📱 Everyone results

📱 Friends filter active

🖥 Everyone results
localhost:5173/search

🖥 Friends filter active
localhost:5173/search

Payment Success & Failed States (Stripe Checkout)
Two return-state screens after Stripe checkout — reassuring on success, helpful on failure. Completely undesigned before this task. These unblocked Daniel's Stripe wiring on the critical launch path.
What was delivered
- Success screen: green check, "Payment Successful," subscription activated message, Return CTA
- Failed screen: clear "Payment didn't go through," Stripe error reason, cart-preserved confirmation, Retry CTA
- Cart cleared on success, preserved on failure
- Consistent with Carlee's brand, responsive across all breakpoints
Talking point: "The moment after payment is when users are most invested. Getting this wrong destroys trust. We made success feel like a celebration and failure feel like a helpful next step."
📱 Payment success — mobile

📱 Member bookings — post-payment

🖥 Payment success — desktop
localhost:5173/payment-success

🖥 Member bookings — desktop
localhost:5173/profile

Vendor Library — Catalog Management View
Vendors with growing catalogs need one place to find, manage, and update their content. This is the vendor's own back-office catalog view — visually distinct from the member Library, with affordances to edit, archive, or preview any resource as a member would see it.
What was delivered
- Card/list view: title, thumbnail, price, status (published/archived), views, rating
- Per-resource: View Detail, Edit (opens Resource Builder), Archive, View as Member
- Filter by Published / Archived; Sort by: recently created / sales / rating
- First-day empty state: "Create your first resource" CTA
Talking point: "As vendors publish more resources, managing them becomes a real problem. This gives every vendor a fast way to find, update, and preview everything they've published."
📱 Vendor Library — mobile

📱 Vendor Company Profile — mobile

🖥 Vendor Library — desktop
localhost:5173/profile?tab=library

🖥 Vendor Company Profile — desktop
localhost:5173/profile?tab=company

Resource Builder — Vendor-Side Form Fields
The form a vendor fills when publishing a new resource. The two highest-leverage fields — "Searchable By" and the "Purchase vs. Register" toggle — both received clear UI treatment so vendors never have to guess what they're choosing.
What was delivered
- Basic fields: Title, Type, Description, Cover Image, Pricing, ESA eligibility by state, Tags
- Searchable By toggle: My Group / All MatchED — with inline explainer
- External Purchase Link field — bypasses cart, routes externally
- Action toggle: Purchase (cart) vs. Register (booking flow) — with tooltip + save confirmation
- Public Funding Eligible toggle — shows ESA badge in Search when on
Talking point: "The Resource Builder is where the MatchED catalog grows. We need vendors to get it right on first save — a bad listing hurts the whole marketplace. Every field on this form earns its place."
📱 Build tab — choose type

📱 Resource form — all fields

🖥 Build tab — desktop
localhost:5173/profile?tab=build

🖥 Resource form — desktop
localhost:5173/profile?tab=build

Vendor Home / Launchpad — Metric Tiles
What a vendor sees the moment they open MatchED. Not a blank dashboard — a personalized at-a-glance view of how their business is performing. A vendor who immediately sees "500+ Families Trusted" and "$2.4k this month" knows MatchED is worth their attention.
What was delivered
- Personalized greeting with vendor name
- Metric tiles: Latest 5-star review, Families Trusted, Sales This Month, Bookings This Week, Milestone
- Quick Actions: Create Resource, Confirmations (only when pending exist)
- Encouraging first-day empty state — not blank, not intimidating
Talking point: "We designed this to answer one question in under 5 seconds: 'Is MatchED working for my business?' Vendors who can answer yes come back. Vendors who have to dig through tabs to find it don't."
📱 Vendor Launchpad — metric tiles

📱 Vendor Sales Dashboard

🖥 Vendor Launchpad — desktop
localhost:5173/

🖥 Vendor Sales Dashboard — desktop
localhost:5173/profile?tab=transactions

Phase 3 — Member Experience
Cycle 3 · May 27 – June 2, 2026
4 tasks
Per-Resource Visibility Selector
The privacy control that makes MatchED's trust layer real. Without this, the Friends / Groups filter in Search has nothing to filter on. An inline three-option selector appears at the moment of saving — sensible default (Groups + Friends), shown on every resource card so parents always know their setting.
What was delivered
- Inline selector at save/create moment: Private / Groups + Friends / All MatchED
- Default: Groups + Friends (the trust-layer sweet spot)
- Visibility icon shown on every resource card — tap to change inline
- Public→private shows a confirmation step
- Backend Search index respects per-resource visibility
Talking point: "This is the mechanism that makes the trust layer work. The Friends / Groups filter in Search is only meaningful if parents have set visibility on what they've saved. This gives them that control — simply, inline."
📱 Save to Library sheet

📱 Search — resource cards

🖥 Save to Library sheet
localhost:5173/search

🖥 Search — resource cards
localhost:5173/search

Public Profile / Portfolio View
When a parent taps another member's name anywhere in the app, she sees enough to decide whether to trust or connect — not a social media page, a homeschool community snapshot. Privacy is respected strictly: only info the parent has opted to share is ever shown.
What was delivered
- Header: photo, name, city (not full address), member-since date
- Family info (opt-in only): schooling type, number of children, grade ranges
- Shared signals: shared groups (clickable), mutual friends count
- Public playlists: only those set to All MatchED visibility
- Send Friend Request CTA with pending/accepted status
Talking point: "The trust layer only works if people are knowable to each other. This gives every parent a clean, privacy-respecting way to introduce herself — on her own terms."
📱 Public profile view

📱 Own profile

🖥 Public profile view
localhost:5173/user/mock-other-user

🖥 Own profile
localhost:5173/profile

Friends Discover Tab
MatchED's network effect depends on parents having friends. Without a way to find people, new parents are stuck — they can't use the Friends filter in Search because they have no friends yet. Discover surfaces ranked suggestions based on signals the parent already trusts: shared groups, mutual friends, similar family.
What was delivered
- Discover tab added inside Friends (alongside My Friends, Pending, Add by name)
- Suggestion cards: photo, name, city, shared signal ("in your Wild Hearts Co-op")
- Ranking: same group, mutual friends, schooling type, grade levels
- Send Request per card; Pass/Skip so dismissed suggestions don't reappear
- Empty state: join a group or invite by email CTA
Talking point: "Discover closes the cold-start problem. A new parent who joins a group immediately gets suggestions from people in that group. The network starts working from day one."
📱 My Friends tab

📱 Discover tab

🖥 My Friends tab
localhost:5173/friends

🖥 Discover tab
localhost:5173/friends

Member-Facing Booking Detail Surface
The last piece in the booking loop. Vendors can now host sessions and classes — parents who book need somewhere to go to see what they signed up for, when, and how to prepare. My Bookings list plus a per-booking detail page that answers every question before the session starts.
What was delivered
- My Bookings list: Upcoming (nearest first) + Past bookings (collapsed)
- Per-booking detail: vendor, session, date/time, capacity, price paid, location/link, prep notes
- Add to Calendar CTA (iCal / Google Calendar)
- Cancel Booking CTA (subject to vendor policy)
- No-bookings empty state with Search CTA
Talking point: "The booking experience was complete on the vendor side but invisible to members. A parent who booked a tutoring session had nowhere to go to find when it was. This closes that loop entirely."
📱 Vendor: Bookings tab

📱 Vendor: Calendar tab

🖥 Vendor: Bookings tab
localhost:5173/profile?tab=transactions&dashTab=bookings

🖥 Vendor: Calendar tab
localhost:5173/profile?tab=transactions&dashTab=calendar

Phase 4 — Latest Sprint
Cycle 4 · June 3–4, 2026
2 tasks
Vendor Public Profile — Member-Facing Credibility Surface
When a member taps a vendor's name in Search, on a resource detail, or in a review, they now land on a clean profile that tells them who this vendor is and whether to trust them. Not a marketing page — a credibility surface that answers "is this the right vendor for my family?"
What was delivered
- Vendor name, avatar, location, and school type displayed at a glance
- Published resources listed — tap any to go directly to the resource
- Reviews and trust signals visible without scrolling
- Connect and Message CTAs — members can reach out from the profile
- Responsive across mobile, iPad, and desktop
Talking point: "Before this, a parent would find a resource from Apologia in Search and have no way to learn anything about the vendor. Now they can tap the name and immediately see who they are, what else they've published, and what other families think. That context is the difference between a browse and a purchase."
📱 Vendor profile — mobile

📱 Member's own profile — mobile

🖥 Vendor profile — desktop
localhost:5173/user/mock-vendor

🖥 Member's own profile — desktop
localhost:5173/profile

Vendor Playlist Builder + Verified Badge
Vendors can now package multiple resources into a curated, sequenced playlist — think "Apologia 6th Grade Bundle." Members adopt it with one tap. Playlists appear in Search and Library with a Verified badge so members know it's vendor-curated, not random.
What was delivered
- Build tab now shows two entry points: Create New Resource and Create New Playlist
- Playlist form: name, description, optional pricing, and resource picker
- Add from vendor's own catalog or search all of MatchED — tab-switch picker
- Drag / up-down reorder + remove affordance per added resource
- Publish CTA — playlist appears in Search and vendor's Library immediately
- Verified badge on all member-facing surfaces (Search, Library, playlist detail)
Talking point: "Vendors have always had individual resources, but now they can package their best thinking into a full curriculum journey. A vendor's opinionated bundle — with a Verified badge — is a huge trust signal for a homeschool parent who doesn't know where to start."
📱 Build tab — choose what to create

📱 Playlist form — name, resources, price

🖥 Build tab — desktop
localhost:5173/profile?tab=build

🖥 Playlist form — desktop
localhost:5173/profile?tab=build

Full Delivery Summary
| # | Task | Phase | Completed | Type |
|---|---|---|---|---|
| 1 | Reactive Layout System (mobile / iPad / desktop) | Foundation | May 12 | Frontend |
| 2 | Sign In & Create Account Screens | Foundation | May 13 | Frontend |
| 3 | Home Screen Polish (filter + chat bubble removed) | Foundation | May 14 | Frontend |
| 4 | 4-Step Onboarding Wizard (5 screens) | Foundation | May 15 | Frontend |
| 5 | Vendor Signup Flow (incl. Company Profile) | Vendor | May 18 | Frontend |
| 6 | Vendor Dashboard — Sales, Bookings, Calendar | Vendor | May 18 | Frontend |
| 7 | Search Results + Recommender + Trust Layer Chips | Vendor | May 20 | Frontend |
| 8 | Payment Success & Failed States (Stripe) | Vendor | May 20 | Frontend |
| 9 | Vendor Library — Catalog Management View | Vendor | May 21 | FrontendBackend |
| 10 | Resource Builder — Vendor Form Fields | Vendor | May 26 | FrontendBackend |
| 11 | Vendor Home / Launchpad Metric Tiles | Vendor | May 29 | FrontendBackend |
| 12 | Per-Resource Visibility Selector | Member | June 1 | FrontendBackend |
| 13 | Public Profile / Portfolio View | Member | June 1 | Frontend |
| 14 | Friends Discover Tab | Member | June 2 | Frontend |
| 15 | Member-Facing Booking Detail Surface | Member | June 2 | Frontend |
| 16 | Vendor Public Profile — Member-Facing Credibility Surface | Latest Sprint | June 3 | FrontendBackend |
| 17 | Vendor Playlist Builder + Verified Badge | Latest Sprint | June 4 | FrontendBackend |