What\u2019s new

Changelog

Everything we\u2019ve shipped to CampSquad. We\u2019re in beta and publishing most weeks — share feedback at hello@campsquad.app.

  1. ·🔧 Improved

    East Bay Regional Parks camps better organized

    • Tilden Little Farm camps now show up correctly when families browse by location, and we fixed a display bug on Wildcat View.
  2. ·🔧 Improved

    More camps sort correctly by distance

    • Pinpointed the exact location of 25 more Bay Area camps so they show up in the right order when families browse by distance.
  3. ·🐛 Fixed

    Nike Sports Camps now correctly shown in Berkeley

    • Nike Sports Camps' Cal Tennis Camp runs at UC Berkeley's Hellman Tennis Center but was tagged Oakland in our catalog, so distance-based search was treating it as 5 miles closer for Oakland parents than it actually is. Now correctly tagged Berkeley.
  4. ·🐛 Fixed

    19 camps now show their actual city

    • 19 camps were tagged as Oakland by default but actually run in Berkeley, Alameda, Albany, Concord, or Foster City. The "near you" sort was treating these as Oakland-zero-miles for Oakland parents when they're actually a drive away. Now they show the correct city in search results and rank by real distance. Affected camps include Camp Kee Tov, Footfire Soccer, JCC East Bay, Luna Dance & Creativity, Urban Adamah, Sticky Art Lab, Ozzy's Music Academy, The Village Kids' Club, and 11 others.
  5. ·🐛 Fixed

    Cleaner city labels on 9 camps

    • Eight camp listings had garbage in their city field — paragraphs, pickup-route descriptions, full address fragments, even a Google Maps URL — making location chips and the "near you" sort show nonsense. Now display the correct city: Adventure Day Camp (Moraga), Roughing It Day Camp (Lafayette), Corner House Art Studio (Oakland), Encore Gym (Walnut Creek), Berkeley Art Studio (Berkeley), Claremont Kids' Club (Berkeley), Kids in Motion (Oakland), Bay Explorers Camp (Berkeley). One additional listing (Sea Ranch Kids Club) was removed — its venue is on the Sonoma Coast, well outside the Bay Area service area.
  6. ·🐛 Fixed

    Back button keeps your camp search

    • Clicking a camp from /camps, then hitting Back, now returns you to the same search and filter state you had — "tennis" stays in the search box, Girls/age/season chips stay applied, results stay visible. State persists per browser tab until you close it. Different sign-in accounts get separate state, so a co-parent's filters don't leak into yours.
  7. ·🐛 Fixed

    11 more duplicate camp cards consolidated

    • Catches duplicate listings whose parent org's name carried decoration that the previous rule missed — parentheticals (MOCHA), ampersands (Junior Center), or trailing qualifiers like "Camp" / "School" / "Center" (Bay Explorers, Roughing It, Pear Tree, Prospect Sierra, Redwood Day, and 4 others). Distinct sibling programs at the same orgs are unaffected — Crowden School Summer Camp, Children's Fairyland Summer Camp, JCC Kids Club Summer Camp, etc. still surface.
    • Bonus fix: two camp listings (Head Over Heels and MOCHA's Summer Camp programs) had a wrong start date of April 13 from the same retired scraper. Date now shows as TBD instead of an obviously-wrong April for a summer camp.
  8. ·🐛 Fixed

    Footfire Soccer Camp listing clarified

    • Renamed the duplicate "Footfire Soccer Camp Summer Camp" program to "Footfire Soccer Camp 2026 Summer Session" so it's clearly distinct from the year-round "Footfire Soccer Camp" program and the parent org. Search for "footfire" now shows three clean cards.
  9. ·🐛 Fixed

    More duplicate camp cards consolidated

    • When an org has both a parent listing and a generic "<Org Name> Summer Camp" program with overlapping content, search and browse now show just one card. Affects 9 orgs including Chabot Space & Science Center, Head Over Heels, Lawrence Hall of Science, Kids in Motion, and others. Specific distinct programs (Clippers FC Recreational Soccer, Oakland Zoo Safari Camp, Camp Kee Tov Day Camp) are untouched.
  10. ·🔧 Improved

    Sponsored placements on short keyword searches

    • Short keyword searches (like "dance" or "chess") now pin up to 2 premium listings at the top of results, with a clearly-labeled "Sponsored" badge so you know when a placement is paid. Closer premium camps win the pinned slot — if multiple premiums match your search, the nearer one leads. Multi-word searches are unchanged.
  11. ·🐛 Fixed

    Cleaned up garbled dates and ages on 13 camp listings

    • 13 camp programs from the retired Campwing scraper had garbled end dates (years like 2001, 2013) and impossible age ranges (like "ages 5–145") caused by a parser bug. The bad fields are now hidden instead of misrendered; one program (Junior Center of Art & Science) had its age range filled in from a sibling program. No enrollments, sessions, or click history affected.
  12. ·🔧 Improved

    Aim High summer program: clearer listing

    • Aim High's summer program page now shows a distinct title and description instead of duplicating the org card. The 4 regional cohorts (Oakland/SJ/Napa, two SF/Marin/East Bay groups, and Tahoe/Truckee) are still visible on the program page and on your dashboard, squad grid, and calendar.
  13. ·🐛 Fixed

    More duplicate camp listings removed from search

    • Follow-up to the earlier cleanup today: removed 3 more stub listings from the same scraper run that didn't fit the '<Org> Summer Camp' naming pattern — Super Soccer Stars (duplicating Soccer Stars), Chess Challenge with Berkeley Chess School (duplicating Berkeley Chess School), and Summer@CIP (Berkeley) (duplicating Summer@CIP). Searches for 'soccer' and 'chess' now show one card per camp instead of two.
  14. ·🐛 Fixed

    Removed duplicate camp listings from search and browse

    • Cleaned up 74 stub camp listings that were duplicating their parent org in search results (you'd see, e.g., 'Future Star Baseball' as both an org card AND a 'Future Star Baseball Summer Camp' program card with the same description). These were leftovers from an early scraper run and added no real information beyond what the org card already shows.
  15. ·🔧 Improved

    Short keyword searches put nearby camps first

    • If you search for a single subject — "tennis", "jiu jitsu", "chess" — results now sort by distance from your family's city first, with match strength as the tiebreaker. Multi-word searches ("summer art camp", "rock climbing gym") still lead with match strength so a precise phrase isn't outranked by something closer but less relevant.
  16. ·🔧 Improved

    Search results now favor camps near you

    • When you're signed in and your family has a city set, camp search results are re-ordered to surface closer options first — a strong match 30 miles away no longer outranks an equally good match in your own city. Relevance still leads; distance breaks ties within each relevance band.
  17. ·✨ New

    Bulk paste import for multi-kid plans

    • Paste your whole summer plan at once — 'Antonio - Galileo Jul 6-10', 'Both - Oakland Zoo Jun 1-5', one line per activity — and we'll match each row to the catalog and let you confirm before saving. Find it on the dashboard next to ✨ Easy Add and in onboarding step 4.
  18. ·🐛 Fixed

    Year-round activities: tap a status badge to change it

    • Year-round activities: tap a status badge to change it (matches This Summer at a Glance). Removed the buggy 'status' field from the notes modal — there's now exactly one way to change status.
  19. ·🔧 Improved

    Cleaned up duplicate empty state on dashboard

    • Cleaned up duplicate empty state on dashboard. Users with no kids now see the IncompleteOnboardingBanner only, instead of both a banner and a redundant welcome card.
  20. ·🔧 Improved

    Enriched orgs auto-publish on first new program

    • Internal: enriched orgs auto-publish on first new program added. Hidden orgs go visible automatically when their pipeline-applied programs land.
  21. ·🐛 Fixed

    Per-kid rows when both kids are in the same camp

    • Fixed: when both kids are in the same camp, each kid now gets their own row. You can change one kid’s status or remove one kid without affecting the other.
  22. ·🐛 Fixed

    Squad banner no longer over-counts recurring activities

    • Fixed: the squad page no longer warns “N camps haven’t been linked to specific weeks” when those activities are recurring year-round programs that don’t need session linking by design.
  23. ·🐛 Fixed

    Multi-week camp registration

    • Adding a second week of a camp for the same kid no longer overwrites the first week. You can now register one kid for multiple weeks of the same camp.
  24. ·🔧 Improved

    Camp names link to camp pages on the dashboard

    • Camp names in “This Summer at a Glance” now link directly to the camp page. Tap the name to see other weeks, sessions, and registration details.
  25. ·🐛 Fixed

    Sign-in copy cleanup

    • Cleaned up sign-in copy now that Google’s consent screen shows campsquad.app branding correctly.
  26. ·✨ New

    150+ Bay Area camps and classes added

    • Added 150+ Bay Area camps and classes to the catalog — new orgs span swim, soccer, coding, music, dance, martial arts, math, and more, covering 20+ Bay Area cities.
  27. ·🔧 Improved

    Program descriptions on camp pages

    • Program cards on camp pages now show a 1–2 line description so you can scan what each program is about without clicking in.
  28. ·🔧 Improved

    Cleaner sign-in flow

    • Cleaner sign-in: email/password is now the primary option on /login and /signup, with Google sign-in below as an alternative.
    • Added a note explaining why Google’s consent screen briefly shows ‘supabase.co’ (it’s our auth provider) so the redirect doesn’t feel suspicious.
  29. ·🔧 Improved

    Cleaner dashboard empty state + onboarding Easy Add path

    • Cleaner empty state on the dashboard — when your kids don’t have any camps yet, the Easy Add prompt is now the primary call-to-action.
    • Onboarding step 4 also offers Easy Add as an alternate path next to the popular camps grid.
  30. ·🔧 Improved

    Internal: enrichment quality scoring + auto-apply

    • Internal: enrichment script now scores extraction quality (HIGH/MEDIUM/LOW/EMPTY). Use --auto-apply to skip review for HIGH-confidence extractions. EMPTY rows auto-skipped from queue. (UI tier badges deferred — admin still reviews via the existing list/detail pages.)
  31. ·🐛 Fixed

    Admin: Enrichment Review now appears in the left sidebar

    • Admin: Enrichment Review now appears in the left sidebar.
  32. ·✨ New

    Admin: enrichment review tool

    • Admin: enrichment review tool — review staged camp data updates and apply or reject in one click. Per-op approve/reject coming later if we need it.
  33. ·⚙️ Internal

    Enrichment apply infrastructure

    • Internal: enrichment apply infrastructure complete (Phase 3 groundwork — admin UI is the next ship).
  34. ·⚙️ Internal

    Camp enrichment script writes to staging by default

    • Internal: enrich-camps.mjs now writes to staging by default (groundwork for safer bulk camp enrichment, no behavior change for live data).
  35. ·⚙️ Internal

    Enrichment queue + staging tables

    • Internal: added enrichment queue + staging tables (groundwork for safer bulk camp data updates — no behavior change yet).
  36. ·🐛 Fixed

    Welcome emails are coming back

    • The welcome-email trigger is now installed on every signup — when you confirm your email address, a branded welcome email will arrive in your inbox.
    • Heads-up: a couple of operator-side configuration steps still need to happen (deploying the email-sending function and setting credentials) before this is fully live. New signups in the next day or two might still miss the welcome email — we’ll backfill once the pipeline is end-to-end green.
    • No impact on signing in or any other email — only the post-signup welcome message was affected.
  37. ·🐛 Fixed

    Cleaner camp page program tiles

    • Cleaned up camp pages — removed duplicate location-header rows and stripped redundant addresses from location names. Camps like Galileo now show clean program names without addresses repeated in the title.
  38. ·✨ New

    Camp pages now show picks from local parents

    • Camp detail pages now render curated reviews from Bay Area parents — quick takes on pros, cons, and who each camp is best for, with a short note from the reviewer.
    • First batch is live on 17 camps from Brooke Shapiro’s Sprinkles list (ANTS Sports, Berkeley Chess, Camp Kee Tov, Camp Tawonga, Oakland Parks & Rec, Cole Arts Camp, East Bay Regional Parks, Fairyland, Firecracker Math, Galileo, Head Over Heels, Jumpin’ Gymsters, MOCHA, Oakland Zoo, Piedmont Rec, Steve & Kate’s, Trackers Earth).
    • Camps without curated reviews look the same as before — the section quietly hides itself when there’s nothing to show.
  39. ·✨ New

    Curated parent reviews — starting with Sprinkles’ picks

    • Camp pages will soon show curated reviews from local Bay Area parents — quick takes on pros, cons, who the camp is best for, and a one-line note.
    • First batch: 17 favorite camps from Brooke Shapiro (writing as "Sprinkles") — ANTS Sports, Berkeley Chess School, Camp Kee Tov, Camp Tawonga, City of Oakland Parks & Rec, Cole Arts Camp, East Bay Regional Parks, Fairyland, Firecracker Math, Galileo, Head Over Heels, Jumpin’ Gymsters, MOCHA, Oakland Zoo, Piedmont Rec, Steve & Kate’s, and Trackers Earth.
    • You won’t see these reviews on camp pages yet — that’s coming in the next update.
  40. ·🔧 Improved

    Finish onboarding later — dashboard banner reminds you

    • Onboarding now has a clear escape hatch. The "Skip" button on step 1 became "I’ll finish later →" — clicking it lands you on the dashboard with a reminder banner naming exactly what’s still pending (e.g. "Finish setting up your family — add a kid, invite a co-parent, invite friends").
    • The banner has two buttons: Continue setup (jumps you back to /onboarding) and Dismiss (hides the banner and snoozes the prompt for 7 days). After 7 days, the next /dashboard visit redirects you to /onboarding again.
    • Quietly fixes a related issue: the previous step-1 Skip wrongly stamped your account as "onboarding completed" even though you’d added zero kids — which suppressed every future onboarding nudge. Now Skip postpones, it doesn’t conclude.
    • If you’ve already finished onboarding, nothing changes for you.
  41. ·🔧 Improved

    Easier friend invites and per-kid camp adds in onboarding

    • Friend invites in onboarding now use your phone or laptop’s native share sheet (Messages, WhatsApp, Slack, Mail, etc.) — one tap and your invite link goes out with a friendly pre-written note: "Hey! I’m planning summer camps with [your family] on CampSquad. Join my squad to coordinate." If your browser doesn’t support native share, you still get Copy message + Send via email buttons.
    • Multi-kid families now get a "Who’s going?" picker when adding a popular camp during onboarding — opt one kid out of a camp that doesn’t fit instead of having to clean up later. Single-kid families don’t see the picker.
    • Final onboarding button now reads "Done →" instead of "Go to your dashboard →" — frames the camp browsing as exposure, not a commitment.
    • Friend invite step copy updated to "Invite 2 friend families" so the ask is concrete instead of vague.
  42. ·🐛 Fixed

    Onboarding setup now actually opens for new signups

    • Critical fix: the automatic redirect from /dashboard to the setup flow for unfinished signups was silently failing. The result was that families who hadn’t finished onboarding could land on /dashboard and see a stale "Welcome to CampSquad!" inline card instead of the real setup steps.
    • Now every signup that hasn’t completed onboarding gets bounced to the proper 4-step flow (Kids → Co-parent → Friends → Camps) when they visit /dashboard.
    • User-facing impact: families with incomplete onboarding from the last few weeks will land on the setup flow next time they visit, picking up wherever they left off (e.g., kids already added → starts at the co-parent step). If you finished onboarding already, nothing changes for you.
  43. ·✨ New

    Co-parent invite now lives inside onboarding

    • New signups now hit a dedicated co-parent invite step right after adding their first kid — previously this step lived on a separate page after onboarding "finished," and barely anyone got to it. Co-parent invites are the single biggest retention lift we see in the data.
    • Skipping the step shows a one-button confirmation so accidental skips don’t lose the prompt: "You can invite a co-parent later from Settings — your co-parent won’t see your family’s camps until they accept."
    • Onboarding is now four steps (Kids → Co-parent → Friends → Camps) instead of three. Step indicator at the top reflects the new flow.
    • Settings → Family members card now links to the full /profile management UI (instead of the invite-only page) so you can see existing co-parents alongside the invite form.
  44. ·🔧 Improved

    Lighter onboarding step 1 + co-parent invite from Settings

    • Onboarding now asks just name and grade for your first kid — emoji and gender become optional touches you can add anytime from your dashboard. The old form asked for too much before you’d even seen what CampSquad looks like.
    • Settings now has a "Family members" card with a one-click "Invite a co-parent" button. Previously the only Settings entry point to co-parent invites was a dashboard banner — easy to miss.
    • Heads-up: this is the first of several onboarding-rebuild commits this week. The dedicated co-parent step inside onboarding lands in the next commit; until then, the dashboard "Add co-parent" nudge banner still surfaces the prompt for new signups.
  45. ·⚙️ Internal

    Per-step onboarding tracking columns

    • No user-visible change yet — this is groundwork for the onboarding rebuild landing this week.
    • Added 4 nullable timestamp columns to families (kids_added_at, coparent_invited_at, friends_invited_at, camps_browsed_at) so we can measure which onboarding steps families complete vs. skip and improve the flow with real data.
  46. ·🐛 Fixed

    Camps now sync to Google Calendar reliably

    • Adding or updating a camp via "Add to schedule" sometimes failed to sync to Google Calendar — the event wouldn’t appear even though CampSquad saved the booking.
    • Same Vercel fire-and-forget issue we fixed for personal entries on Apr 23. Now applied to camp enrollments too — adds, status changes ("Interested" → "Registered"), Easy Add bulk imports, and the email-confirmation one-click flow.
    • All adds, status changes, and removals sync within 30 seconds.
  47. ·🐛 Fixed

    Interested camps now visible on dashboard

    • "This Summer at a Glance" was hiding camps you marked as "Interested" — only showing confirmed registrations.
    • Now all plans appear: Registered camps as solid chips, Interested as muted italic with an "Interested" pill. Matches how /squad already worked.
    • Also fixed: the section was clipped to the next 6 weeks and silently hid anything later. Now shows all 12 summer weeks so a Jul or Aug camp doesn’t fall off the bottom.
  48. ·🐛 Fixed

    Camps you added were sometimes invisible

    • When you added a camp via "Add to schedule," it was saving with an old "planned" status that the dashboard and squad grid didn’t know how to display.
    • Now all new adds use "Interested" — the correct status. Your plan is visible immediately on the dashboard and squad grid.
  49. ·✨ New

    Install CampSquad on your home screen

    • CampSquad is now a Progressive Web App. Add it to your iOS or Android home screen and launch it like a native app — full-screen, no browser chrome, with the CampSquad icon.
    • Works offline for pages you’ve already visited. Your squad plans are still there even on spotty WiFi.
    • On iPhone: tap Share → Add to Home Screen.
    • Android auto-prompts after a visit.
  50. ·✨ New

    Richer squad notifications

    • "🎉 Jace is joining Galileo Jun 8-12 — Antonio AND Avalie are both going that week!" — notifications now name the kid, the camp, and the overlap with your own kids.
    • NEW: 🔥 Squad Milestone alerts fire when a camp hits 3+ squad kids. ("Galileo Innovation Camp is filling up with your squad.")
    • Multiple squad signups to the same camp now collapse into one row with a "+N more" pill.
    • Tap any notification → marks read and jumps straight to the relevant camp or squad view.
  51. ·🔒 Privacy

    Custom Supabase domain attempted (rolled back)

    • We tried to activate auth.campsquad.app so the Google sign-in screen shows our domain instead of the Supabase project URL. Google’s OAuth is still caching the old URL — pending a Supabase support response. Rolled back safely; all sign-ins continue to work.
    • We’ll retry once Supabase confirms the fix on their end.
  52. ·🔒 Privacy

    Analytics + error tracking shipped with privacy first

    • PostHog analytics and Sentry error monitoring are now live.
    • Events and errors carry only family IDs — never your email, name, or your kids’ names.
    • Session replays mask every text input and form field by default. We see the shape of your interactions, never the content.
  53. ·🔧 Improved

    Honest marketing numbers

    • Homepage now shows real camp + program counts pulled from live data (not hardcoded hype).
    • Location-specific copy: we show "Bay Area" to Bay Area visitors and "coming soon" honestly to everyone else.
    • No more fake "1,000+ families" — we’ll update the stat when we actually hit it.
  54. ·✨ New

    Shareable invite links

    • Invite links now read like "/join/sierra-3m6k" instead of a scary UUID.
    • Friendlier to share in iMessage, email, or written on a napkin at a birthday party.
    • Old invite links still work — no broken links anywhere.
  55. ·🔧 Improved

    Cleaner camp browsing

    • Browse page: one unified list of camps and programs instead of two confusing tabs.
    • Card actions flipped — "View Details" is the main action, "+ Add" is secondary.
    • New "Best for your family" sort with options for distance, popularity with squad, price, and newest.
    • Camp detail pages: 4 "track this" buttons collapsed into one clean 🔔 Track this camp.
  56. ·✨ New

    Friends Overlap on Squad

    • See who your kids will be with this summer — per-kid peer ranking by shared weeks.
    • "Most popular camps in your squad" shows where everyone’s heading.
    • Tap any cell in the squad grid to see everyone going that week. Peer names in the Overlap card highlight and scroll to their row in the grid.
  57. ·✨ New

    Co-parent / caregiver invites

    • Add a co-parent right after signup — they get the same dashboard, notifications, and can add activities too.
    • Separate role for caregivers (nanny, grandparent) with view-and-add access.
    • Branded invite email with the inviting family’s kid names.
    • Dashboard reminds you to add one if you skipped.
  58. ·🔧 Improved

    Squad grid is mobile-first

    • Kids run as rows, weeks as columns on mobile — see all your squad at once.
    • Kid names and week labels stay pinned while you scroll.
    • Above-the-fold slimmed down: one title line, single Invite button, family filters behind a collapsible drawer.
  59. ·🔧 Improved

    Dashboard trimmed

    • From 12 sections to 6.
    • New 1-line summary strip: camps confirmed, dollars planned, weeks open.
    • Kid cards spotlight TODAY / NEXT UP / UPCOMING with a clear label.
    • Squad activity feed capped at 5 most relevant with a link to see everything.
    • Broken calendar month view removed — it wasn’t usable.
  60. ·🔧 Improved

    Year-round activity cards

    • Spanish Class (or any class both kids attend) now shows as ONE card with stacked kid emojis.
    • Ongoing weekly classes no longer show a confusing single-date row.
    • When Google Calendar sync is on, the Add-to-Calendar button is replaced with a "Synced" indicator.
    • Tap any chip to edit — removed the hard-to-find tiny × delete button.
  61. ·🐛 Fixed

    Google Calendar sync runs to completion

    • New personal plan entries (vacations, trips, games) now sync reliably to Google Calendar within seconds.
    • Addresses entered on manual activities now write to the GCal event location field — enables Get Directions in the Google Calendar mobile app.
  62. ·🐛 Fixed

    Add Personal Item restored

    • The + Add personal item button crashed after the dashboard redesign. Fixed.
    • Personal entry chips are now fully tappable — tap opens the edit modal with a proper Delete button.
  63. ·⚡ Faster

    Pages load dramatically faster

    • Cold-start page loads cut from 6-8 seconds down.
    • Consolidated background data fetching — fewer requests per page load.
    • Loading skeletons appear within 50ms so the app feels instant even on first visit.
    • Nav links prefetch routes on hover so taps feel instant.
  64. ·✨ New

    Signup confirmation screen

    • After email signup, we now show a "Check your email" screen with a Resend button instead of silently redirecting.
    • You know your account was created.
  65. ·✨ New

    Branded emails

    • Confirmation email redesigned with CampSquad branding and a clear CTA.
    • Sent from hello@campsquad.app via Resend — no more generic noreply.
    • Family invite emails are branded + personalized with kid names.
  66. ·🔧 Improved

    Summer year is dynamic

    • Copy like "Summer 2026" automatically flips to "Summer 2027" after August each year, matching how families plan.
    • Schedule week grid generates from the first Monday of June for whatever summer is active.
  67. ·🔧 Improved

    Signup polish

    • Family-name placeholder no longer reads as pre-filled ("e.g. The Smith Family" instead of a real surname).
    • City dropdown expanded from 11 to 43 Bay Area cities, grouped by region.
    • Footer updated to "Bay Area families."
  68. ·🐛 Fixed

    Accurate numbers everywhere

    • Dashboard summary: camp counts, dollars, weeks open now reflect reality.
    • Camp cards: distance no longer shows "7943 mi" garbage — hides cleanly when unknown.
    • Cities extracted from addresses so street-addresses-as-city is gone.
  69. ·🔧 Improved

    Cleaner activity names

    • Manual activities (Spanish Class, Baseball Practice) no longer show "Sierra Family — Personal Activities" in labels. Just the activity.
  70. ·🔧 Improved

    Dashboard and Squad page load faster

    • Consolidated each page’s initial data fetch into a single server request — roughly 10x fewer auth handshakes per page load.
    • Squad header badges now render server-side with no client roundtrip after hydration.
  71. ·🔧 Improved

    Squad page + mobile discoverability + modal polish

    • Consolidated the /squad header into one card — squad stats, Copy + Share buttons, and your earned badges now live together.
    • Find Families is reachable in one tap on mobile — same header actions as desktop.
    • Add Activity and Add Personal Item modals now handle scrolling reliably on mobile — scrolling the form never closes the modal.
  72. ·🐛 Fixed

    Manual activity Google Calendar sync

    • Manually-added one-time and multi-day activities now sync to Google Calendar alongside recurring ones.
    • Editing or deleting a manual activity propagates to the paired Google Calendar event in seconds.
    • Added [gcal-sync] diagnostic logs so the next sync failure is easy to trace in Vercel.
  73. ·✨ New

    Easy Add Programs

    • Describe your kids’ activities in plain text — AI finds and adds them automatically.
    • Support for multiple kids at once via the kid picker.
    • Custom activities for programs not yet in CampSquad.
  74. ·✨ New

    City of Oakland Parks & Rec

    • 76 Town Camp sessions across 19 Oakland locations.
    • CIT (Teen Leadership) programs for ages 13–15.
    • Real-time availability (open, almost full, full).
  75. ·✨ New

    Inclusion & Gender filters

    • Filter by autism-friendly, sensory-friendly, aide accepted, small groups, IEP/504 experience.
    • Gender focus filters (all, girls only, boys only, gender inclusive).
    • Badges on camp cards, program cards, and detail pages.
  76. ·🔧 Improved

    Smart camp sorting

    • Premium camps now sort by distance from your home city.
    • All 8 premium camps always visible regardless of active filters.
    • A–Z and Newest sorts respect tier — premium first within each mode.
  77. ·🔧 Improved

    Invite flow

    • Fixed invite token surviving Google sign-in round-trips.
    • Share button uses the native iOS / Android share sheet on mobile.
    • Invite link surfaces on the dashboard, profile, and Navbar menu.
  78. ·✨ New

    Google Calendar sync

    • Two-way sync so camp sessions appear in your personal calendar.
    • Pick which Google calendar to sync into.
    • Reset & re-sync button for duplicates.
  79. ·🚀 Launch

    CampSquad beta launch

    • Bay Area family camp coordination platform.
    • 700+ camps and programs across the Bay Area.
    • Squad coordination with co-parents.
    • Premium listings live for 8 Bay Area camps.

Hit a bug or have a feature request?

Visit the Help Center →