Changelog

What’s new in HomeschoolGo.

A running record of everything we’ve shipped — features, fixes, and polish. Have a feature request or want to know what’s coming? We’d love to hear from you.

NEW

Public join page tells applicants when your next term isn't open yet

If a co-op has no term currently open for registration, the public join page now shows a short notice above the form saying so. The form itself keeps working exactly as before, so a co-op can still build a waitlist for its next term between sessions; the banner is purely informational.

NEW

Events can now have a registration-opens date, not just a deadline

Events already had a signup deadline. They can now also have a "Registration opens" date and time, set independently, right alongside it in the admin event form. Along the way we closed a real gap: the free-RSVP signup routes (both web and mobile) weren't checking the deadline at all, only the paid-checkout route was, so a family could sign up for a free event after its deadline had passed. All three signup paths now enforce both dates.

NEW

Roll Call: check in parents and guardians too, separate from their kids

Roll Call previously tracked only students. Each family's parent(s)/guardian(s) now get their own check-in row, tagged Parent, that's completely independent of their children's rows: checking a parent in or out never touches their kids' attendance, and vice versa, since a parent can be out sick while their kids still attend. "Check in all" covers the whole family including parents, and a Show parents toggle on the Roll Call toolbar lets a co-op hide parent rows entirely if it doesn't want them.

NEW

Roll Call check-ins now feed class attendance automatically

Checking a student in, or marking them absent or excused, in Roll Call now mirrors that status into the attendance record for every class they're actively enrolled in that meets that day. A teacher's own manual attendance entry always wins and can't be silently overwritten by a later Roll Call change, and checking a student out of Roll Call doesn't retroactively change their class attendance.

NEW

Emergency Roster: parent contact info, and a filter to view one day at a time

Each student on the Emergency Roster (on-screen, print, and CSV) now lists their family's parent name and phone number, so staff don't need a separate family list handy during a fire drill or evacuation. The on-screen page can also now be filtered to a single day, useful for a term running most weekdays, while the print view and CSV export stay complete regardless of the filter, since those are meant as the full reference copy.

NEW

Exempt teacher families from the per-term join fee

A new checkbox in the term editor (Admin > Terms) waives that term's join fee for any family with a member who's an active teacher at your co-op. Off by default, and carried forward automatically when you clone a term.

NEW

Opt-in sibling discount for class fees

Admin > Settings now has an option to discount class fees for siblings. Once turned on, the first student a family enrolls in a paid class each term pays full price, and every other student in that family gets a percentage off (50% by default, adjustable) on their own classes. Off by default. Refunds for a dropped or waitlisted seat now use the exact amount that seat was actually charged, so a checkout mixing a full-price and a discounted seat still refunds correctly.

NEW

Stay signed in for weeks, not just while you're actively clicking around

The "you've been idle" warning used to appear after 30 minutes, and its Extend session button didn't actually extend anything: clicking it reset the on-screen countdown but never refreshed the underlying session. Extend session now genuinely refreshes it, and the idle timeout itself is now 24 hours. Separately, the cookie that keeps you signed in across visits now has a 30-day floor everywhere it's written, so closing the browser and coming back weeks later should still find you signed in.

NEW

App Store and Google Play badges added to the site footer

The site footer now shows a linked Google Play badge and a dimmed "Coming soon" App Store badge (the iOS app isn't published yet, so it's unlinked for now). Both images are hosted on our own servers rather than loaded from Google's and Apple's, since a number of school, library, and church networks run content filters that block Google's badge domain outright, which was making the Google Play badge silently disappear with nothing visibly broken. A few rounds of sizing and corner-radius adjustments also brought the two badges into visual alignment with each other.

NEW

Waivers are now versioned, so editing one's wording can require a fresh signature

Every waiver edit is now compared against what each family actually signed. If a waiver's text changes, families who signed the earlier wording are automatically flagged to re-sign it the next time they go through term-start review, no separate action needed. This runs independently of the "Require re-sign" button added on July 21, which still exists for forcing a re-sign without changing the wording at all.

NEW

New Delinquency report, and an option to require every waiver re-signed each term

Admin > Reports has a new Delinquency report, scoped to the term currently open for registration: who has a pending join-fee charge but hasn't paid it (Owes), versus who hasn't engaged with the new term at all yet (Lapsed). Separately, a new toggle in the Waivers panel can require every active waiver to be re-signed each term even when its wording hasn't changed, off by default since the automatic re-sign-on-edit above already covers the common case.

FIX

Applications now stay locked to the term you applied under

An application used to get whatever term counted as "currently open" at the moment an admin approved it, not the moment the family submitted it. If approval sat pending while terms changed underneath it, a family could end up registered and charged for a term they never actually applied for. Applications now lock in their term at submission, and approval honors that.

FIX

A same-day bug could silently drop a waiver signature during term review

A database change earlier the same day briefly broke saving a family's waiver signature during term-start review: the review page reported success and cleared the family's pending-review flag, but the signature itself was never written. It was caught and fixed within hours. Anyone caught in that window will be asked to sign again the next time they go through review.

FIX

Importing a roster before opening your first term no longer marks everyone as already registered

Co-ops that imported their family roster before ever opening a term had every imported family's "joined for" term silently set to that not-yet-open term. The moment the term was later opened, those families were treated as already reviewed and registered, skipping the term-start review, the join fee, and any waiver signatures entirely. Fixed, and already-imported families were corrected to no longer be wrongly exempt.

FIX

Imported families' sign-in links were silently going nowhere

A family imported from another system, entering their email on the join page to get a sign-in link, could see "check your email" and never actually receive one, with no error and no way to tell the difference from it working correctly. A second bug meant that even a family who did get the link and signed in could land on an unrelated setup screen instead of their own account. Both are fixed: imported families now reliably get their sign-in email, and clicking it correctly links them to their family, students, and pending term review.

FIX

Attendance save no longer shows a false "Save failed" error

Marking attendance on a class's Attendance tab could show a red "Save failed" message even though the record had already saved correctly. A leftover redirect in the save endpoint was confusing the browser into treating a successful save as an error. The save now returns directly, and the false error is gone.

FIX

iOS Safari: family and child edit forms could stop responding after using a picker

On iOS Safari, opening the family or child edit form, picking a birthday or a photo, and tapping Save could silently do nothing. iOS Safari's native pickers can shift the page under a modal that's using a weaker scroll lock, desyncing where your next tap actually lands. Switched to the standard iOS-safe scroll lock, and added a confirmation toast to photo uploads so a successful save is never silent.

POLISH

Household members now show a profile picture, not just initials

A spouse or other adult listed under Profile > Household members now shows their actual photo (from OAuth sign-in) in a circle, matching how student cards and the account menu already display photos, falling back to colored initials when there's no photo on file.

NEW

Admins now control when a term opens to families

Terms have a new Opened / Not opened state, shown as a badge on Admin > Terms. A brand new term opens automatically for your very first term only; every term after that, including cloned ones, starts closed until you open it. While a term is closed, families don't see it in the class catalog, term-start review, volunteer or event signup, or the calendar, though admins can still see and manage it normally. Opening a term is one click, and closing it again is reversible and doesn't delete anything. The Create Term and Clone Term forms also now say up front that opening a term for families will ask them to reconfirm their contact info and re-sign current waivers, and cloning a term has a new "Carry forward family confirmations" option that skips that reconfirmation for families already confirmed on the term you're copying from, useful when you're correcting a placeholder or duplicate term rather than starting a real new season.

NEW

Term-start review now covers volunteer and event signups too, and shows up on your dashboard

The confirm-your-info step for returning families now appears as a banner on the dashboard home with a link straight into the review, instead of only showing up once you happened to open the class catalog. That same check now also runs before signing up for a volunteer shift or registering for an event, not just before enrolling in a class, so there's no way to take on a new-term commitment without confirming your info first. Two bugs from the original release are fixed along the way: the dashboard banner could occasionally point at the wrong term, and a waiver set up as an uploaded PDF or with rich-text formatting could fail to render on the review page.

NEW

Join fee now charged per term, not once at signup

The join/enrollment fee used to belong to the co-op as a whole and was charged exactly once, when a family was first approved. It's now set per term instead, under Admin > Terms when you create or clone a term, and applies again each time a returning family goes through the term-start review. If the fee is required and unpaid, a family's info and waiver signatures still save normally, but they're sent to checkout before the review counts as done, so nobody gets marked reviewed for a term they haven't paid into.

NEW

Yes/No agreement waivers, for something like a photo release

Waivers in the Application Form builder can now be set up as a plain Yes/No agreement instead of a typed-name signature, a better fit for something like a photo release where you just need a clear answer on file. Both a yes and a no are recorded, so a decline stays distinguishable from a waiver nobody was ever asked about. It shows up as a pair of radio buttons on both the join form and the term-start review, and fills in the signer's name automatically from the parent info already on the form.

NEW

Require a fresh waiver signature without editing its text

Editing a waiver's wording used to be the only way to make families sign it again, which meant a small typo fix would silently force everyone to re-sign. A new "Require re-sign" button on each waiver in the Application Form builder is a separate, deliberate action: use it when a waiver's terms have actually changed and past signatures shouldn't count anymore, without touching the waiver's text at all.

NEW

Owners and admins can submit a real application for themselves

Some co-ops want their own staff to go through the same process as everyone else: a real application, the join fee, and a signed waiver on file. Owners and admins couldn't do that before; visiting the join page just sent them back to the dashboard, and the existing Preview mode is intentionally fake. A new "Apply for yourself" option on Admin > Applications opens the real join form and creates a genuine application, the same as any other family's.

NEW

Class roster CSV export, and a printable Emergency Roster report

Teachers can download their class roster as a CSV from the Roster tab, and admins can do the same from a class's detail page. A new Emergency Roster page for admins groups every class in a term by day, time slot, and room, with its full enrolled roster, meant for printing and posting in classrooms or the office when you can't count on internet access. The on-screen page, the print view, and the CSV export all pull from the same data, so they can't drift out of sync with each other.

FIX

The password-changed security email is now branded

Supabase's built-in notification for "your password was changed" was still using its plain default styling, unlike the rest of our account emails. It now uses the same branded template as the others.

POLISH

Removed a stale pointer to a moved menu location

The Class Catalog admin page had a note explaining that application questions and waivers had moved to Membership > Application form. That move happened a while ago and the note was no longer needed, so it's gone.

NEW

Application Form builder: new field types, live preview, and rich-text waivers

The Application Form builder (Admin > Applications > Application Form) picked up a round of improvements. Two new field types, Multi-select and Radio Buttons, join the existing Text, Text Area, Dropdown, Checkbox, and Number options. Editing a field or waiver now opens in a modal with a live preview of how it'll look on the join form, and reordering uses Move up/Move down from each row's menu instead of drag-and-drop. Waiver bodies now use a rich-text editor instead of a plain text box. You can also select multiple fields or waivers and delete them together, and a new toggle lets you choose whether Waivers or Custom Fields appears first on the join form.

NEW

Upload a PDF as a waiver instead of typing it out

Waivers in the Application Form builder can now be a PDF you upload instead of text you type in. Turn on "Upload a PDF" for a waiver, and the join form shows it inline using the browser's built-in PDF viewer. Signing a file-based waiver keeps a permanent copy of exactly what was signed, so replacing the file later doesn't change what past signers agreed to.

NEW

Returning families confirm their info before a new term

Families re-enrolling for a second or later term now see a short review step first: confirm or update family and student info, and sign any waiver added since they last joined. A family's very first term is unaffected. Families who joined through a CSV import now get this same review too, replacing the separate one-time check they used to see.

FIX

Join and login page button color now matches your dashboard accent

The submit button on the join and login pages was always teal, regardless of your co-op's configured accent color. It now correctly uses your dashboard's accent color when no custom page design overrides it.

POLISH

Clearer empty-state copy on the application form's Children section

The application form's Children section said "Click 'Add child' if you have any," which read as unsure whether the applicant had kids. It now says "Click 'Add child' to get started," matching the wording already used for the same empty state on the dashboard profile page.

POLISH

Real logo now shows on a few more pages

The 404 page, legal pages, the affiliate portal, and the inactive-membership notice were still showing a plain text "HomeschoolGo" instead of the actual logo. They now show the same logo used throughout the rest of the app.

POLISH

Another help center accuracy pass

The Getting Started guide for families and 10 other help articles were updated to match how the app works today, including the Students page's Add child button, the current Profile page layout, and the fact that volunteer shift signups can be cancelled without contacting an admin. A note was also added clarifying that the push-notification toggle in Communication preferences won't do anything until a future mobile app exists.

NEW

Refund a payment and cover the balance with a credit, in one step

The Refund action in the Family Ledger now has a "Keep them paid" option: refund the payment and apply a covering credit (scholarship, fee waiver, or anything you handled outside the system) in the same action, so the family never shows as unpaid in between. Pick a reason (Scholarship, Fee waived, Paid outside HomeschoolGo, or Other) and an amount, and the ledger nets out correctly right away.

NEW

Admins can preview their own join form

Owners and admins previously couldn't see their live join form while signed in: visiting it just redirected to the dashboard, so checking a new custom field meant logging out first. The Preview button on Admin > Applications and Admin > Team now opens the real join form in a preview mode. It shows exactly what applicants see, but submitting doesn't create a real application or notify anyone. The custom-fields panel also now lists what the standard form already collects, so you don't accidentally duplicate a field.

POLISH

Application Form tab gets its own Preview button

Previewing your join form used to require switching to the Review tab first. A Preview button now sits at the top of the Application Form tab too, so you can check how a change looks right after making it.

FIX

Treasurer reports now show in-flight bank payments instead of dropping them

The billing summary and aging CSV exports in Admin > Billing only counted fully settled payments, so a family paying by bank transfer looked like they owed their full balance even while the payment was still processing. Both exports now include a Method column and a Processing amount, and a family fully covered by a processing bank payment is grouped separately instead of being counted as delinquent.

FIX

A rejected approval could silently leave an application stuck as pending

If saving an application's approved status failed, the admin screen still reported success while the application secretly stayed pending. That save now checks for errors like the rest of the approval flow, so a failure is no longer silent.

POLISH

Co-op logos no longer show a faint seam on the login and join pages

Uploaded logos are almost always designed for a white background, and the login and join page headers weren't quite pure white, so many logos showed a subtle, unintentional-looking edge. Logos on those pages now sit in a white card with a deliberate border instead.

POLISH

Refund menu item relabeled

The Refund option in the Family Ledger's action menu now reads "Refund…" instead of a plain red "Refund," making clear it opens a confirmation dialog rather than issuing the refund immediately.

POLISH

Admin Billing page: clearer breadcrumb, actions moved onto the balance card

The Billing page's breadcrumb was showing "Payments" instead of "Billing." It's fixed, and the charge, payment, credit, and bulk-invoice actions have moved from a buried dropdown in the page header onto the "Outstanding this term" card, next to the family filter, so they read as one toolbar instead of two disconnected rows.

FIX

A mistyped or outdated link now shows a real not-found page

Landing on an unknown page while signed out used to redirect to the login screen instead of showing a not-found page, which read as broken. Unknown pages now show a proper not-found page, and its "Go to homepage" link and logo point signed-out visitors to the homepage instead of a dashboard they can't reach.

FIX

Email unsubscribe links work even when you're signed out

Clicking "unsubscribe" from a HomeschoolGo email could redirect to the login page instead of processing the request, since almost everyone clicking that link isn't signed in. Unsubscribe links now work correctly regardless of sign-in state.

FIX

Pricing page's migration link no longer hits a login wall

The "Learn about migration" link on the pricing page pointed at a page only signed-in admins can reach, so a visitor comparing plans hit a login wall. It now points at the public migration explainer instead.

POLISH

Pricing comparison table now lists the page builder and class fee management

The Essentials-vs-Plus comparison table and FAQ answer on the pricing page were missing two features that are already Plus-only: the custom public page builder and class fee management. Both are listed now, so the table matches what each plan actually includes.

POLISH

Log in link added to the mobile landing nav

The mobile menu on the marketing site only offered "Start free for 60 days," so an existing member on their phone had to already know the /login URL. A Log in link now sits next to the signup button.

POLISH

Footer no longer promises a mobile app timeline

The site footer's "Mobile apps, Android and iPhone, coming soon" line has been removed. We didn't have a timeline to back it up, so we took it down rather than leave an unbacked promise in the footer.

POLISH

Added a proper favicon.ico

Some browsers and tools look for a favicon.ico file directly instead of the favicon.png or .svg we already had, and would fall back to a generic icon when they didn't find one. A real, multi-resolution favicon.ico is now in place, so the browser tab icon shows up consistently everywhere.

POLISH

Another help center accuracy pass, plus new guides for Roll Call and Incident Reports

A few help articles still pointed to the old "Upcoming Birthdays" panel on the dashboard home; it's since moved to a header pill on the Families page and now includes student birthdays too, so those articles were corrected. New guides were also added for Roll Call and Incident Reports, and the term-rollover and student-progress guides picked up notes on editing a term and on assignment/class-file attachments.

NEW

Incident reports for staff

Teachers, admins, and owners can now file an incident report that routes to the co-op's board or a specific admin — useful for documenting a behavior issue, injury, or other write-up that needs follow-up. Once submitted, a report can't be edited, only resolved or reopened, so it stays a reliable record. It's off by default; owners turn it on under Admin > Settings, and it's reachable from the Admin Hub or a link on the Teaching page.

NEW

Roll Call gets a check-in notes log

Whoever's running Roll Call can now leave a note for whoever staffs it later the same day — a parent callback that still needs a follow-up, for example. Notes post instantly and show who wrote them and when. The not-arrived/here counts also moved into clickable progress cards, and the date picker now shows a friendly label like "Wed, Jul 15, 2026" instead of raw digits.

FIX

Stripe refunds now sync correctly to the family ledger

When a co-op refunded a payment in Stripe, the family's ledger in HomeschoolGo could keep showing them as paid up instead of reflecting the refund, letting them keep a spot they no longer owed for. Refunds now reliably flip the ledger entry to refunded and reopen the balance. Admins also get a new Refund action right in the Family Ledger — issue the refund through Stripe from there, or record one you handled outside the platform (cash, check, etc.) so the ledger stays accurate either way.

POLISH

Join fee settings clarify what changing the fee affects

The join fee panel in Admin > Applications now spells out that changing the fee only applies to new approvals — families already approved keep the fee amount that was in effect when they were approved.

NEW

Roll Call: a simple daily check-in/check-out board

For co-ops that run as a single all-day program rather than a set of separate classes, Roll Call adds a front-desk-style check-in and check-out that's separate from per-class attendance. Turn it on for your co-op from Admin > Settings — any admin can flip the toggle, not just the owner — and a Roll Call page appears in the sidebar for owners, admins, and teachers. It's built for a phone or tablet at the front table: tap a student's name to check them in, tap again to check them out, search for a specific family, or check in an entire family at once.

NEW

Reports overhaul: a real hub, deeper financial reports, trend charts, and a custom report builder

Admin > Reports has been rebuilt from a single term-locked page into a proper hub with a term switcher. A new Finance report shows an outstanding-balance aging breakdown, a chart of charged vs. collected over time, and a year-end teacher payout summary for 1099 purposes. A new Trends report charts enrollment fill rate, revenue, volunteer completion, membership growth, and the application funnel across your last several terms, so you can see direction over time instead of a single snapshot. A new Report Builder lets you pick a dataset — families, enrollments, charges, attendance, or volunteers — choose your columns, filter by term, status, or date range, preview it on screen, and export to CSV. These are part of the Plus plan's reporting features, same as before.

NEW

Owners can let another admin change member roles

Changing a member's role used to be owner-only, so a co-op with more than one active admin had to route every promotion through a single person. Owners can now grant a manage-roles permission to a specific admin from Admin > Members, letting that admin change roles too. Editing permissions and suspending a member stay owner-only, and an owner still can't be demoted except by their own transfer.

NEW

Teachers can share files with a whole class

Teachers could already attach a file to an individual assignment. A new Files tab on the Teaching page lets them share files for the whole class instead — a syllabus, reading list, or handout. Families see class-wide files on a 'Class Files' panel on their student's class dashboard, alongside assignment attachments.

NEW

Filter forum channels, and see what the 'Auto' tag means

The forum category list under Communications now has a filter box once your co-op has more than five channels, so you can find the right one quickly on a long list — handy when a class runs multiple sections and each has its own channel. Hovering the 'Auto' tag on a class channel now explains what it means: it was created automatically for that class section, and deleting it removes its discussion threads too. The list also groups channels by type (class channels, general, by role, private) and shows each one's latest activity instead of a bare thread count.

FIX

Re-RSVPing to an event after cancelling now works

If you cancelled your RSVP to an event and later tried to sign up again, the signup could fail. Signing up again now properly revives your original registration instead of erroring out.

FIX

Toast notifications were rendering below the visible screen

A styling bug meant every toast notification in the app — save confirmations, errors, all of them — was rendering just past the bottom edge of the screen on some pages, invisible unless you scrolled down. Toasts now show up where they're supposed to.

FIX

Time slot and room changes on the Terms page now show errors, and catch backwards times

Adding or deleting a time slot or room previously closed the dialog, or removed the row, even when the save had actually failed — with nothing telling you it didn't work. Both now show a clear error message when something goes wrong. We also added validation to catch an end time set before the start time, which previously saved without complaint.

FIX

Cloning a term no longer creates duplicate forum channels

Cloning a term for a new season was creating a brand-new, identically-named discussion channel for every class instead of carrying over the existing one, leaving a growing pile of empty duplicates behind. Cloning now reuses each class's existing channel, so its name and thread history carry forward.

POLISH

Terms page: richer term switcher, better mobile layout

The term switcher on Admin > Terms & Schedule now shows each term's status (Active/Upcoming/Past) plus its dates and class counts right in the dropdown, instead of squeezing everything onto one dense line. On smaller screens, the Current term card's header, dates, and toolbar now stack and wrap properly instead of getting scrunched together.

POLISH

Tightened the account dropdown menu

The dropdown menu that opens from your name in the sidebar now has less padding between items, so it reads as a tighter, more compact menu.

NEW

Edit an existing term's name and dates

Admins can now edit a term's name, start date, and end date after it's already been created, instead of deleting and recreating it. Open the term from Admin > Terms and use the edit option.

NEW

Admin views now show every child's allergy and medical notes

Reviewing an application, a family's profile, or the quick-look card in the member directory used to only surface allergy and medical information for a family's first child. All of a family's children now show their notes across every one of those views.

NEW

Volunteer shift signups show who's signed up and how full a shift is

The admin volunteer shift list now shows a clear "Full" or "N of M filled" badge for each shift, plus the names of everyone signed up. Previously you only saw a bare capacity count with no names.

POLISH

Admin Terms page: redesigned Current term card

The Current term card on Admin > Terms is now a single header with the term's dates, an Active/Upcoming/Past status badge, time-slot and class counts, and a cleaner action menu — replacing a more scattered layout of separate controls.

POLISH

Documents page redesigned

The Documents page now uses icons instead of emoji to show file type, with a cleaner row layout and accurate file-type detection for both uploaded documents and pasted Google Docs, Sheets, or Slides links.

POLISH

Families directory decluttered

The Upcoming Birthdays and Directory privacy widgets no longer sit inline on the Families directory, pushing the family list down the page. Birthdays now live behind a header pill you can click to see the list, and directory privacy has moved to a settings icon in the header. Family cards also cap status badges at three, collapsing anything past that into a '+N more' indicator.

FIX

Public co-op nav bar no longer wraps or overlaps at narrow widths

On a co-op's public page, navigation links could wrap awkwardly or overlap the logo when the browser window was narrow. Links that don't fit now collapse into a 'More' dropdown instead, keeping the nav bar on a single line at any width.

FIX

Clone term dialog now shows errors in the dialog, not a hidden toast

If cloning a term failed, the error message was a toast notification that rendered behind the open dialog and was never seen. Errors now show directly inside the dialog.

FIX

Payment amounts stay aligned when charge descriptions wrap

On the family payments list, a long charge description or badge could push the dollar amount onto its own left-aligned line. Amounts now stay right-aligned no matter how the description wraps.

NEW

Mobile top bar shows your current screen and a back button

On phone-sized screens, the top bar now shows the name of the screen you're on with a back button to return to the previous one, instead of the co-op name on every page. Your home screen still shows the co-op's logo and name centered, since there's nothing to go back to from there.

NEW

Redesigned photo lightbox

Opening a photo in the Gallery now brings up a swipeable, near-fullscreen viewer instead of a smaller boxed-in image. Swipe or use the arrow keys to move between photos, with the caption and photo count overlaid on the image instead of taking up their own space.

FIX

A few mobile navigation rough edges fixed

The back button no longer lands on pages that just redirect elsewhere, which was bouncing you right back where you started (for example, from Announcements). A fast scroll on iPhone could also briefly flash a gap under the fixed top bar; that's fixed too.

FIX

Gallery album menu no longer overlaps the card below it

The three-dot menu on gallery album cards could open downward and spill onto the next card. It now always opens upward, where there's room for it.

FIX

Six co-op accent colors weren't applying everywhere

Co-ops on the amber, navy, rust, forest, wine, or indigo accent color had two mobile surfaces — the command palette and the mobile messages panel — stuck on teal regardless of their actual choice. All twelve accent colors now apply consistently.

POLISH

Admin Dashboard tool cards redesigned

Each tool card's icon now sits in a larger, accent-tinted background for more visual weight, with a bolder arrow. On phone, the 'Filter tools' search box is hidden, since the list is short enough there not to need it.

POLISH

Birthday reminders use an icon instead of an emoji

The Upcoming Birthdays card on the mobile Families directory showed a cake emoji next to each name; it's now a plain icon to match the rest of the app.

NEW

Cookie preferences and an analytics opt-out

You can now opt out of non-essential analytics from a new 'Cookie preferences' link in the site footer and on legal pages. Your choice is remembered on this device, and if your browser sends a Global Privacy Control signal, analytics are off by default until you say otherwise.

NEW

Trial terms shown directly on pricing

The pricing page and landing page now show your trial terms right under each plan's button for visitors who aren't signed in: a 60-day free trial, no credit card required, and cancel anytime.

FIX

Co-op Readiness Assessment results email

If you took the free Co-op Readiness Assessment and asked for your results by email, a delivery failure could still show the 'Sent — check your inbox' confirmation. The confirmation now only appears once the email actually goes out, and retaking the assessment with the same address no longer errors.

FIX

More specific toll-free SMS rejection reasons

If your co-op's toll-free number registration is rejected, the review page now matches Twilio's specific rejection code to a plain-English explanation and a concrete next step, instead of a generic message. If the form restored an autosaved draft after a rejection, it now says so clearly, with an option to discard it and start over.

POLISH

Confirmation dialogs close with Escape and lock background scrolling

Confirmation prompts, the upgrade dialog, and a few other popups that hadn't been updated now consistently close on Escape, focus the right button when they open, and stop the page behind them from scrolling.

POLISH

More dark mode contrast fixes

The navigation sidebar and top bar are now noticeably darker than the page content in dark mode, matching the layered look of the rest of the app, and several remaining hardcoded colors were converted to theme-aware ones. The HomeschoolGo logo on the plain login page was also rendering in a color that was invisible against the dark background — it now adapts to your theme.

POLISH

Faster loading for admin editors and photo galleries

The rich text editor, the public page builder, and event and class forms now load their heavier components only when you open them, so those admin pages load noticeably faster. Photo grids in the gallery also request more appropriately sized images instead of always loading full resolution.

FIX

Fixed account mix-ups for adults linked to more than one family

If you were a parent or guardian linked to more than one family record in the same co-op — for example, after being invited into a spouse's household — the app could silently show you the wrong family's balance, students, schedule, or payments. It's now stable and correct, and a family switcher appears at the top of your dashboard whenever you have more than one family to choose from.

NEW

More activity shows up in your Notifications feed

The Notifications hub now includes event reminders, upcoming volunteer shift reminders, new assignments posted to your student's class, application approvals, and new direct messages, each linking straight to the relevant page.

NEW

Copying a term can now carry over its registration windows too

The Copy-a-term tool can optionally copy the source term's registration windows along with the schedule, shifting their open and close dates to match the new term while keeping the same time of day. It's off by default, and invite-only windows get a fresh invite code so old links don't carry over to the new term.

NEW

New help guide for Events & RSVPs

A new help article walks through creating an event, setting capacity, fees, and waitlists, sending reminders, and the recently added no-show tracking and headcount roster.

FIX

Help center accuracy pass

Several help articles described buttons and features that don't actually exist, including a direct 'invite a family' flow, a 'remove from waitlist' button, and a manual volunteer-credit tool. Those were rewritten to match what the app actually does, along with a handful of broken links and outdated plan names.

FIX

Past-due grace period now starts reliably

If your co-op's subscription payment fails, HomeschoolGo gives you a 7-day grace period before restricting features. A timing bug meant that clock didn't always start when it should have; it's fixed now. The payment-failure email's button is also now labeled 'Go to billing settings' to match where it takes you.

NEW

Trial reminder emails for co-op owners

If your co-op is on a free trial, you'll now get an email heads-up at 14, 7, and 3 days before it ends, and once more if it expires, in addition to the existing dashboard banner. Both count down on the same schedule.

NEW

Invite a household member to your family account

You can now invite a spouse or another adult in your household to share your family's account from Profile > Household members. If they already have a HomeschoolGo login with no family in your co-op, they're linked in directly; a new email address gets an invite that lands them in your family. Each person keeps their own login.

NEW

Admin tool to merge duplicate family records

When two family records belong to the same household, admins can now merge them from the new duplicate-families card on Admin > Members. The merge combines students, payment history, and messages onto one record and can't be undone, so it requires typing a confirmation before it runs.

FIX

Gradebook and assignment saves no longer crash when interrupted

If you navigated away or your phone backgrounded the tab while a grade, assignment, or attendance note was saving, the Teaching section could show an error page. Interrupted saves are now handled quietly, and real save failures still show up as before.

FIX

Removed 'Download the mobile app' from the family checklist

The family getting-started checklist listed a mobile app download step, but there isn't a mobile app yet. That step is gone until there is one.

FIX

Forum post timestamps no longer flash the wrong time

Forum post times were briefly rendered in the server's time zone before switching to yours, which could show a slightly wrong time for a moment after the page loaded. Timestamps are now consistent from the first render.

NEW

Track no-shows for events, with a headcount breakdown for admins

Admins can now mark a registered attendee as a no-show on an event's roster, separate from someone who cancelled ahead of time. The event page shows a breakdown of registered, waitlisted, cancelled, and no-show counts, useful for catering and room setup.

NEW

Members page flags possible duplicate family records

Admin > Members now shows a card flagging families that look like duplicates of each other, based on a shared email, phone number, or name. It's detection only for now, so you can spot a split household and follow up.

FIX

Card processing fees can no longer be passed on to families

Co-ops could previously opt to add Stripe's card processing fee to a family's checkout total. That option has been removed, since surcharging is restricted in several states and card network rules bar it for debit cards outright. Co-ops now cover the processing fee on card and bank payments, and families always pay exactly the amount owed.

FIX

Apple Pay checkout hardened against duplicate charges

A network hiccup during an Apple Pay payment on mobile could occasionally result in two charges instead of one. Apple Pay payments now use Stripe idempotency protection so a retried request can't double-charge, and checkout also refuses to charge more than what was shown if your balance changed while the payment sheet was open.

POLISH

Smoother modal and drawer animations

Modals and drawers throughout the app (including the unenroll confirmation and other confirmation dialogs) now slide and fade in consistently instead of appearing abruptly.

NEW

Copy a term to start the next season

Admins can now clone an existing term from Admin > Terms instead of rebuilding the schedule from scratch each season. Copying brings over time slots and, optionally, the class catalog and teacher assignments; enrollments, payments, and registration windows always start clean. Cloned classes land as drafts so you can review fees and details before publishing.

POLISH

Clearer notice when a student lands on a waitlist

Enrolling a student into a full class now shows a persistent notice on the enrollment window naming the student and their waitlist position, instead of an easy-to-miss toast that could disappear before you noticed it.

NEW

Warning when a class's room and time slot are already booked

Creating or editing a class now checks whether its room and time slot are already taken by another class in the same term, and blocks the save with a message naming the conflicting class.

FIX

Self-unenroll deadline now respects your co-op's time zone

The cutoff for families to unenroll themselves from a class was evaluated in server time rather than your co-op's local time zone, closing the window several hours early for co-ops west of UTC. The deadline now correctly reflects local midnight in your co-op's time zone.

FIX

Bank payment failure emails and admin balance ledger corrected

Families could receive a 'your bank payment failed' email even after the payment had actually gone through, and a webhook redelivery could send that email twice. Both are fixed. Separately, a failed bank payment was incorrectly reducing a family's balance on the admin ledger view, making it look like they'd paid when they hadn't.

FIX

SMS opt-in text now shows your registered legal business name

The join page and account settings now display a co-op's registered legal business name alongside its public name in the SMS consent text, when the two differ. Carrier reviewers cross-check these, and a mismatch was causing toll-free number registrations to get rejected.

FIX

Public co-op pages no longer show HomeschoolGo's own brand color

Some accents on public class catalog pages, and the color used in social-media share previews, were hardcoded to HomeschoolGo's own colors instead of each co-op's. Catalog pages now use a neutral palette and share previews use your co-op's own brand color.

NEW

Waitlisted classes now show up on your family schedule

If a student is on a waitlist for a class, that class now appears on the family My Classes / schedule page with a 'Waitlisted' badge and position, instead of being left off the schedule entirely.

FIX

Dark mode readability fixes

Several dark mode issues are fixed: panel backgrounds had an unintended blue tint instead of a neutral gray, the current-page breadcrumb was nearly unreadable, and colored status badges (payment charge types, application status, and others) stayed at full brightness instead of dimming for a dark background.

POLISH

Consistent action menus on forum and profile pages

The family profile's student card and forum posts now use the same three-dot action menu as the rest of the app, and the mobile top bar no longer overlaps the content directly below it.

NEW

Bank (ACH) payments

Plus co-ops can now let families pay from a bank account. Stripe's ACH fee is 0.8% capped at $5, well under the card rate. It's off by default; owners can turn it on under Admin → Billing → Payment options. Bank payments take about four business days to settle, and families see a processing note until they do.

NEW

Notifications Hub: one feed for everything that needs your attention

A new Notifications page brings mentions, waitlist promotions, and other account activity into a single feed, with an unread-count badge in the header for every role. The dashboard also shows your 3 most recent notifications with a link to see everything.

NEW

Parent attendance history now covers every term, with teacher notes

The attendance section on a student's detail page now shows records across all enrolled terms instead of just the active one, includes teacher notes on individual sessions (like 'Field trip' or 'Class cancelled') when present, and shows present/absent/excused counts as a clearer 3-number summary.

NEW

Bulk approve or reject applications

Admin > Applications now lets you select multiple pending applications with checkboxes (or Select all) and approve or reject them together from a bulk action bar, instead of reviewing them one at a time.

NEW

Volunteer shifts show how full they are

Shift rows on the Volunteer page now show 'filled/capacity' and spots remaining, with a 'Shift full' state once a shift reaches capacity. Signups are also now checked on the server, so a full shift can no longer be signed up for through a workaround.

NEW

One dashboard banner instead of a stack

The family dashboard used to show every applicable warning banner at once — a join fee, an outstanding balance, unmet volunteer credits, and more could all stack up. Now a single, severity-ordered banner shows the most important one at a time (a required fee first, then a balance, then volunteer credits), with lower-priority notices moved below the fold instead of competing for attention.

NEW

Gradebook flags assignments that are past due with no score

The teacher gradebook now shows a small amber dot on any cell for an assignment whose due date has passed and that hasn't been scored yet, so missing grades are easy to spot. It disappears the moment a score is entered.

FIX

Inviting an existing member no longer overwrites their role

Inviting someone to your team who was already a member of your co-op could silently change their existing role and permissions, in one case demoting an owner. Inviting is now for new members only; changing an existing member's role goes through the role menu instead, and a clear message explains what to do when the invited email already belongs to a member.

FIX

Subscription checkout no longer loops for logged-in users

A signed-in owner who clicked a plan on the pricing page was sent to the account-creation screen even though they already had an account, looping them back and forth. Logged-in visitors now go straight to checkout for the plan they picked.

FIX

Some older volunteer shift times were showing incorrectly

A handful of volunteer shifts created before June 11 had their start and end times stored incorrectly and were displaying several hours off. Those times have been corrected.

FIX

Document actions and schedule printing are more resilient to errors

A network hiccup while renaming, deleting, or updating a document previously could crash the page instead of showing an error; it now surfaces a clear message. Printing your schedule on Safari could also fail to close the print window reliably, that's fixed too.

NEW

Co-op contact email

Admins can now set a contact email address for their co-op under Admin → Settings → General. This email is shown to members as a way to reach the co-op directly.

NEW

Delete event and forum categories

Admins can now delete event categories and forum categories they no longer need. Previously these could only be created, not removed.

NEW

Account deletion request

Members who want their account removed can now submit a deletion request directly from the app. The request goes to the HomeschoolGo team for processing.

FIX

Birthday reminders are working again

Student birthdays set through the migration wizard or profile pages were being saved to the wrong field, so birthday reminder emails weren't going out. All three paths that write a student's date of birth now use the same field, and the reminders are firing correctly again.

NEW

Canadian co-op support

Co-ops based in Canada can now set their country to Canada under Admin → Settings → General. Doing so switches member address fields to Province and Postal code, and charges families in Canadian dollars at checkout.

FIX

Staff fee exemption now applies when promoting from the waitlist

When an admin promoted a staff member from a waitlist to an enrolled seat, the system was incorrectly charging the class fee instead of waiving it. Staff members are now fee-exempt at promotion, consistent with direct enrollment.

POLISH

Print window closes automatically after printing

The print schedule window now closes on its own once you dismiss the print dialog, rather than staying open in the background.

FIX

Admin Settings page no longer crashes for some co-ops

Certain admin accounts were hitting a crash on the Settings page when loading some sections. The page now loads reliably for all co-ops.

FIX

Class enrollment no longer returns a 404 in some cases

A missing database relationship was causing class enrollment to fail with a 404 error for some families. The underlying data issue has been resolved.

NEW

Track parent and guardian birthdays

Guardians can now add their birthday to their profile. Year is optional. Admins see an upcoming birthdays panel on the dashboard so you can recognize and celebrate your community members.

NEW

Flexible class payment: enroll now, pay later

Co-ops can now choose how class fees are collected. Under Admin › Settings › Class enrollment, you can require Stripe payment at enrollment (the previous behavior) or switch to flexible billing. Families enroll immediately and are billed to their account for the co-op to collect later. You can set a co-op-wide default and override it per class. Staff and admin fee exemptions work in both modes.

NEW

Grace period when a HomeschoolGo subscription payment fails

If your co-op's subscription payment doesn't go through, HomeschoolGo now provides a grace period before any features are restricted. A banner on the admin dashboard lets you know, and a reminder email goes out so you have time to update your payment method without disrupting your families.

POLISH

My Classes groups by day and shows teacher names

The My Classes page now groups sessions by day of the week and includes the teacher's name next to each class. Rows are also clickable, so you can jump straight to a class from the schedule view.

FIX

Payments page charge types, categories, and labels corrected

Several display issues on the family Payments page have been fixed: charge type labels, accounting category badges, and the categories legend now reflect the actual transaction data correctly.

FIX

Edit forms no longer close when clicking the backdrop

Clicking outside an edit modal (the backdrop area) was dismissing the form and losing unsaved changes. Closing now requires pressing Cancel or the ✕ button.

FIX

Escape key properly exits edit mode

Pressing Escape while an edit form is open now reliably closes the form, restoring standard keyboard behavior.

FIX

SMS rejection codes now show actionable guidance

When Twilio rejects an outbound SMS with codes 30484 or 30513 (typically a carrier filter or number opt-out), the error message now explains what happened and what steps to take, rather than showing a generic failure.

FIX

Toll-free SMS registration is easier to get right the first time

The toll-free registration form now shows the CP-575 name-matching requirement as visible hint text rather than burying it in a tooltip. Entity name mismatch is the most common rejection reason. A required confirmation checkbox on the review screen gates submission, and error messages after a rejection are now specific and actionable instead of generic.

FIX

Page Builder text fields no longer drop spaces

Typing in a Page Builder text field (such as a repeater label) would occasionally drop a space mid-word. The underlying debounce loop that caused the feedback was removed.

FIX

Long family names no longer get cut off on the mobile payments list

On smaller screens, family names in the payments list were being truncated before you could read the full name. They now wrap correctly so no name gets clipped.

POLISH

Admin dashboard section headers are cleaner

The descriptive subtext that used to appear under each section heading in the admin hub has been removed. The headers now stand on their own, making the page easier to scan.

NEW

Affiliate referral QR code

The affiliate dashboard now generates a QR code for your referral link automatically. You can download it as a PNG to include in flyers, slide decks, or printed materials. A note on the page reminds you that changing your referral code invalidates any QRs already in print.

FIX

Family name, promo redemption count, and SMS counts no longer drift

Three long-standing data consistency issues are now fixed at the database level. A trigger keeps the family name in sync when the primary contact's name changes. Promo redemption counts and SMS delivery counts (recipient, sent, failed) are recomputed automatically whenever the underlying records change, so tallies stay accurate without manual correction.

FIX

Malformed co-op page URLs now show a not-found page instead of crashing

Navigating to a co-op page with an invalid or malformed ID in the URL previously caused an unhandled error. The app now validates the ID and shows a clean not-found page instead.

NEW

Plan renewal reminder emails

Co-op admins now receive reminder emails 30 days and 7 days before their HomeschoolGo plan expires. Each email includes the renewal date, the plan name, and a direct link to manage your subscription, so your co-op never loses access because a renewal slipped by unnoticed.

POLISH

Print your class schedule

My Classes now generates a clean, dedicated print view when you click the Print button at the top of the page. Sidebars and navigation are hidden, classes are laid out clearly, and multi-page schedules no longer get cut off. You can also trigger it with Cmd+P or Ctrl+P.

NEW

Edit volunteer shifts from the admin panel

Admins can now edit existing volunteer shifts directly from the Volunteer Policy page. Click the menu on any shift and choose Edit to open its details in a modal, pre-filled with the current values. Previously, changing a shift required deleting it and recreating it from scratch.

POLISH

Cleaner admin action menus throughout the app

Action buttons on list pages across the admin area have been consolidated into a consistent three-dot menu. The menus now use the same component everywhere, with the same size, positioning, and keyboard behavior, so the interface feels cohesive instead of each page doing its own thing.

POLISH

Mobile calendar header redesigned

The calendar header on mobile has been rebuilt in a calendar-app style. The month name and navigation controls are more compact and easier to reach with your thumb, leaving more room for the actual calendar grid.

FIX

SMS preview errors are now visible

When the Send to myself preview on the SMS compose form failed to send, the form previously showed nothing. Errors are now surfaced inline so you know to check your phone number or contact support.

NEW

Calendar defaults to month view, with side-by-side overlap in week view

The Community Calendar now opens in month view by default. In week view, events that overlap in time are displayed side by side instead of stacking on top of each other, so you can see everything scheduled at a glance without one event hiding another.

POLISH

Busy days in month view now expand with a click

When a day in the monthly calendar has more events than fit in the cell, a '+N more' link appears. Clicking it opens a popover showing the full list of events for that day. Nothing gets hidden on a packed week.

NEW

Import member records from HomeschoolLife, including emergency contacts

Co-ops moving from HomeschoolLife can now import their member data directly from a HomeschoolLife v2 CSV export. The import brings in student and family records along with emergency contacts for each student. Profile photos from the original system are copied into HomeschoolGo's storage rather than left as external links.

POLISH

Help Center: six new guides and article-to-article navigation

Six new help guides are now live covering the volunteer program, SMS setup, importing records, billing, Stripe receipts, and more. All help articles now have Previous and Next navigation links at the bottom, so you can move through related guides without going back to the Help Center index.

POLISH

Billing page redesigned with a summary card and cleaner family table

Admin > Billing has a new layout. A summary card at the top shows your co-op's total outstanding balance at a glance. The family payment table is more detailed and the Stripe connection panel is more compact. A fix also went in for credits not calculating correctly in the family ledger view.

NEW

Student Progress card on the family dashboard

The family dashboard now has a Student Progress section for each enrolled student. It shows grades by class, an attendance summary (present, absent, and excused counts for the term), and links directly to their full detail page. The student detail page has been expanded with better-organized sections for grades, attendance history, and the cumulative academic transcript, everything about a student's term in one place.

NEW

Treasurer CSV exports in Admin > Billing

Co-op admins can now download a payment summary as a CSV file from Admin > Billing. The export includes each family's total charges, payments, credits, and outstanding balance for the selected term, ready to open in a spreadsheet and share with your treasurer. The Billing page also shows your co-op's Stripe connection status at a glance.

NEW

Ten usability improvements to the Teaching section

A round of focused improvements landed across the Teaching section. Attendance is faster to take, class and student navigation is tidier, and several rough edges in the gradebook and roster views have been smoothed out. If the Teaching page is where you spend most of your co-op time, the day-to-day flow should feel noticeably more polished.

NEW

Stay signed in between sessions

HomeschoolGo now keeps you signed in when you close and reopen the browser, so you land directly on your dashboard instead of the login page each time. If you're on a shared device, use the Sign out button in the sidebar when you're done.

NEW

View any system email from the Communications page

The System emails tab in Admin > Communications > Email now has a View button on each entry. Clicking it opens a full preview of the exact email that was sent — enrollment confirmations, payment receipts, waitlist promotions, and other automated messages. Useful when a family says they didn't receive something and you want to confirm what went out and when.

FIX

Applications page shows a clear empty state and reviewed applications display correctly

Two fixes to Admin > Applications: when no applications have been submitted yet, the page now shows a proper empty state instead of a blank section. The reviewed-applications section was also failing to display applications that had already been acted on. Those now appear consistently regardless of when the review happened.

NEW

Search, filter, and sort incoming membership applications

Admin > Applications now has a search bar, status filters, and sort controls. Search by applicant name or email to find a specific application instantly. Filter by status — pending, approved, or denied — to focus on what needs your attention right now. Sort by newest, oldest, or applicant name. When you approve or deny an application, a link opens that family's full record so you can follow up without hunting through the member list.

POLISH

Long application answers can be collapsed while reviewing

When a membership application includes lengthy answers to custom questions, you can now collapse individual responses to show just the first few lines and expand them only when you want to read the full answer. This makes it easier to skim through a queue of applications without scrolling past walls of text.

NEW

HomeschoolGo plan status and auto-renew visible in admin Settings

Admins can now see their current HomeschoolGo plan name, renewal date, and auto-renew status directly on the Settings > General page, no need to navigate to Billing. There's also a toggle to turn auto-renew on or off right from that card, so you stay in control of your subscription without leaving the settings area.

NEW

Send yourself a test text before blasting your whole list

Before sending an SMS to all your families or members, you can now tap 'Send to myself' on the compose form to receive the message on your own phone first. This lets you verify the content, check formatting, and confirm your number is set up correctly, all without risking a premature send to everyone.

NEW

Check SMS carrier registration status on demand

The Texting setup page now has a 'Check now' button so you can refresh your toll-free or 10DLC registration status instantly rather than waiting for the next scheduled background sync. Useful when you've just resubmitted or are expecting an approval and want to see if it came through.

NEW

Email screen split into 'Email blasts' and 'System emails'

The Communications > Email screen now has two tabs. 'Email blasts' shows everything you've sent or scheduled as announcements. 'System emails' shows automated messages the platform sends on your behalf — enrollment confirmations, payment receipts, waitlist notifications, and so on. Each tab has its own history, filters, and delivery status, so you can find exactly what you're looking for without wading through unrelated messages.

NEW

View past email blasts and resend failed ones

Every email blast you've sent is now listed with its delivery status. Click any entry to open a full preview of the email exactly as recipients received it. If a send failed, a Resend button appears so you can retry without having to recreate the whole message.

POLISH

Action menus replace inline buttons on busy admin list pages

Several admin list pages, including Members and Applications, now group their per-row actions into a compact menu (⋮) instead of showing multiple buttons on every row. This cleans up visually dense lists and makes it easier to scan a long page. All the same actions are available; they're just one click further behind a tidy menu.

POLISH

Family quick-look card redesigned for mobile

The family quick-look panel that appears when you tap a family in the directory has been redesigned for smaller screens. Contact info, children, and action buttons are better organized and easier to tap on a phone or tablet, less scrolling, larger touch targets.

FIX

SMS carrier registration: phone numbers, retry flow, and rejection details improved

Several rough edges in the toll-free carrier registration process have been smoothed out. Phone numbers are now automatically formatted to the international format carriers require, so manual formatting mistakes no longer cause silent rejections. If your registration was rejected, the reason now appears at the top of the retry form so you know exactly what to fix before resubmitting. Resubmitting also reuses your existing registration record rather than creating a new one, which avoids duplicate submissions.

FIX

Plan card shows correct information for gifted and manually assigned subscriptions

If your co-op's HomeschoolGo plan was gifted or assigned by the team rather than purchased directly, the plan card in Settings now shows the right label ('Valid until' instead of renewal language) and appropriate action buttons, no more confusing wording that implied a recurring subscription when there isn't one.

FIX

Scheduled announcements and emails now go out at the right time

A bug in the background scheduling process was causing some scheduled announcements and email blasts to be delayed or skipped entirely. The scheduler has been fixed and tested. Messages now send within a minute of their configured time.

POLISH

Smoother scrolling, safe areas, and PWA behavior on iOS and Android

Several mobile experience improvements landed: the app now respects iOS and Android safe areas so content isn't hidden behind the notch or home indicator, native scroll bounce is back on scrollable lists, and breadcrumbs are no longer obscured by the top bar when using the app in full-screen PWA mode.

NEW

Volunteer shifts visible on the Community Calendar

Available volunteer shifts now appear on the Community Calendar alongside co-op events, so families can spot openings at a glance when planning their week. Each shift on the calendar shows the role, start time, and remaining capacity. Families can sign up directly from the calendar, no need to navigate to the separate Volunteer page.

NEW

Manage calendar events and volunteer shifts in a panel — without leaving the calendar

Clicking any event or volunteer shift on the Community Calendar now opens a quick-manage panel. Admins can view details, edit, duplicate, or delete directly from the panel. Creating new events or shifts works the same way — a '+ New' button in the calendar toolbar opens a choice of what to create, and the form pre-fills the date and time you clicked on. The calendar stays visible throughout.

NEW

Email blast scheduling now uses your co-op's time zone

When you schedule an email blast for a specific date and time, the send time is now interpreted in your co-op's configured time zone rather than server time. So if your co-op is set to US/Central and you schedule a blast for 9:00 AM, it goes out at 9:00 AM Central, no more mental math or off-by-an-hour surprises.

NEW

Preview your email announcement before sending or scheduling

The email compose form now includes a live preview panel so you can see exactly how your announcement will look in recipients' inboxes before you hit Send or Schedule. The preview reflects your subject line, body content, and any formatting. What you see is what families will receive.

NEW

Scholarship payment method — cover a family's balance without collecting money

Admins can now record a payment using a new Scholarship method. Selecting Scholarship when recording a payment applies the amount to the family's balance without requiring any money to change hands — useful for families receiving a need-based discount, a board credit, or any arrangement where you've agreed to cover part of their fees. The scholarship appears on the family's ledger with a clear label so the accounting stays transparent.

NEW

Mark individual charges as paid directly from the ledger

Each line-item charge in a family's ledger now has a Mark as paid button. Clicking it records a payment that exactly covers that charge and clears the outstanding balance for that line item, no need to manually enter the matching amount. This makes reconciling cash or check payments much faster when a family pays for a specific class or fee rather than their full balance.

NEW

Automatic refund when a student is demoted from a paid class back to the waitlist

If a student was promoted from the waitlist into a paid class and then needs to be moved back to the waitlist, HomeschoolGo now automatically issues a Stripe refund for the class fee. Previously, this required a manual refund step in Stripe after the demotion. The refund happens immediately when the demotion is confirmed and is reflected in the family's ledger automatically.

NEW

Email announcements sent from a co-op-specific address for better deliverability

Email announcements are now sent from an address at your co-op's own subdomain (yourcoopname.coop.homeschoolgo.app) rather than a shared HomeschoolGo address. This gives each co-op a distinct sending identity, improves deliverability, and makes it clearer to members which co-op the email is from. No setup is required. The address is provisioned automatically.

FIX

Email delivery and subject line cleanup

A handful of email formatting issues were fixed: the co-op name was incorrectly being prepended to subject lines in some cases, a broken 'View in app' link was removed from email footers, and a stray fixed-width attribute that caused layout issues in some email clients was corrected. Emails should now look clean and consistent across Gmail, Apple Mail, and Outlook.

FIX

Pages that intermittently showed blank or required re-login now load reliably

Several admin and member pages — including the Payments, Teaching, and Class Catalog pages — could intermittently return empty data or prompt an unexpected re-login, particularly when navigating between pages quickly. The underlying issue was that some pages were using the wrong database connection path in certain situations. All affected pages have been updated and the intermittent blank loads are resolved.

NEW

Transfer co-op ownership to another admin

Co-op owners can now hand off ownership to another admin without contacting HomeschoolGo support. Go to Admin > Settings and look for the Transfer Ownership option. The current owner stays on as a regular admin after the transfer. They don't lose access, they just no longer hold the Owner role. The new owner receives a notification confirming the change. Only the current owner can initiate a transfer.

POLISH

Six new accent colors for co-op branding

The color picker in Admin > Settings > Branding now includes six additional accent colors. The wider palette gives co-ops more options to match their brand identity. New colors appear alongside the existing choices. Pick one and it applies instantly across buttons, links, and highlights throughout the app for your members.

POLISH

Smarter autocomplete in admin forms

Several admin forms now offer autocomplete suggestions as you type. Grade range fields suggest values already used across your co-op's classes, so when you type 'High' you see 'High School' rather than starting from scratch every time. Venue fields autocomplete from your saved locations. Less retyping, fewer typos.

NEW

Inbox: presence, typing indicators, and live read receipts

Three new signals are now live in Inbox conversations. A green dot next to a member's name shows they're currently active in HomeschoolGo. A typing indicator appears in real time while they're composing a reply, so you know a response is on the way. Once your message has been read, a 'Seen' receipt appears below it, no more wondering whether something landed. Composing a new message now opens in its own dedicated panel, keeping the conversation list visible while you write.

NEW

Affiliate dashboard: vanity codes, payout requests, and short links

Several improvements to the HomeschoolGo affiliate program. Affiliates can now choose and update their own vanity referral code from the dashboard. Pick any available handle and change it whenever you'd like. When your balance reaches the minimum payout threshold, you can request a payout directly from the dashboard without waiting to hear from us. New applicants can select their preferred referral code right on the application form. Your referral link is also available as a compact short link at get.homeschoolgo.app/your-code.

POLISH

HomeschoolGo emails now show the app logo in Gmail

Emails sent from HomeschoolGo — announcements, sign-in links, notifications, and payment receipts — now display the HomeschoolGo logo as the sender avatar in Gmail. The logo appears next to the sender name in your inbox list and in the open email, making it easier to recognize legitimate HomeschoolGo messages at a glance.

FIX

Button hover colors follow your co-op's accent color

Hover highlights on buttons throughout the app now use your co-op's configured accent color rather than the default teal, so the entire interface stays consistently on-brand as you interact with it.

NEW

Click a calendar event to see details and manage it without leaving the page

Tapping any event on the Community Calendar now opens a quick-look modal showing the full event details — date, time, location, and description — plus the sign-up section. Admins see Edit, Duplicate, and Delete controls inline so common actions don't require navigating to a separate page. To open the full detail page (for example to copy a shareable link), click 'Open full page' inside the modal. Cmd/Ctrl+click on the calendar pill still opens the detail page directly in a new tab.

NEW

Volunteer shifts open in a modal too — sign up or manage without leaving the calendar

Volunteer shifts on the Community Calendar now open in a quick-look modal just like events. Families see shift details and can sign up or cancel right there. Admins get Edit, Duplicate, and Delete controls inline — and a new 'Manage roles & policy' link opens a focused modal for configuring shift types and the volunteer requirement without leaving the calendar. A 'Volunteer setup…' option in the calendar's New menu lets admins add or change shift roles for any term on the spot.

NEW

Short affiliate links — share get.homeschoolgo.app/YOURCODE in person

Affiliates now get a short, easy-to-type link at get.homeschoolgo.app/YOURCODE alongside their full referral URL, useful for flyers, in-person conversations, or anywhere a long link is awkward. Anyone with a code but not the link can go to get.homeschoolgo.app, enter their code, and reach the discount landing page. The affiliate dashboard and welcome email both show the short link. Existing longer referral links still work.

POLISH

Affiliate dashboard: change your code, one-click copy, and profile dropdown

Three improvements to the affiliate dashboard. You can now change your referral code directly from the dashboard via a Change Code modal, useful if you want the code to better match your name or brand. A one-click Copy button makes grabbing your link instant. And a profile dropdown in the header gives quick access to account settings and sign-out.

POLISH

Messaging: composing a new message opens as its own panel

Clicking the compose button in the Messaging dock now opens 'New message' as a separate panel docked alongside the conversation list, so the inbox stays visible while you pick a recipient and write. Previously, clicking compose replaced the inbox view entirely. The dock header has also been refreshed with your profile picture and a collapse toggle.

POLISH

Directory privacy setting moved to the Families page

The setting controlling who can see each family's contact information in the member directory has moved from Admin > Settings to the top of Admin > Families, right next to the directory it controls. The setting works exactly as before; it's simply easier to find.

NEW

Search, filter, and sort the member list

Admin > Members now has a search bar and filter controls. Search by name or email to find any member in seconds. Filter by role (family, teacher, admin) or membership status (active, withdrawn). Sort by name or join date. Your filters stay in place as you navigate into a member record and come back, so you can work through a filtered list without losing your place each time.

POLISH

Smoother message compose experience on mobile

Composing new messages on a phone is now more comfortable. The compose input no longer gets covered by the keyboard on iOS and Android, the recipient selector is easier to use on a small screen, and the send button stays reachable while you're typing.

NEW

Affiliate referral program — earn a commission for every co-op you refer

HomeschoolGo now has a partner affiliate program. If you know other co-ops that could benefit from the platform, you can apply at affiliates.homeschoolgo.app to become an affiliate. Approved affiliates receive a unique referral link and a vanity code they can customize. Co-ops that sign up through your link get 30% off their first year, and you earn a commission for every conversion. Your affiliate dashboard shows your referrals, commissions, and payout history, and you can request a payout directly once your balance reaches the minimum threshold.

NEW

Referral discount confirmed at checkout when using an affiliate link

When a new co-op signs up through an affiliate referral link, the 30% discount is now shown prominently on the pricing page, the login page, and in the checkout flow, so there's no ambiguity about whether the discount applied. A banner confirms the referral code and the discount amount before payment.

NEW

Class registration windows now appear on the family calendar

Open enrollment windows are now shown directly on the Community Calendar so families can see at a glance when registration opens and closes for the current term. Each window appears as a calendar event with its name and dates, no more asking the admin or hunting through announcements to know when to sign up for classes.

FIX

Far-future events now appear on the community calendar

Events scheduled many months out were sometimes missing from the Community Calendar. The calendar would only load events within a near window and silently skip the rest. The calendar now fetches all upcoming events on demand regardless of how far out they are, so any event an admin creates will appear for families.

NEW

Duplicate any event or volunteer shift with one click

Admins can now duplicate events and volunteer shifts directly from the admin area. A Duplicate button on each event creates a pre-filled copy — same name, date, time, location, and settings — that you can adjust before saving. Duplicating a volunteer shift opens a focused modal so you can review and change the details (date, time, capacity) before confirming. This makes setting up recurring events or similar shifts on different dates much faster than re-entering everything from scratch.

FIX

Stripe refunds and payment disputes now recorded in HomeschoolGo automatically

When a payment is refunded through Stripe, whether you initiate it from the Stripe dashboard or a family disputes a charge, HomeschoolGo now picks up the event automatically and records it on the family's ledger. Refunded amounts are reflected in the family's balance without any manual entry on your end. Disputed charges are flagged in the ledger so you have a record in HomeschoolGo alongside the dispute in Stripe.

FIX

Family balance now correctly excludes refunds

The outstanding balance shown in Admin > Billing was counting all charges rather than net charges after refunds. A family who had a charge partially or fully refunded could show a higher balance than they actually owed. Balances now correctly account for all refunds so what you see matches what families are truly on the hook for.

FIX

My Classes page updates immediately after unenroll or waitlist promotion

After an admin unenrolled a student from a class or promoted them from the waitlist, the family's My Classes page would sometimes continue to show stale information until the page was refreshed manually. The page now updates right away to reflect the change.

FIX

Time zone fixes across events, emails, and the dashboard

A broad set of time zone corrections ensures that every place a time appears in HomeschoolGo now shows your co-op's configured local time zone, not the server's. The fixes cover: the dashboard's 'Upcoming events' and volunteer shift times, event times on the co-op's public page, event signups and confirmation emails, enrollment-opens and signup-deadline dates in the registration panel, and 'morning of' event reminder emails. Co-ops outside the Eastern time zone were most affected by the earlier incorrect display.

FIX

Page Builder preview no longer goes blank

Clicking the Preview button in the Public Page Builder would sometimes render a blank frame instead of your live page preview. The issue has been resolved. The preview now loads reliably every time.

FIX

Mobile navigation menu covers the full screen when open

On phones, the navigation menu occasionally left a gap where content behind it was still visible or accidentally tappable while the menu was open. The menu now properly covers the full screen.

FIX

Co-op Stripe connection issues now self-heal with clear guidance

When a co-op's Stripe Connect link has expired or been disconnected, HomeschoolGo now detects the issue automatically and surfaces a clear prompt to re-complete setup, including a direct link to the right step. Previously, a broken connection could silently cause checkout to fail with a confusing error. Admins now see an actionable message right away rather than a generic error that was difficult to diagnose or explain to families.

NEW

Unenroll a student — admins can issue a refund at the same time

Admins can now remove a student from a class and optionally issue a Stripe refund in the same action, no need to cancel the charge in HomeschoolGo and then separately log into Stripe. Open the class in Admin > Class Catalog, find the student on the roster, and click Unenroll. If the student paid online, a checkbox lets you trigger the refund immediately. For free classes, students can also drop themselves directly from My Classes without contacting an admin.

NEW

Gradebook: CSV export, feedback notes, exemptions, and sort by grade

Four additions to the teaching gradebook. Export the full grade sheet as a CSV to open in Excel or Google Sheets. Find the Export button above the grid. Leave free-text feedback on any assignment for any individual student by clicking the speech-bubble icon in their cell. Mark a student Exempt on a specific assignment when it doesn't apply to them. Exempt students are excluded from the class average. Sort the student roster by their current average grade using the sort control in the student column header.

NEW

Custom application fields can now be saved as student records

Custom fields on your membership application form — shirt size, emergency contacts, dietary restrictions, or any other per-child information you collect — can now be marked as student attributes. When marked, the answer is saved to the student's record and stays attached to them term over term, even if the child re-applies or joins a second co-op. Fields not marked as student attributes continue to work as application-only responses, exactly as before.

NEW

Teachers are notified when students enroll in their class

When a student successfully enrolls in a class — whether through Stripe checkout, an admin-placed enrollment, or a waitlist promotion — the assigned teacher receives an in-app notification. No need to refresh the roster to know when a new student has joined.

NEW

Approval emails now come from your co-op, not HomeschoolGo

When you approve a membership application, the welcome email now uses your co-op's name as the sender and sets your co-op's contact email as the reply-to address. The subject line reads '[Your Co-op] membership approved' so families recognize it immediately and know who to reply to with questions.

FIX

Event and volunteer-shift times were showing several hours off

Event times and volunteer-shift times in the admin and teaching calendar were rendering in a fixed offset rather than in the co-op's configured time zone, which meant times appeared off for co-ops not in the Eastern time zone. Times now render correctly for every time zone.

FIX

Admin class list and Teaching tab now show the real seat count

The enrollment count shown on class cards in Admin > Class Catalog and on the Teaching tab was sometimes stale or approximate. Both now display the live count pulled directly from the enrollment table.

POLISH

Billing actions condensed into a single menu

The four action tiles at the top of the Admin Billing page — Charge family, Record payment, Apply credit, and Bulk invoice — have been replaced with a single '+ New' button. Click it to open a menu and pick the action you need. The forms themselves are unchanged; this just clears up space at the top of the page, which makes a noticeable difference on smaller screens.

NEW

Redesigned member directory

The Families directory has been rebuilt. Members can now switch between a Cards view (photo, name, and key details at a glance) and a Table view (sortable rows with more columns). Clicking any card or row opens a quick-look modal with contact info, church, and children, no separate page required. Admins get an Edit button directly in the modal to update a family's profile, manage their students, or withdraw and reactivate their membership. The redundant separate admin directory is gone; everything is in one place.

NEW

Family ledger slide-over in Billing

Clicking a family name in Admin > Billing now opens their full charge and payment history in a slide-over panel. You can see every line item, cancel a charge, and review the ledger without navigating away from the main billing list. Your search, filter, and sort settings stay in place. An Export CSV button downloads the current family's ledger for your records.

NEW

Compose and schedule email announcements

The Email tab in Admin > Communications is now a full compose hub, matching the capability of the SMS tab. Choose your audience (all members, board, volunteers, or specific families), write your subject and rich-text body, preview the recipient list before sending, and either send immediately or schedule for a future date and time. A history section shows all past email blasts with sent and skipped counts. Scheduled emails can be cancelled before they go out.

NEW

Send a balance reminder email to a family

A Send Reminder button in the family ledger slide-over emails every account holder in that family a summary of their outstanding balance along with a direct link to pay. Useful when a family seems to have missed a billing notification or hasn't responded to a direct message.

FIX

Co-op sign-in links no longer accidentally create duplicate co-ops

When someone clicks a co-op's branded sign-in link and doesn't have an account yet, the app now guides them to that co-op's join page rather than the generic new-co-op creation screen. Previously, visitors who completed sign-up this way were occasionally creating empty duplicate co-ops instead of joining the one they intended. The fix remembers the intended co-op through the entire sign-in flow — including social sign-in with Google or Apple, so new members land in the right place.

NEW

Photos in the custom page rich text editor

Admins editing custom subpages can now insert photos directly into the content. Drag an image from your desktop onto the editor or click the image button in the toolbar to upload, no external hosting required. Once inserted, controls let you resize the image by dragging a corner handle and align it left, center, or right within the text. The upload limit is 10 MB per image.

NEW

Co-op payments now show your co-op's name and branding on receipts

Family payments for classes, events, and join fees are now processed as direct charges on your co-op's own Stripe account, making your co-op the merchant of record. Stripe sends receipt emails automatically using your co-op's name, support email, and branding, not HomeschoolGo's. To make the most of this, set your public business name and support email in your Stripe dashboard; a step-by-step guide is available at /help/stripe-receipts. This applies to all new payments going forward.

FIX

Clearer message when a co-op's Stripe connection needs attention

If a co-op's Stripe account has been revoked or can't accept charges, checkout now shows a clear explanation instead of a confusing error. Admins see the same guidance they'd get during initial setup so the path to resolution is obvious.

FIX

Stripe receipts sent for earlier card payments

Co-ops that collected card payments before the direct-charge switch can now send official Stripe receipts for those earlier transactions. Receipts are generated through Stripe and delivered to the email address on file for each payment.

NEW

Schedule a text message for future delivery

Admins can now write an SMS announcement and set it to go out at a specific date and time, useful for co-op-day reminders, registration opens, or any message that needs to land at the right moment rather than right now. A 'Schedule for later' option on the SMS compose form opens a date and time picker. Scheduled messages appear in a section on the Texting page with a Cancel button if plans change. Messages are sent within about a minute of their scheduled time.

NEW

Assignments now a unified to-do list

The family Assignments view has been redesigned from a week-by-week grid into a single list that shows everything across all your students at once. Assignments are grouped by urgency — Overdue, Due this week, Upcoming, No due date, and Done — and sorted by due date by default. Filter by student, class, or status; sort by due date, class, points, or recently assigned. Students can mark an assignment Turned in directly from the list, which tracks their own progress separately from any grade the teacher enters.

POLISH

Billing page: summary overview and action modals

The admin Billing page has a more actionable layout. At the top, a summary card shows total outstanding for the term, a progress bar of how much has been collected vs. billed, and a quick filter to show only families who still owe money. The four billing actions — Charge family, Record payment, Apply credit, and Bulk invoice — now open in a modal instead of expanding inline, so the family list stays visible while you work. The family list itself is now searchable and sortable.

POLISH

Communications split into its own admin section with a dedicated Texting page

Admin tools are now organized more tightly. Communications (announcements, messaging) has its own section in the admin hub, separate from the Operations tools. Within Communications, SMS setup and your toll-free number have moved to a dedicated Texting tab, so Announcements and Texting each have their own focused page instead of sharing a single tabbed view. Your provisioned toll-free number is now shown prominently on the Texting page so you can easily share it with members.

NEW

Communications hub: announcements, SMS, and email log in one place

Admin > Communications is now a three-tab hub. The Announcements tab lets you compose a broadcast email to all members, a specific class, or filtered by grade, and shows a history of recent messages. The SMS tab shows your carrier registration status and monthly usage, and lets you send a text blast to opted-in members. The Email tab is a searchable delivery log for every message your co-op has sent, filter by type (auth, notification, billing, marketing) and delivery status (delivered, opened, bounced, complained) to track down any message in seconds.

NEW

Notifications open as a swipe-to-dismiss panel on mobile

Tapping the bell icon on a phone or tablet now opens a notification panel that slides up from the bottom of the screen. Swipe it down to dismiss without leaving the current page. A badge on the bell shows how many unread notifications you have. A full notification history is also accessible from the mobile menu.

NEW

Inbox opens as a sheet on mobile — no page navigation required

Opening the Inbox on a phone no longer takes you away from whatever page you're on. It now slides up as a panel so you stay in context. Composing a new message works the same way — tap New Message inside the sheet and write from there.

NEW

Help chat now lives inside the mobile nav pill

The support chat button has moved out of a separate floating bubble and into the pill navigation bar at the bottom of the screen. Tap the pill and look for the chat icon. This keeps the screen uncluttered while making support one tap away wherever you are.

NEW

Students now appear in global search (admins)

Pressing Cmd+K on Mac (or Ctrl+K on Windows/Linux) and typing a student name now returns matching students in the search results, linking directly to their record in the admin area. Families and teachers were already searchable; students are now included. This feature is visible to admins only.

FIX

Family balance and payments now show the right term's data

Several places were displaying the wrong term's charges and balance — the Payments page, the family checkout flow, and the balance summary cards on the dashboard. All of these now consistently pick the active term, so what you see matches what's actually due for the current period.

FIX

Pay button works reliably from the family Payments page

Clicking Pay from the Payments page to settle an outstanding balance could fail silently. The page looked like it was starting checkout but nothing happened. The underlying issue has been fixed. The button now reliably opens Stripe Checkout.

FIX

Approval and invite emails now include your co-op's name

Application approval emails and member invite emails were using generic HomeschoolGo branding instead of your co-op's name. They now say "You've been approved to join [Your Co-op Name]" and include your co-op's name in the subject line, consistent with other emails members receive from your co-op.

FIX

Class catalog could appear empty for some co-ops

A server-side permissions issue was causing the class catalog to return an empty list for some co-ops, even when classes were published and registration was open. Affected families would see a blank catalog page. The issue has been resolved; the catalog now loads reliably.

FIX

Scheduled SMS messages interrupted mid-send are recovered automatically

In rare cases, such as a server restart mid-dispatch, a scheduled SMS batch could be cut off partway through, leaving some recipients who never received the message. HomeschoolGo now detects these interrupted batches and resumes delivery automatically, so every family on the list gets the message even if something went wrong during the original send.

FIX

Family payments now route to your co-op's Stripe account

A routing issue has been corrected: all family payments — class enrollment fees, join fees, event signups, and balance payments — are now always directed to your co-op's connected Stripe account. Previously, some payment flows silently collected funds into the HomeschoolGo platform balance instead. Co-ops without a Stripe account connected will now see a clear error at checkout explaining what's needed, rather than funds going somewhere unexpected.

NEW

Manually promote a student from the waitlist

Admins can now immediately promote a waitlisted student to an enrolled seat without waiting for a spot to open automatically. Open the class in Admin > Class Catalog, find the student on the waitlist, and click Promote. The student is enrolled right away, the seat count updates, and any class fee is added to their account.

NEW

Notifications for public page contact form submissions

When a visitor fills out the contact form on your co-op's public page, an in-app notification now alerts admins. All submissions are stored and viewable in Admin > Page Submissions. Custom sidebar pages can now also be assigned an icon. Go to Admin > Custom Pages and pick one when creating or editing a page.

POLISH

Redesigned mobile navigation

The navigation menu on phones is now a floating rounded panel that opens above the persistent bottom pill. The menu button morphs from a hamburger to an × when the menu is open, making the close action obvious without a separate button inside the panel. The page stays visible behind the menu rather than being fully covered.

FIX

Teacher payout recording was failing for all co-ops

An ambiguous column reference in the database caused every attempt to record a teacher payout to fail silently. Admins would click Record payout and nothing would happen. The outstanding balance stayed unchanged. This has been fixed. All pending payouts can now be recorded normally, and the Teacher Payouts page reflects the correct outstanding balances.

FIX

Custom domain 'www' redirect now set up automatically

When a co-op enables a custom domain, HomeschoolGo now automatically provisions the www version of the domain alongside the bare domain. Previously, visitors who typed www.yourcoopname.org would hit an SSL mismatch error instead of landing on the co-op's page. Now both the www and non-www addresses work without any extra DNS steps on your part.

NEW

Alert when your co-op name is already in use

If you enter a co-op name during signup that closely matches an existing co-op on HomeschoolGo, you'll see a warning before the account is created. This prevents accidental duplicates and helps you pick a distinct name up front, particularly useful for regional co-ops that sometimes share initials or names.

NEW

Schedule SMS announcements to send at a future time

When composing an SMS announcement, you can now choose a specific date and time for delivery instead of sending immediately. The message is queued and goes out at the scheduled time, useful for announcing upcoming events at the right moment, or drafting messages in advance without having to come back to send them.

NEW

Provisioned toll-free number shown on the text messaging page

The text messaging settings page now displays your co-op's provisioned toll-free number so you always know which number your SMS announcements come from.

NEW

Gradebook v2 — spreadsheet-style grade entry

The teaching gradebook has been redesigned as a full spreadsheet grid. Click any cell to enter a grade. Tab moves to the next student in the same column, and the arrow keys move in any direction. To fill in a whole assignment column at once, paste grades copied from a spreadsheet: click the first cell in the column, then Ctrl+V (or Cmd+V) and grades fill down automatically. A class average appears in the footer of each assignment column. Grades save as you type with no Submit button needed. On mobile, the gradebook switches to a single-column layout for readability.

NEW

Teacher roster now shows parent contact information

A Contacts tab on each class's roster page now lists the parent email and phone number for every enrolled student. Teachers can use this to reach a family quickly without leaving the app. The contact details were previously only visible by expanding an individual student row; the new tab surfaces them for the whole class in one place.

NEW

Dark mode

HomeschoolGo now has a full dark theme. Go to My Profile and find the Theme setting, choose Dark to switch immediately, or System to follow your device's current preference. Every page across the member area, admin dashboard, and teaching section has been updated. Light mode remains the default.

NEW

Full class descriptions readable in the member catalog

Families can now read the complete class description directly in the Class Catalog, no need to open each class to see what it covers. Descriptions with rich text formatting (bold, lists, links) render correctly inline. This makes it easier to compare classes and decide what to register for without extra clicks.

NEW

Grade filter auto-selects your student's grade level

When you open the Class Catalog, the grade filter now automatically narrows to your student's current grade level, so you see age-appropriate classes right away instead of everything. Clear or change the filter anytime. If you have multiple students enrolled, the filter defaults to the grade of your first active student. Classes with no grade range set always appear regardless of the filter.

POLISH

Profile redesign — clean summary view with edit-in-sheet

My Profile has a new layout: a clean read-only summary shows your photo, name, contact info, and preferences at a glance. To change something, click Edit on any section to open a focused slide-out sheet with just those fields, so updating a phone number doesn't mean scrolling past unrelated settings. Children's details and notification preferences work the same way.

FIX

Magic link sign-in handles already-used links gracefully

Clicking a magic sign-in link that was already consumed — for example because your email client pre-fetched it, or you clicked it twice — now checks whether you're already signed in first. If you are, you're redirected to your dashboard. If you aren't, you're prompted to request a new link. Previously, a consumed link always showed an error page regardless of session state.

FIX

Overlapping registration windows no longer block enrollment

When two registration windows overlapped (such as a priority window and a general-access window running concurrently), some families would see an 'enrollment not open' message even though they were inside a valid window. The enrollment gate now handles overlapping windows correctly.

FIX

Multi-co-op families see the right students when enrolling

Families who belong to more than one co-op could sometimes see students from the wrong co-op listed on the enrollment form. Enrollment now always resolves the family record tied to the current co-op, so only the correct children appear.

NEW

Remove a student from a class roster

Admins and teachers can now remove individual students from a class roster directly from the class detail page. The removal is immediate, the seat opens back up, the family's enrollment record is cleared, and any associated charge is flagged for the admin to handle. Useful for last-minute drops, mistaken enrollments, or any situation where the normal drop-request flow isn't the right tool.

NEW

Withdrawn families no longer appear in the directory

Families whose membership has been withdrawn (suspended) are now hidden from the member directory and family lists. Other members won't see them while they're inactive, which keeps the directory clean and avoids confusion. Admins can still view withdrawn families from Admin > Members.

FIX

SMS carrier registration handles personal-email rejections automatically

Twilio occasionally rejects a toll-free registration because the contact email on file is a personal webmail address (Gmail, Yahoo, etc.) rather than a domain-specific one. HomeschoolGo now detects this specific rejection, automatically provisions a free co-op email alias (like [email protected]), and resubmits the registration without any action on your part. All replies to that address are forwarded to the contact email you originally provided, so you don't miss anything.

FIX

Teaching page no longer errors for teachers who haven't set up a family

Teachers without a linked family record would see an "Account not linked to a family" error when visiting My Classes. The Teaching page now loads cleanly for those accounts. The family-specific section simply stays empty until they opt to set one up.

POLISH

Admin "Team" page renamed to "Members"

The admin section formerly called Team is now called Members to better match what it actually does, managing co-op members, their roles, and their status. All links and navigation labels have been updated; any existing bookmarks to the old URL redirect automatically.

NEW

Teachers can set up their own family record

Teachers who joined without adding children, and later decide they also want to enroll their own kids, can now set up a family record on their account without contacting an admin. Open My Profile and click the 'Set up your family' card. A family record is created on your account immediately, and you can add children and enroll them in classes right away. The family appears in the co-op's member directory automatically; no re-approval is needed.

NEW

Co-op sign-in and join pages now match your co-op's brand

When members visit your co-op's custom domain or sign-in link, the login and join pages now display your co-op's name, logo, and accent color, consistent with the rest of the member experience. Previously these pages showed generic HomeschoolGo branding regardless of which co-op you were signing into.

FIX

Sign in with Google and Apple now works on co-op custom domains

Members signing in via OAuth (Google or Apple) on a co-op's custom domain were sometimes dropped into an error state because the authentication callback couldn't complete on that domain. The login flow now routes the OAuth exchange through the main app domain automatically, so social sign-in works reliably from any URL, the co-op's vanity domain or the default app address.

FIX

Suspended members see a clear message instead of an onboarding prompt

Members whose access was suspended by an admin were incorrectly seeing the new-member onboarding checklist instead of a clear explanation of their account status. Suspended members now see an informative notice explaining the situation and how to contact their co-op admin.

FIX

Retrying a failed SMS registration no longer creates a new phone number

When a toll-free SMS registration was rejected and resubmitted, HomeschoolGo was provisioning a brand-new phone number on each retry instead of reusing the existing one. This wasted carrier fees, reset the position in the priority approval queue, and changed your co-op's SMS number unexpectedly. Retries now reuse the original number.

POLISH

Mobile navigation rebuilt

The mobile navigation has been rebuilt from scratch. The Classes page is now accessible from the nav on every screen, not just the dashboard. Tapping the co-op name or logo in the header takes you back to your dashboard. And co-op names that were previously getting cut off in the header or drawer now fit correctly at any length.

NEW

Update your children's allergy and medical notes from My Profile

Families can now add or edit allergy and medical notes for each child directly from My Profile, no need to go through your co-op admin or re-submit your application. Open My Profile, scroll to the Children section, and click the edit button next to any child. The notes are immediately visible to admins and teachers on the class roster.

FIX

Admin and teacher rosters display allergy and medical notes

Class rosters in the admin and teacher views now correctly show allergy and medical notes from enrolled students' profiles. Previously these notes were stored but not reliably surfaced on the roster.

NEW

Teacher payouts for paid-teacher co-ops

Track what each teacher has earned and record payouts on your own schedule. As families pay for classes through Stripe, HomeschoolGo automatically records the earning against the assigned teacher. When you're ready to pay — by check, Venmo, Zelle, or any method you prefer — open Admin > Reports and click Teacher payouts to select which earnings the payment covers and mark them as settled. Teachers see their own running totals and payout history under Teaching > Earnings. For co-taught classes or other situations the automatic flow can't handle, admins can add manual adjustments. Each teacher can only see their own ledger; cross-teacher totals are only visible to admins.

NEW

Block-schedule view for your public class catalog

Your co-op's public class catalog (at /co-op/your-slug/classes) now has a List / Grid toggle. List view stays the default, compact and easy to skim. Grid view arranges classes into a time × day block schedule so a prospective family can see at a glance what fits in their week. Only days with at least one published class appear, and on mobile the grid stacks into per-day sections for readability. You can deep-link directly to the grid by adding ?view=grid to the catalog URL.

POLISH

Class detail always shows current seat count

The class detail panel now prominently displays how many seats are available alongside the total capacity, for example, "4 of 12 seats filled." A "Full" ribbon appears on classes with no open spots, and a scarcity note ("2 spots left") appears on classes that are nearly full, so families can act quickly before a popular class fills up.

NEW

Register multiple students in one shot

When registering for a class, you can now enroll all of your children in a single flow, select each student you want to add, confirm the details, and they're all registered at once. Previously you had to repeat the process separately for each child.

NEW

Configurable application join fee

Admins can now set a fee that families pay when their membership application is approved. The fee can be configured as a flat amount collected through Stripe at approval time, or tracked manually if your co-op collects dues outside the platform. Set it up under Admin > Applications > Application form. Families see the fee amount on the join form before they submit, and on the application confirmation page when they're approved.

NEW

Class catalog search, day grouping, and more

The family-facing class catalog has been significantly upgraded. A search bar lets you filter by class name or teacher. A 'Hide enrolled' toggle removes classes your students are already in, so you can focus on what's still available. Classes can now be browsed grouped by day of the week, handy when you're building a schedule that fits a specific day. The fee for each class is shown directly on the card.

NEW

Rich text class descriptions

Class descriptions in Admin > Class Catalog now support bold, italics, lists, links, and other formatting. Families see the formatted description on class detail pages and on the public catalog. Previously descriptions were plain text only.

NEW

Outstanding balance blocks enrollment and event signups

Families with any unpaid balance on their account are now blocked from enrolling in new classes or signing up for paid events until their balance is cleared. An explanatory message appears in place of the enrollment button. Admins can resolve the block by recording a payment, adding a credit, or cancelling the outstanding charge from Admin > Billing.

POLISH

Redesigned class cards across the app

Class cards in the catalog and on the dashboard have a new layout: capacity shown as a visual bar so you can see at a glance how full a class is, fees displayed clearly alongside the class details, and a cleaner overall card structure. Full classes float to the bottom of the list so open seats are always easy to find.

POLISH

Admin class list: search, filter, sort, and expandable descriptions

The Admin > Class Catalog list is now a card-based view with a search bar, status filter, sort controls, and expandable descriptions directly in the list, no need to open each class to read its description. Grade level fields now autocomplete from values already used in your co-op, so you don't have to retype the same ranges.

POLISH

Admin dashboard reorganized

The admin dashboard tools have been reorganized and the visual style updated. Icons are now consistent across the entire admin area, and the layout is calmer and easier to scan.

FIX

Signing in takes you back where you were

If your session expired while you were on a specific page, or you were sent a link that required sign-in, you now land back on that original page after signing in, instead of always being redirected to the dashboard.

FIX

Joining a waitlist no longer charges upfront

When a class is full and you join the waitlist, no payment is collected at that point. Previously, families checking out for a paid class that filled up during checkout were unexpectedly charged when landing on the waitlist. Waitlist enrollment is now always free; payment is only collected if you're promoted to a seat.

NEW

Join form now collects email, phone, and allergies per child

When applying to join a co-op, the form now includes optional fields for each child: a personal email address, a phone number, and any allergies or medical notes the co-op should know about. If your co-op needs health and contact information at application time, families can provide it right away. The data is saved with the application and automatically transferred to the student record when the admin approves.

FIX

Class catalog now defaults to your next upcoming term

When no term is currently active, the public class catalog now selects the soonest upcoming term by default, the one most relevant to families who are browsing and planning ahead. Previously it could land on a term far in the future. If no upcoming term exists, it falls back to the most recently ended term.

FIX

Waiver "required" toggle now saves correctly

When an admin turned off the "required" setting on a waiver, it was still being saved as required due to a form-processing bug. The toggle now saves as intended. Waivers marked optional will be optional for applicants.

FIX

Admin pages with search filters no longer flash an error on load

The Classes, Directory, Payments, Registration, and Terms pages, which support URL search parameters like ?term=..., could briefly show a React error when first loaded. This has been resolved and all five pages now load cleanly.

FIX

Public class catalog no longer crashes for co-ops with unusual time zone settings

A small number of co-ops had a time zone value stored that wasn't recognized by the browser's internationalization library. This caused the public class catalog page to crash with a blank screen for visitors. The catalog now falls back gracefully to UTC in that case, so the page always loads.

NEW

Choose which term appears on your public class catalog

Admins can now pin a specific term on their public class catalog. In Admin > Settings > Public Page, a new Catalog Term selector lets you choose any term, or leave it on Auto to use the smart default, which shows your currently active term (or your most recent term when no term is running). This also fixes a bug where a future term could appear in the catalog instead of the current one.

NEW

Drag-and-drop image uploads in the Page Builder

Every image field in the Public Page Builder now shows a click-or-drop upload area as the primary way to add photos. Drag an image from your computer directly onto the field, or click to open the file picker, no need to find and paste a URL. If you do prefer to use a URL, a toggle is available. The upload limit is 10 MB per image. This applies to hero backgrounds, gallery photos, team member photos, the co-op logo, and any other block that includes an image field.

POLISH

Accurate mobile and tablet preview in the Page Builder

The Desktop / Tablet / Mobile preview in the Page Builder editor now renders your page in a real browser viewport for each size. Previously, the preview panel was just a width-constrained view inside the editor window, which meant mobile and tablet layouts didn't always reflect what visitors on those devices would actually see. Now the Mobile preview shows the genuine 390 px phone layout and the Tablet preview shows the genuine 820 px tablet layout, so what you see matches what your visitors see.

POLISH

Teaching section uses tabs instead of sub-menu items

The Teaching section in the sidebar is now a single item. Your class list and Earnings are accessible as tabs at the top of the Teaching page, rather than separate sidebar entries. Direct links to /dashboard/teaching and /dashboard/teaching/earnings still work as before.

POLISH

Teachers can apply via the regular co-op join link

The co-op join form now treats the Children section as optional. Teachers applying to join a co-op can leave that section empty. The system automatically recognizes applications without children as teacher applicants, and they appear in the admin's application queue with a Teacher badge. There's no longer a separate teacher invite link; admins share one join link with everyone and use the approval step to decide which role each applicant gets.

FIX

Subscription plan always reflects your latest payment

A nightly reconciliation now runs in the background to keep your co-op's subscription status in sync with Stripe. In rare cases, such as a network hiccup at the exact moment checkout completed, an account could show as a free trial even after a successful payment. This background check detects and corrects any drift automatically, so plan upgrades take effect reliably without needing to contact support.

NEW

Paid class enrollment via Stripe Checkout

When a class has a fee and your co-op is connected to Stripe, families now pay through Stripe Checkout at the time of registration, no separate invoice needed. A fee breakdown appears on the registration form before checkout begins. If payment is completed and the class filled up in the meantime, the student is placed on the waitlist automatically. Free classes still enroll instantly as before.

NEW

Invite-only enrollment windows

Admins can now mark a registration window as invite-only. The system generates a shareable secret link. Send it to the families who get early access (returning families, board members, etc.) and they can enroll while the window stays closed to everyone else. Create or edit a window from Admin > Registration to find the option.

NEW

Grade level field and filter in the class catalog

Admins can now set a grade level range on each class (e.g., Grades 3–5 or High School). Families browsing the class catalog can filter by grade to quickly find classes appropriate for their student. The grade label also appears on class detail pages and in the enrollment roster.

NEW

Public class catalog on your co-op's page

Admins can optionally share their full class catalog on the co-op's public page. When enabled in Admin > Settings > Public Page, published classes appear at a /classes path on your public site and a Classes link is added to the public page navigation. This lets prospective families browse your offerings before they apply.

NEW

Allow all teachers to view any class roster

A new setting in Admin > Settings > Members lets you allow every teacher on staff to view rosters and take attendance for any class, not just the ones they're personally assigned to. Useful for substitute coverage or co-op days where multiple teachers help out. The setting is off by default.

NEW

Import your existing website into the Public Page Builder

The Public Page Builder now includes a site import wizard. Enter your current co-op website's URL and HomeschoolGo will crawl your pages, extract your real content — headings, text, and structure — and generate a starting layout you can customize. Most common website formats are supported, so you're not starting from a blank page.

FIX

Term management improvements

Three fixes to how terms work in the admin area: the active term no longer disappears from the term switcher when you create a future one; duplicate term names now show their date range so you can tell them apart; and deleting a term now shows clear confirmation feedback and navigates you to the nearest remaining term instead of leaving you on a blank screen.

POLISH

Consistent design across all notification emails

All outgoing emails — announcements, event signups, A2P registration updates, magic-link sign-ins, password resets, and account confirmations — now share a single visual design: a clean white card with a teal accent, clear typography, and your co-op's name in the header. Whether you receive a co-op announcement or a one-click sign-in link, the email now looks like it came from the same place.

NEW

Getting Started guide for new admins and families

A step-by-step onboarding checklist now appears as a floating panel at the bottom of your dashboard when you're new to HomeschoolGo. For admins, it walks through creating a term, inviting families, setting up classes, and publishing your public page. For families, it covers completing your profile, adding your students, enrolling in classes, and signing up for a volunteer shift. A circular progress indicator tracks how far along you are, and each step links directly to the relevant page. The guide dismisses itself once your setup is complete.

POLISH

Redesigned navigation on phones and tablets

Navigation on mobile has been significantly improved. On phones, a slim floating pill at the bottom of the screen replaces the full-width bottom bar, keeping the app chrome tidy while you're reading. On tablets, a hamburger button in the top corner opens a slide-out drawer. The Inbox on mobile now has a Close (×) button so you can dismiss it without navigating away, and composing a new message opens as a full-screen sheet so you stay in context. Touch targets throughout the sidebar are also larger and easier to tap.

FIX

Command palette autofocuses on iOS

The command palette, opened with Cmd+K on Mac or Ctrl+K on Windows/Linux, now places the cursor in the search field automatically when opened on iOS, so you can type immediately without an extra tap.

POLISH

Cleaner sign-in flow with show/hide password

The sign-in page now reveals the password field only after you enter your email, keeping the form uncluttered until you need it. A show/hide toggle lets you check what you've typed. If you switch between sign-in and sign-up, your email address stays filled in so you don't have to retype it.

FIX

No error flash after signing up or resetting your password

After creating a new account or completing a password reset, a brief error screen was appearing before the dashboard loaded, the same redirect timing issue fixed for regular sign-in on May 14. The sign-up and password-reset flows now land you directly on the dashboard without any interruption.

POLISH

More accurate venue search when creating events

The venue address field now uses a more capable search service that does a better job matching venue names, not just street addresses. If the primary service is unavailable, a fallback kicks in automatically so the field keeps working.

NEW

In-depth Public Page Builder guide

A comprehensive help guide for the Public Page Builder is now live at /help/page-builder. It covers all block types step by step — heroes, galleries, FAQs, upcoming events, contact forms, and more — along with design controls, template starting points, and tips for making your page look polished before you publish.

POLISH

Page Builder editor improvements

Two fixes to the Public Page Builder editor. Hero sections now have a dedicated eyebrow (kicker) text field, previously the text above the heading was locked to your co-op name with no way to change or hide it. And the Add button in repeater-style blocks like Links now works reliably; clicking Add no longer caused newly added rows to disappear on the next render.

FIX

Co-op name in mobile header shown only once

On mobile, when no co-op logo had been uploaded, the co-op name was appearing twice in the top navigation bar. It now shows once.

POLISH

Refreshed logo and app icons

HomeschoolGo has a new logo, a teal house mark alongside the wordmark, and updated app icons across all platforms. The sidebar navigation is also slightly tighter and more text-forward, giving content more room.

POLISH

Forum now on one shared page for everyone

Admins and members now use the same forum page. Admin controls for adding and editing categories appear inline when you're logged in as an admin. There's no longer a separate Admin › Forum section to navigate to. If you had the old admin forum page bookmarked, it redirects automatically.

POLISH

Admin dashboard reorganized with grouped, searchable tools

The admin dashboard now shows tools organized into labeled sections — Membership, Terms & Classes, Communication, Billing, and Site — making it easier to scan and find what you need without scrolling through a flat list.

FIX

Clearer guidance when SMS registration is rejected

If Twilio rejects a toll-free or A2P SMS registration, the app now tells you whether it's something you can fix yourself (like an incorrect EIN or website URL) or a system-level issue the HomeschoolGo team is already handling. You'll see a "Review and resubmit" prompt only when there's a concrete action on your end, no more guessing.

POLISH

Cooler, more consistent visual palette throughout the app

Backgrounds, dividers, and card borders in the app have shifted to cooler, cleaner neutrals. The warm tan tint is gone. Combined with your co-op's accent color now extending to the page loading bar and full navigation chrome, the overall look is sharper and more cohesive.

FIX

Sign-in no longer flashes an error on the way to the dashboard

After entering your password, a brief error screen was appearing before the dashboard loaded, a side effect of how Next.js handles navigation between different page layouts. The login flow now uses a proper server redirect, so you land directly on the dashboard without any interruption.

NEW

Admin controls now live on community pages

Admins can add, edit, and delete gallery albums, resource links, classified listings, business directory entries, and documents directly from the pages members already use, no separate admin tab required. The "Bulk Content" admin section is gone; everything is inline where it belongs.

NEW

Click-to-create events on the calendar

Clicking any day or time block on the Community Calendar opens the new-event form with the date and time already filled in. There's also a new + New event button in the calendar toolbar for quick access.

FIX

Admin-only actions require admin credentials server-side

Admin operations such as approving applications, creating classes, managing terms, and updating org settings now verify your admin role on the server before executing, not just in the UI. This closes a class of authorization gaps that could theoretically be reached by making direct API calls.

POLISH

Co-op accent color applies throughout the app

The accent color set in Admin › Settings › Branding now shows up consistently across buttons, tabs, and interactive elements. Previously some components defaulted to the base teal even when a different color was configured.

POLISH

Co-op logos stored in HomeschoolGo

When you upload a co-op logo in Admin › Settings › Branding, it's now downloaded and stored in HomeschoolGo directly, not hotlinked to an external URL. Logos will no longer disappear if the original source goes offline, and they display at a slightly wider size in the navigation bar.

FIX

Auto-reload also catches a Safari-specific error after deploys

The May 9 auto-reload fix, which detects stale browser bundles after a deploy and refreshes automatically, now also handles a Safari-specific error variant that was slipping through. Safari users should see fewer post-deploy disruptions.

NEW

Public page editor open to all admins

The co-op public page editor is now open to all admin plans, not just Plus. Essentials admins can design and preview their co-op's public profile page in full. Publishing the page requires a Plus plan; an upgrade prompt appears when you're ready to go live. If your page is already published and you downgrade, it stays live in view-only mode until you unpublish or upgrade again.

NEW

Event notifications sent in your co-op's time zone

Email and SMS notifications for co-op events now show times in your co-op's configured time zone instead of UTC. Members in a different region no longer have to do the conversion math themselves.

FIX

Calendar exports show events at the right time

Events exported to ICS, Google Calendar, and Outlook were sometimes appearing at the wrong hour depending on the calendar app. Timestamps are now exported as proper UTC, so events land at the correct local time everywhere.

FIX

Auto-reload on app update — no more blank screens after a deploy

After a new version of HomeschoolGo is deployed, stale browser bundles could cause blank screens or confusing errors. The app now detects when it's running an old version and reloads automatically, keeping you on the latest release without a manual refresh.

FIX

Timestamps, greetings, and messages — several time zone and display fixes

Three small issues landed in one batch: dates on posts, messages, and activity now display in your local time zone rather than the server's. The dashboard greeting ("Good morning", "Good afternoon") is now computed in your browser so it matches your actual time of day. And a bug where a sent inbox message could appear twice, as both an optimistic preview and the confirmed copy, has been resolved.

POLISH

Live chat on co-op public pages

A Crisp chat widget now appears on co-op public profile pages, the pages prospective families visit before joining. Visitors can reach HomeschoolGo support directly without hunting for an email address.

POLISH

"Powered by HomeschoolGo" removed from co-op profiles

The footer attribution on co-op public profile pages has been removed. The page now looks like the co-op's own page with no third-party branding.

FIX

Public co-op profile pages now load reliably

Co-op profile pages, the shareable link you send to prospective families, were silently returning a "not found" error for every org. The root cause was a missing database column that every profile page query depended on. It's now in place and all public profiles load correctly.

NEW

AI assistant discoverability

Added a structured product summary at /llms.txt and JSON-LD schema markup to the landing page so AI assistants (ChatGPT, Perplexity, Copilot, and others) can accurately describe HomeschoolGo when asked about homeschool co-op software. Major AI crawlers are now explicitly allowed in robots.txt so future rule changes can't accidentally block them.

POLISH

Honest framing on the AI recommendations section

The landing page section showing ChatGPT and Copilot recommending HomeschoolGo now reads "We put the question to two of the biggest AI assistants — these are their actual responses" rather than implying the recommendations came to us organically. The screenshots are real; the copy now says so plainly.

NEW

Sign in with Apple

Apple ID is now available as a login option alongside email and password. On iOS and macOS with Safari, Face ID or Touch ID handles authentication, no password required.

POLISH

Help center is now public

/help is open without a login, so prospective members and newly invited families can read answers before creating an account. Articles are organized by role — Family, Admin, and Teacher — with full-text search.

FIX

A2P SMS registration stability

Tightened error handling around the toll-free background processing loop so transient carrier API failures no longer surface as crashes. Background polling frequency reduced to avoid hammering the API during the approval window.

NEW

Streamlined toll-free SMS registration

The SMS carrier-registration flow opens with a single entity-type question — nonprofit, sole-proprietor, or registered LLC/corp. Your answer maps directly to the required Twilio business type, reducing re-submissions and speeding up carrier approval.

FIX

Join page reflects admin changes immediately

When an admin adds, removes, or edits a registration field or waiver, the co-op's public join page now refreshes right away. Previously, a visitor could see a stale version of the form for up to a minute.

FIX

Full waiver text in the form builder

Admins editing waivers in the membership form builder can now read the complete waiver body inline. Previously only a short preview was shown, making it difficult to proofread or verify the exact text families would be asked to sign.

FIX

Improved error monitoring on admin pages

Errors on admin screens now include context about what page, action, and account triggered them, so we can diagnose and fix problems faster, often before you need to report them.

FIX

Term readiness page stopped crashing

A server component was throwing when a term had no readiness data yet. It now renders a calm empty state.

NEW

Public status page

/status shows a live rollup of HomeschoolGo plus the services we depend on (Supabase, Vercel, Twilio, Stripe, Resend). If something is off, you see it without emailing us.

NEW

Twilio A2P messaging, end to end

Four stages shipped: drafts with preflight checks, second-rep verification, and CP-575 OCR. Carrier-approved SMS announcements for your co-op go through faster and with fewer rejections.

POLISH

Landing page tighter

Cleaner eyebrow copy, a real secondary CTA, a more inclusive switching story for co-ops not coming from Homeschool-Life.com, and a collapsible Stripe fee note so the pricing story reads honestly.

POLISH

New editorial palette

Teal replaces the old indigo across landing and app. Per-org theme picker lets co-op owners pick their own accent.

POLISH

Unified nav header

Landing header is transparent at the top of the page and turns to glass on scroll, so the hero reads as one continuous surface.

NEW

Event payment mode with progressive disclosure

Attendance events and paid signups now share one form. Fields reveal themselves as you turn on payment, so simple events stay simple.

POLISH

Full-width top bar, co-op name leads

Co-op name is now the first thing you see in the chrome; the search bar got tighter to make room.

POLISH

Dashboard calmed down

Toned down the loud cards, dropped the signups chart that wasn't earning its square footage, and unified user names with family primary names so identity stops drifting.

NEW

Bulk family messaging

Compose to the whole co-op, one class, a role, or any hand-picked audience straight from the directory, not a separate tool to learn.

NEW

Email deliverability phase 1

Audit log, per-org send quotas, unsubscribe handling, and Resend webhooks. Announcements stop getting eaten silently.

NEW

Event venues autocomplete

Address field backed by OpenStreetMap Photon. Start typing and pick the real place. No more copy-pasting from maps.

NEW

ChatGPT recommendation on the landing page

Added a quoted recommendation from ChatGPT when asked which platform to use for a homeschool co-op.

FIX

Automated quality checks back up to date

Our automated test suite had accumulated failures after a wave of new features. We've brought it fully up to date so bugs are caught before they reach you.

Want the weekly notes in your inbox, or have a feature request?

[email protected]