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

Send a text alert with an announcement

An announcement lands in the member feed and in people's email. Neither is much help an hour before you meet, when a class is cancelled or the room has moved. An announcement can now carry a short text message alongside it. Check "Also send a text alert" under Delivery and a box appears, pre-filled with your subject and message as plain text so you can cut it down. Before you send, the form shows how many families are eligible for the text and how many messages you have left this month. The text goes to the audience you already picked for the announcement, but only reaches the families in it who have opted in to texts and have a phone number on file. That is usually a much smaller group. Everyone else still gets the feed post and the email. The two are sent separately on purpose. If the text does not go out, the announcement is still posted and emailed, and you are told so you can resend just the text. This is off for every co-op. An admin turns it on under Settings, General, and it needs text messaging already set up and approved.

NEW

Connect Apple or Google to the account you already have

Signing in with Apple or Google authenticates whichever address that account carries, and for a lot of people that is not the address their co-op has on file. The result was a second login with no co-op attached to it, landing on a screen asking them to start a co-op of their own. Nothing on the page explained what had happened. My Profile now has a Sign-in methods card. Sign in the way you normally do, connect Apple or Google there, and from then on either button opens the same account. The card lists what is already connected. The login page says this outright now too: if you already use email, sign in with that first and connect the rest from your profile.

NEW

List an event cost you collect yourself

Putting a cost on an event assumed you were collecting it online, which needs the Plus plan and a connected payment account. A co-op taking cash at the door had nowhere to record the number, so the amount ended up in the description or in an email. Any co-op can now record an event cost that is collected outside HomeschoolGo. Choose "Cost only, payment handled outside HomeschoolGo" when you set the cost, and families see the amount on the event without being asked to pay for it here. Collecting online works exactly as before and still needs the Plus plan and a connected payment account.

FIX

Event reminders now reach events with no signup deadline

The reminder that goes out shortly before signups close only fired for events that had a signup deadline set. Most do not have one, and with no deadline the signup form simply stays open until the event begins. Those events got no reminder, and the admin who ticked the box was never told. An event without a deadline now treats its start time as the closing time, which is what it already was in practice, so the reminder goes out for it as well.

FIX

Undo an attendance mark, and stop losing the last one

Two things went wrong taking attendance in a class. There was no way to undo a mark: tapping the wrong student left a record you could change but not remove, so a student marked by mistake stayed marked as something. And a mark made in the moment before you changed the day or left the page could be lost, because it was still waiting to save. Each student now has a Clear action that removes just that student's mark and leaves the session note alone. A mark you have only just made is saved before the page moves, so the last thing you tapped is recorded.

FIX

Class updates reach families with no contact email on the roster

A teacher's class update emails the parents of the students in that class, using the contact email on the family's roster record. Some families have nothing there. Newer signup paths can leave that field blank, and older imported records kept the email on the household rather than on a person. Those families were silently skipped. The update now falls back to the email on a parent's login when the roster contact is blank, and to the household's own email when there is no contact record at all. A filled-in roster contact still wins, since that is the address the co-op was given, and nobody receives two copies.

FIX

Re-uploading your roster file repairs what it matched

Importing a roster and then noticing a column had not come through was close to a dead end. Uploading the corrected file again matched the families already imported and skipped them, so it reported families skipped and nothing created, and left the blanks exactly as they were. A second upload now fills in the empty fields on a family it matches, on both import paths, as long as that family has not claimed their account yet. Missing children are added the same way. The import wizard also no longer stops when it cannot work out your columns on its own. It falls back to matching them by name and by the shape of the values, then hands you the result to correct before anything is written. A sheet with a column group for each child keeps every child rather than only the last one.

POLISH

Manage classes in the catalog your families see

Admins had one class list and families had the catalog, and the two drifted apart. Improvements to browsing, filtering and the new schedule view landed on the family side while class management kept its own older screen. Class Catalog is now one screen for both. Everything you managed classes with is still there: the term picker, Add class, filters for status and room, sorting, the row-density toggle, and the enrollment and fee figures on each class. It also brings the List and Schedule switch to class management. Schedule lays the term out as a grid, which makes a hole in your timetable or two classes booked into one slot easy to spot before families ever look. The grid reads better for everyone too. A class at capacity carries a Full ribbon across the corner, and weekday columns share the width evenly instead of stretching around your busiest day. On the family side, a key above the grid says what each color means.

POLISH

Text colors for assignments

The assignment editor has a text color control now. It offers teal, blue, purple, amber and red, a Match background option, and Automatic to go back to the default. The colors are chosen to stay readable in both light and dark mode, so an assignment colored in one is still legible to a family reading in the other. On a phone the editor toolbar stays inside its box, and the due date and points fields stack rather than squeezing side by side.

NEW

Ask about support needs on the application

A support profile could only be filled in after a family was approved and signed in, which is later than most parents want to raise it. By then a child may already be placed in a class. Each learner on the join form now carries a Support and accommodations question with three answers: no additional details, add details now, or a preference to discuss it with the coordinator. Details written there become that child's support profile once the application is approved, so nothing is typed twice. Choosing to discuss it instead flags the learner in your review queue for follow-up. It stays hidden unless support profiles are turned on under Settings, General, and it is never required.

FIX

Announcements reach only the people you picked

A scheduled announcement ignored the families you chose. Pick three households, set it to send later, and it went to the whole co-op instead, in the app and by email. A scheduled post now goes to the audience you selected, the same as one sent immediately, and the app stores that selection with the draft so it is still there when the send happens. Announcements aimed at board members or at volunteers could also be read by everyone else. The audience narrowed the list of people the announcement was sent to, but it was not checked again when a member opened their own announcements, so a board-only post could turn up on another member's home page or in their search results. Every place an announcement is read now checks the audience first.

FIX

Approved applicants who already had an account now hear about it

Approving an application emails the applicant a link to set up their account. Someone who already had a login needed no such link, and the email was skipped along with it, so they joined the co-op without being told and had to work it out by signing in or by asking. Both cases now get an email. A new applicant gets the setup link as before. Someone who already has an account gets a note saying they are in, pointing at the page they belong on.

FIX

Last-chance event reminders arrive in the morning

The reminder that goes out before event signups close went at one fixed hour for every co-op, which fell in the middle of the night across most of North America. It now goes at 8am in your co-op's own time zone. Without a time zone set it keeps the old hour, so it is worth checking yours under Settings, General.

FIX

Merging two households that both owe a join fee

Merge families failed with "Merge failed. Please try again." whenever both records carried an unpaid join fee for the same term. That is the ordinary shape of a duplicate household, so the repair most often needed was the one that did not work, and the message said nothing about why. The merge now settles the two fees itself. It keeps one, cancels the other, and never touches a fee that was actually paid. If both sides were genuinely paid then money was taken twice, so the merge stops and says so rather than choosing for you. Other merge failures now give their real reason too.

FIX

Contact names stay in step

A person's name sat in two places: their own profile, and the household's primary contact on the family record. Editing one did not reliably update the other, so an admin who corrected a primary contact's name could still see the old one in the directory and on rosters. Editing a primary contact who has a login now updates that person's name everywhere, in the same action. The Emergency Roster also reads the primary contact from the household's adults, which is where the secondary contact already came from, so a contact updated there reaches the printed roster.

POLISH

See which teachers your Teacher permissions reach

Two of the four Teacher permissions only do anything for a member who has a class assigned to them, which the toggles alone do not say. An admin turning one on had no way to tell who it reached. The card now ends with Who this reaches: every member holding the Teacher role who has a class, and how many, then separately anyone holding the role with no class at all. Those members cannot see the Teaching area until a class is assigned to them on the class record.

POLISH

Search looks inside bios and application notes

Search read names, email addresses and phone numbers on families and applications, and nothing else on either. A family's directory bio and everything written on an application were invisible to it, so a half-remembered detail was no help in finding the right record. It now also reads a family's directory description, and an application's notes, the admin notes kept on it, and how the applicant heard about you. Both are admin-only already, so this makes nothing visible to anyone who could not see it before.

NEW

Pay part of a balance

Paying a co-op balance was all or nothing. A family holding a $400 term bill either paid the $400 or paid none of it, and anyone who wanted to split it across two paydays had to ask an admin to take a check instead. The payment page now has a Payment amount field. It starts filled in at your full balance, and you can change it to anything from $0.50 up to what you owe. There is a Pay full balance link beside it to put the whole number back. Pay $150 now and the page shows $250 left when you come back. A charge settles once your payments add up to cover it, so a term fee stops reading as outstanding when it is actually paid off, not at the first payment toward it. The pending charges card reads from that same balance, so the two numbers on the page agree.

NEW

Refund part of a payment

Refunds were all or nothing too. If a student moved to a class with a lower fee and only the difference should go back, an admin had to refund the whole payment and start again. The Refund action on the Family Ledger now asks how much. It prefills the full amount, so refunding everything is the same two clicks it always was, and you can type a smaller number over it. The family's balance reopens by exactly what you sent back, and the payment stays on the ledger with a badge showing how much of it has been refunded. It also corrects the math on a partial refund issued outside HomeschoolGo. One of those used to come back and mark the whole payment refunded, reopening the family's entire balance rather than the part you actually returned.

NEW

A class can meet more than once a week

A class held one weekly time slot. A co-op with a class meeting Tuesday and Thursday had to create it twice, then keep two rosters, two attendance sheets and two sets of fees in step by hand. A class can now carry several meeting times. Put Tuesday and Thursday on the same class and it stays one class everywhere: one roster, one fee, one attendance record. Every time slot appears in the catalog, the schedule grid, the family and teacher views, the printed schedule and the calendar feed. Draft classes can be duplicated as well. A duplicate copies the teachers, the fees, the pricing rates and every meeting time, and leaves enrollments and attendance behind, so building a term out of similar classes is not a retype.

NEW

Volunteer shifts that repeat, and a one-a-day limit

Covering a volunteer role every week meant creating the shift once per meeting date, by hand, for the whole term. An admin can now create a shift as a weekly series running to the end of the term, on one weekday or several. No-meet dates are skipped. Families see it marked as weekly through the end of the term and can reserve every remaining week in one action instead of signing up week by week. Capacity, reminders, attendance and credits still work shift by shift. There is also a new per-role setting that holds a family to one shift in that role on the same day. Some co-ops run a role where one family taking both the morning and the afternoon slot defeats the point of the roster. It is off for every role until an admin turns it on, and once on it applies wherever a family can sign up: the website, the calendar and the app.

NEW

Hear about it when an event is added

Families had no way to find out about a new event. Something posted two weeks out was discovered the next time somebody happened to open the calendar, which was often after signups had closed. Calendar events is now a notification you control, at the top of the notifications list on your profile. It is on for the bell and for push on your phone, and off for email. Turn any of the three off there if you would rather not hear about it. You are told once per event, shortly after it is posted, and an edit later does not send anything. For admins, the per-event Announce this event to families box now sits behind a setting. If your co-op has never used that box it is gone from the event form, and a new Event announcements card under Settings brings it back. The edit form also says outright that saving changes notifies nobody, which is the thing people were nervous about.

NEW

The iPhone app is on the App Store

The iOS app is published. HomeschoolGo is on the App Store now as well as Google Play, and the badge in the site footer is a working link rather than the coming-soon placeholder it has been. Reading the dashboard in Safari on an iPhone will also show Apple's own banner offering the app at the top of the page. You do not need it. The website works on a phone and nothing about it changes, so the app is there for people who would rather have an icon and push notifications.

NEW

Edit a student's details from the directory

Correcting a birthdate, or writing down an allergy a parent mentioned in the hall, meant asking that family to sign in and do it themselves. Owners and admins can now edit a student from the family's card in the Families directory: first and last name, birthdate, grade, student email and phone, emergency contact name and phone, allergies, medical notes and dietary restrictions. The same fields a family sees on their own children.

POLISH

Teaching opens on your own classes

Teaching listed every class you could see, from every term, with yours near the top. For a teacher holding two classes at a co-op running forty, reaching your own roster was a scroll. My classes is what the page opens on now, and it shows the term you have selected rather than everything on record. Other rosters are still there, underneath and quieter.

NEW

Keep students in classes for their grade

Every class carries a grade level and every student has a grade on their profile, and until now the two never met. The grade on a class was a label and a way to filter the catalog. Nothing stopped a parent putting a sixth grader in a class written for kindergarten. There is a Class grade limits setting now, on the General tab under Settings. Turn it on and a child outside a class's grade range is greyed out in the catalog with the reason beside their name, and the enrollment is refused on the website and in the app. It stays quiet wherever the grades are not filled in. A class with no grade range is open to everyone, the way it always was. A student with no grade on file, or a grade like Adult, is never blocked. An admin adding a student from the class page is not stopped either, so an exception is still one click. Co-ops that already exist start with this off, and nothing changes until an admin turns it on. New co-ops start with it on.

NEW

See the whole week's schedule at once

Reading the catalog meant scrolling a list of classes and holding the timetable in your head. There was no good way to answer what is happening at eleven on a Tuesday, and who is teaching it. The catalog toolbar now has a List and Schedule switch. Schedule lays the term out as a grid: time ranges down the side, days across the top, and every class in the cell where it meets, with its teacher and room. Classes your own family is enrolled in are marked, so you can find your day inside the whole co-op's. Tap a class in the grid and the same details open that you get from the list, so browsing and enrolling stays one flow. A class that meets on a monthly pattern rather than weekly says so. A full class sinks to the bottom of its cell and is labeled. Any class without a time slot yet gets its own section underneath instead of disappearing. List stays the default. The switch remembers your choice for that co-op, and the list itself is unchanged.

NEW

Lock a tablet to the check-in screen

A co-op that leaves a tablet by the door for daily check-in was handing everyone the whole app. The date picker, the notes panel, the view settings and the sidebar all sat next to the names, and people tapped them. Roll Call now has a check-in screen: the same board with everything else taken away. It shows today only, a search box, the Not arrived and Here tallies, and each family's check in and check out buttons. Lock a tablet to it and leaving takes a PIN, so someone tapping around lands back on the check-in screen rather than in your dashboard. A Kiosk mode button sits on Roll Call. If your co-op already has a PIN the tablet locks straight away, and if it does not, an owner or admin picks one right there and the tablet locks in the same motion. You can also set or change the PIN on the Daily roll call card in Settings. The screen reloads itself every half minute, so a check-in made at the front desk shows up on the door tablet, and a tablet left running moves to the next day at midnight on its own. The PIN keeps people from wandering off the screen. It is not a security boundary: the tablet stays signed in as a staff member, so keep it somewhere staff can see it.

FIX

Fixed: a student sign-in could start a second household

A student signing in with their own login could reach the Set up your family card on their profile page and create a household of their own. It appeared in the co-op directory as a second household beside their parents', named after the student. A student sign-in belongs to the household it was created from. That card is no longer shown on one, and creating a family is refused for a student account however the form is reached.

POLISH

Volunteer shifts show when they finish

A shift told you when it started and left the rest to you. Signing up for something at nine in the morning said nothing about whether you were free at ten. Start and end times now appear together everywhere a shift does: the admin schedule, your upcoming and signed-up lists, the calendar, the reminder on your dashboard, and the CSV export.

POLISH

Two phone fixes for the dashboard

On an iPhone, the top of a page could end up tucked underneath the fixed bar at the top of the screen, and pulling down never brought the gap back. Once it happened it stayed that way for the rest of the visit. Pages are now sized to the part of the screen you can actually see, so there is nothing left to scroll out of place. Deeper pages also carried two back buttons on a phone: the arrow in the top bar, and a Back link directly underneath it. The second one is hidden on phones now. Tablets and desktops keep it, since they show breadcrumbs rather than an arrow.

POLISH

Dark mode notices you can read

Warnings, errors, successes and information notices kept their light backgrounds in dark mode. A notice arrived as a bright block on a dark page, and the text inside it was harder to read than the page around it. All four now use colors built for dark mode. Pages that are meant to stay light whatever your setting, like the public marketing pages, are unchanged.

FIX

Fixed: volunteer credits that never counted

A family could claim every shift asked of them and still see zero credits on their volunteer page, while the badge on their card in the Families directory said they were done. The two screens were counting different things. The directory counted shifts claimed. The volunteer page read a running record of credits that signing up never wrote to. Claiming a shift now earns the credit, and cancelling gives it back. Every signup that had already been claimed was credited too, so the number a family sees is the number they have earned. If your co-op asks families to earn volunteer credits, expect those totals to rise. That is the fix rather than a change of policy: they are moving to the figure the directory has been showing all along.

FIX

Fixed: a paid upgrade that stayed locked

Upgrading a co-op's plan could take the payment, show a success page, and leave every upgraded feature sitting behind an Upgrade prompt until someone fixed it by hand. Three separate confirmations arrive within about a second of each other and in no fixed order. One of them describes the moment before the payment succeeded, and if it landed last it overwrote the others, putting the plan back to unpaid. A confirmation can no longer move a plan backwards into its pre-payment state. Each one now checks the current state before it writes, so the order they arrive in stops mattering. And the success page checks for itself when you land on it, which means the plan is right by the time you read the page even if no confirmation arrived at all. That page is more honest too. It celebrates when the plan is genuinely active, and says the payment is still processing when it is not.

FIX

Fixed: a fee marked paid that still read as outstanding

Marking a charge paid by hand recorded the payment against the family's balance but never against the charge itself, so a registration fee settled in cash sat on the ledger as outstanding forever. A manually recorded payment is now attached to the charge it settles, and the charge is marked paid at the same moment. Class fees paid by card had the opposite problem. The money arrived and the seat was booked, but none of it appeared in what your co-op had charged or collected for the term, so both figures understated the term by whatever families had paid for classes themselves. They now include class fees families paid at checkout. No family's balance moved. The fee and its payment are recorded together and cancel each other out.

FIX

Bank payments in progress now show up

Paying a balance by bank transfer showed on the Billing page as processing. Paying for classes the same way showed nowhere at all. A bank debit takes several business days to clear, and for that whole stretch the money was real, on its way, and invisible to whoever was reconciling against a bank statement. A family's ledger sheet now reports the class seats being held while a bank payment clears, with the amount. Where the exact amount cannot be worked out, the figure is described as a floor rather than guessed at, so you know to expect at least that much. Anything still unsettled well past the usual window is also flagged for a person to look at, rather than sitting quietly forever.

FIX

Three fixes: blank admin pages, absence notices, and documents

An admin page could occasionally render empty for an admin who genuinely had access, because the page checked the membership in a way that could come back blank while the page was still loading. The pages that did this were corrected. Absence notices to teachers counted an email as delivered when it had actually been skipped, so a notice that never went out was never tried again. A teacher who has unsubscribed is now reported separately, and a skipped send is retried on the next run. Reporting an absence for a class with no teacher assigned had nowhere to send the notice at all, so those classes now appear in the list marked unavailable with a short reason, instead of accepting a report that goes nowhere. Uploaded documents stopped opening after a while, because the link saved at upload time eventually expires. Documents get a fresh link each time the page loads now, and links you pasted in yourself keep working as they always did.

POLISH

The Families directory handles a big roster

The directory used to send every family in the co-op to your browser and do the searching, filtering and sorting there. That is fine at fifty families and noticeably slow well before three hundred. Search, filters, sorting and paging are all worked out before the page reaches you now, so only the page you are looking at gets sent. Your search and filters also live in the address bar, which means Back and Forward return you to the view you were on, and a link to a filtered directory opens on that filter. The starting view is the one you had before: sorted by last name, with everything on one page for a co-op of 150 families or fewer.

NEW

Let a parent run the photo gallery

Two questions had no good answer. There was no way to delete a single photo, only a whole album. And uploading was tied to being an owner or admin, so handing the gallery to the parent who assembles the yearbook meant making them an admin, which gives them the admin dashboard and a good deal else. Photos can now be deleted one at a time, from the same view where you edit a caption, with a confirmation first. Under Admin, then Team, the menu on a family or teacher row now offers Allow gallery management. Someone with it can add and remove photos and manage albums. Nothing else about their account changes: they keep their family home page and see no admin dashboard. A Gallery badge on the row shows who has it, and you can take it back from the same menu. Nobody holds it until you grant it, so a co-op that never opens that menu has the gallery it had yesterday.

NEW

A short label on a family's directory card

Co-ops want a way to note something about a household in the directory, and the free-form description was the only field for it. That field is built for a paragraph, which is too much for a card. An admin can now set a short label on a family, separate from the description. Under Families view settings you choose whether labels show on the cards, in the table, or neither. Labels are off until you turn them on, and a family with no label looks exactly as it did before.

FIX

Sign-in links: only the newest email works

Ask for a sign-in link, wait, then ask again because nothing seems to have arrived. The second request quietly cancels the first. Both emails are now sitting in your inbox under the same subject line, and opening the older one gives you "this link is invalid or has expired", which is true, explains nothing, and suggests nothing. That message now says what actually happened and what to do about it: the link expired or was replaced by a newer one, so open the most recent email. The screen you land on after asking for a link warns you up front that only the newest email will work, and the emails say the same thing. Nothing about how the links work changed. They just tell you now.

NEW

Buy more text messages when you run out

The 500 texts a month included with Plus is roughly five full-roster messages at a hundred families. A co-op that used them up had one option, which was to wait for the reset. You can now buy a one-time top-up from the Texting page: 500 messages for $15, 1,000 for $25, or 2,000 for $45. Purchased messages never expire and are never reset. They sit on top of the monthly allowance and are only spent once the monthly pool is gone, so buying early costs you nothing. The usage meter says how many of your remaining messages were purchased, and the banners that used to tell you to wait for the reset now offer the packs instead. Buy none and nothing about texting at your co-op changes.

NEW

Set a different join fee for each pricing rate

A co-op with more than one pricing rate still had one join fee for everybody. A reduced rate for a family on assistance did nothing about the fee they pay to join. The Edit term form now offers Amount by rate. Give each rate its own amount and a family is charged the one matching theirs. Leave a rate without an amount and it falls back to the flat fee. Set it to zero and families on that rate are not charged a join fee at all. The option only appears once your co-op has a second pricing rate, and a term with no per-rate amounts charges exactly the flat fee it charged before.

NEW

Titles for members, and links only some people see

Roles decide what somebody can do, and every co-op has jobs a role does not describe. Nursery coordinator. Treasurer. Whoever runs hospitality. An admin can now put a short label on a member from the menu on their row under Admin, then Team. It appears beside their name in the member list. It is a description and not a permission, so it changes nothing about what that person can reach. Resource links can be narrowed too. Adding or editing a link now gives you a choice between all members and private to selected roles, with checkboxes for owners, admins, teachers and families. A private link only appears for the roles you pick. Every link that already exists stays visible to all members, and no member carries a label until you give them one.

NEW

Manage a student's classes, and let families leave a note when they sign up

Changing which classes a student is in meant going class by class through the rosters. There is now a page for the student themselves, showing what they are enrolled in this term, where you can add or remove classes in one place. Separately, signing up for an event now takes an optional note for the coordinator. Free and paid events both accept one, editing your signup keeps what you wrote, and the note shows next to your name on the coordinator's list of who is coming.

POLISH

See who did not get your text, and why

A message in the texting history said something like 27 delivered, 2 blocked, and stopped there. Knowing that two families missed it is not much use without knowing which two. Each row now opens into the full list of recipients, the way email blasts already did. Anyone blocked or still in transit is listed first and in full, with a plain reason beside each one: they replied STOP, the number is a landline, the carrier filtered it. Recipients who got it fold behind a Show all link, so a message to two hundred families still answers who missed it at a glance. A phone number shared by two families is left unattributed rather than guessed at.

NEW

Two more admin tools: teacher workload and adding a family by hand

Reports now includes Teacher assignments, which lists every teacher with the classes they hold, how many students, and their hours per week and across the term. A class with two teachers counts in full for each of them and names the other. A member with the teacher role and no class yet appears with nothing assigned, which is usually the list you want in the week before a term starts. There is a CSV of the same thing. The Families page also has an Add family button now, for the household that joins by phone call or in person. It creates the record the same way an imported family is created, so inviting them and letting them claim the account works exactly as it does after an import. A half-typed student is refused rather than saved blank. Separately, support profiles gained a section on learning and participation, for the co-ops that have profiles switched on.

POLISH

The help center caught up with the last two weeks

A batch of features arrived before the guides describing them did. The guides have caught up. The events guide now explains the three separate notifications an event can send and who receives each one. That was the sharpest gap: the old section covered coordinator alerts only, under a heading that sounded like it covered all of them. The setup guide picks up the optional explanation you can add above one of your own questions, and the minimum number of boxes you can require on a checkbox question. Member management has a new section on recording adult certifications and their renewal dates, and the reports page now mentions the card that lists the ones coming due. Two older passages were wrong rather than merely thin. The list of filters on the Families page named three of the five dropdowns that are actually there, and never said that a filter only appears when at least one family would match it, so a control that was simply empty looked like one that did not exist. The volunteer guide told you to set a credit requirement without saying which term you were setting it for, even though every setting on that page belongs to a single term and the page can open on a term you have set up but not opened yet.

POLISH

Read a whole assignment without leaving the list

Assignment instructions were squeezed into the card in the list, so a teacher who wrote more than a line or two had it cut off and there was nowhere else to read it. Cards now show a short preview and open the rest on tap: the full formatted instructions, the class, the due date, the points, whether it has been turned in, which child it belongs to, and anything the teacher attached. It opens as a sheet from the bottom of the screen on a phone and as a dialog on a desktop.

POLISH

The volunteer pages were reorganized

The admin volunteer section did four jobs stacked on top of each other: the day's schedule, marking who turned up, setting the term's policy, and reporting. Those are separate tabs now. Marking attendance is its own list of shifts that have finished and still need an answer, rather than something to pick out from among everything else. On the family side, a credit awarded by hand says when it is still waiting on a coordinator to confirm it, instead of appearing as though it had already counted.

NEW

Let families know when you post an event

Posting an event told nobody. Families found it the next time they opened the calendar, which for something two weeks out was often after signups had already closed. The event form now has a checkbox: Notify families about this event. Tick it and every family gets one notice, in the app, by push and by email. It goes once per event, so editing the event afterwards does not send it again. If the event has a deadline for signing up, a second reminder goes out about two days before that deadline, and only to families who have not signed up. Anyone who already has is left alone. Create a season of events in one sitting and they arrive as a single notice rather than one message per event. The checkbox also remembers what you chose last time, so a co-op that always announces stops having to tick it, and one that never does is never asked. Every event that already exists is untouched. Nothing sends until you tick the box on a particular event.

NEW

Explain a question on your registration form

A custom question had one line to work with, its label, and admins with a policy to explain have been writing whole paragraphs into it. Some of them run to several hundred words of unformatted text sitting above the answer box. Every custom question takes an optional explanation now, written in the same editor as a waiver, so it can carry headings, bold text, links and lists. It shows under the question and above the answer, everywhere that question is asked: the public join form, a child's information, My Profile, term confirmation, and the admin view of a family. The workaround until now was to make the question a waiver instead, since waivers have always had a body to write in. That works right up until the answer needs to be something other than a signature or a yes and no. A question can now have both the explanation and the choices.

NEW

Ask for more than one box to be ticked

A required multi-select question has only ever meant tick at least one of these. A co-op asking members to confirm two separate things from a single list had no way to say so, and a family could tick the first and skip the second entirely. A required multi-select now takes a minimum. Set it to two and families see Choose at least 2 above the options, and are told if they pick fewer. The same rule is checked again when the form is submitted, so it holds no matter how the answer arrives. Leave the minimum blank and the question behaves exactly as it did before, down to the wording of the message. Nothing was changed on questions already in use.

NEW

Track adult certifications and when they run out

Co-ops that meet in a church hall, carry insurance, or answer to a diocese are often required to hold something on file for every adult: a background check, safeguarding training, CPR, a first aid certificate. That has been living in a spreadsheet next to the app. Under Settings, then Members, you can now define the kinds of certification your co-op tracks. Each one has a name, instructions you can format properly, how often it needs renewing, and whether it applies to every adult or only some. Record a completion date against an adult on the family's page and the expiry date is worked out for you. Reports, then Adult credentials, shows where everyone stands, with anyone lapsed or expiring soon called out, and a CSV for whoever has to send the quarterly summary. If you have not defined a certification, nothing about your co-op changes. The report and its link do not appear at all, and the only new thing anywhere is an empty section on the Members tab in Settings.

POLISH

An event page you can read

Clicking an event in the admin list opened the edit form. Checking a start time meant reading it out of a form field, and it was easy to change something you had only meant to look at. The page now opens on the details: when and where, the category and coordinator, how many people are coming against the capacity you set, how many families, the fee, and when signups close. Editing is one click further in, and saving or cancelling brings you back. The three notices an event can send are spelled out there too, because they go to different people at different moments. The announcement goes to everyone when you create the event, the last chance reminder only to members who have not signed up, and attendee reminders only to families who have.

NEW

Put your own questions in the family directory

Co-ops ask their own questions on the join form: which curriculum you use, where you attend church, whether you would host. Those answers sat on the family record where only an admin would think to look, and members wanting to ask each other the same things had no way to look them up. Each family-level question now has a Directory setting that decides where its answers appear. Every question starts at Hidden, so nothing is published until you say so, one question at a time. From there you can show an answer to admins only, to any member who opens that family, or as a line on the family's card in the list. A shown question can also become a filter, letting members narrow the directory to everyone who picked a particular option, or be included in the directory's search. Filters are offered only for questions with a fixed set of choices, since a free-text answer is usually unique to one family and would make a filter of one. Families see the same promise you set. A question that appears in the directory says so underneath itself on the join form and in My Profile, and if you publish a question people already answered while it was private, you are told how many answered and asked to confirm first.

NEW

A support profile for how a child learns

A parent whose child needs movement breaks, or struggles in a noisy room, or takes a while at drop-off, ends up explaining it again to every new teacher, usually in the doorway on the first morning. Support profiles give them somewhere to write it down once. It is a short, optional profile per child covering movement needs, transitions, sensory needs, how they take in instructions, the early signs they need a break, and what motivates them. Any section can be left blank, and a blank one is not shown to anyone. Teachers see a shared profile on the roster of their own class, and only while that child is enrolled in it. Admins can see them too. Other families never can, and profiles stay out of the directory and out of every export. It is off until an admin turns it on under Settings, General, and filling one in is never required.

FIX

Fixed: the admin volunteer page showed the wrong term

An admin opening the Volunteer page saw no upcoming shifts at all, while families on their own volunteer page saw every one of them. The admin page picks a term for you, and it will deliberately pick one you have created but not opened yet, so that you can set a term's policy up before it goes live. At a co-op with two terms whose dates overlap, that meant the page quietly moved to the empty unopened one, gave no way back, and did not even say which term it was showing. There is now the same term switcher the Terms and Schedule page uses, listing each term's dates and whether it has opened. Which term the page starts on has not changed. You can now see which one that is, and choose a different one.

NEW

Classes that meet once or twice a month

Class schedules assumed every class met weekly. A co-op running a first-Friday science lab or a 2nd and 4th Tuesday book club had no way to say so, short of workarounds that affected every other class in the term. Time slots now carry a pattern of their own. When you add or edit one on Terms and Schedule, a Repeats menu offers Every week, or specific weeks of the month: 1st, 2nd, 3rd, 4th, or Last. Every class you put in that slot follows it, so give a monthly pattern its own slot rather than changing one weekly classes are already using. The pattern shows up wherever the day does. A slot set to the 1st and 3rd Friday reads "1st & 3rd Fri" on the catalog, on family and printed schedules, and in roll call, and the calendar families subscribe to shows only the days the class actually meets. Last and 4th are deliberately different. In a month with five Fridays, 4th means the fourth one and Last means the fifth, so pick Last if what you mean is the final meeting day of the month. Every existing time slot is untouched and keeps meeting weekly.

NEW

Ask the second parent for an email and phone

The join form's Second Parent or Guardian section asked for a name and nothing else. Collecting the other parent's email or phone meant adding a custom question, which then appeared down in Additional Information rather than beside the name it belonged with. Both fields are part of that section now. They are optional, so a family that leaves them blank submits exactly as before, and whatever they enter shows on the application when you review it. Approving an application that creates a new household saves both to the family record alongside the second parent's name.

FIX

Fixed: the directory called families enrolled when they were not

The teal badge on a family's card in the Families directory said Enrolled, but what it actually measured was whether the registration fee had been settled. It got that wrong in both directions. An imported family who had only signed in and added their children carried the badge without a single class to their name, while a teacher's household with a waived fee and children in classes showed nothing at all. That badge now says Registered, which is what it always meant, and there is a separate green Enrolled badge for a family with at least one child in a class this term. Hovering either one explains what it counts. Two filters came with it. Classes narrows the list to families enrolled in something, or to families enrolled in nothing, which is the list you want when you are chasing people who have not signed up yet. Staff household was the one badge with no way to filter for it, and now has one.

FIX

Fixed: an import that quietly skipped columns

A roster export can have its standard columns renamed, and a renamed column was read as missing. A file with Home Phone and Cell Phone, where the standard export has Phone, imported every one of those families without a phone number and said nothing about it. The common renamings are recognized now. More to the point, a column the standard export normally carries that cannot be matched to anything raises a warning at the mapping step instead of importing blank, so an empty column is something you catch before you import rather than weeks later. Re-uploading is more useful too. A family already imported but not yet claimed by a parent gets any missing children added, matched on first name and birthdate so nobody is duplicated. A family a parent has already signed in and claimed is never touched. The results screen tells you how many students were filled in.

POLISH

A stale tab now says so

Leave the dashboard open overnight and the page keeps showing whatever was true when you loaded it. Prices, buttons and whether registration is open can all move on without it, and until now the first sign was something failing when you finally clicked. An open tab checks for a newer version when you come back to it, and shows a banner offering to reload if there is one. It only ever offers. Nothing reloads itself out from under you, since you might be partway through typing something. Dismiss it and that version stays dismissed.

POLISH

Three fixes for using the dashboard on a phone

Dashboard pages could be dragged sideways when something on them was wider than the screen. Families was the worst of them: a row of counts and buttons in the header ran off the right edge and pulled the whole page along with it. Pages stay put now, and anything genuinely wide, like a table, scrolls inside its own box instead. Open dialogs sat underneath the floating menu pill at the bottom of the screen, so the pill covered part of whatever you had just opened. Dialogs sit above it now. The menu also scrolls the way an iPhone menu should again, and there is a notifications bell in the top bar, so getting to your notifications no longer means opening the menu and scrolling to the bottom of it.

NEW

Let a scholarship cover class registration

A family holding an account credit still met a card form at class checkout. The credit counted against their balance, and class registration never looked at it, so a scholarship worth more than the whole cart did nothing at the point of paying. There is now a setting under Settings, General, in the class enrollment card: Apply account credit at class checkout. With it on, a family who has credit skips the card form. Their fees post to their balance at the usual price, sibling discounts and reduced rates included, and the credit covers them. Enough credit and they are enrolled straight away. Not quite enough, and the rest lands on their Payments page to settle later. The cart says all of this before they commit. It names the credit they hold, tells them whether a card is coming, and offers one Complete registration button in place of the payment buttons, so nobody has to press Pay on faith. Families with no credit check out exactly as they did before, and the setting stays off until an admin turns it on.

FIX

Fixed: registration opened and the catalog did not say so

A window set to open at five in the afternoon was shown to families as "Opens Aug 28". On the 28th that tells someone the one thing they already knew, and hides the hours they still have to wait. Both catalogs now name the time when there is one to name: "Registration opens today at 5:00 PM PDT". A window that opens at midnight still shows only the date, because 12:00 AM adds nothing. The other half of this was worse. The public catalog is cached so it loads quickly, and the open-or-closed answer could be baked into a copy of the page made before the window opened. Families reloading a minute after five kept reading "registration opens" with an Apply to join button where Enroll belonged. Both catalogs now watch the clock themselves and switch over the moment a window opens or closes, with no reload needed.

POLISH

Fixed: Settings slid sideways on a phone

The admin Settings page could be dragged left and right on a phone. Two boxes on the General tab, the member join link and the member sign-in link, were wider than the screen and pulled the rest of the page along with them. Both now fit.

NEW

Tell a teacher your child will be out

A child is going to miss a class, so the parent emails the co-op and an admin forwards it on. Nothing in the app carried that message. A parent can now report the absence themselves, from My Classes or from a class page. They pick the date, tick which of that day's classes it covers, and add a reason if they want to. Each of those teachers is told right away, gets a reminder the evening before, and sees the student already flagged when they open attendance that morning. A notice is a heads-up, not an attendance record. Nothing is marked absent until the teacher takes attendance and says so, and a family cannot mark their own child absent. Admins are left out of this on purpose. There is no queue to work through and no email to you either way. It stays off until you turn it on, under Settings, General, Absence notices.

NEW

Teachers can email their own classes

Telling the parents in your class what to bring next week meant asking an admin to send it for you. The class message thread was the only tool a teacher had, and it sends no email, so a post there sat unseen until each family next signed in. A teacher can now email the parents of students enrolled in their own classes. Someone running four sections of the same class writes once and every family gets one message, with siblings and shared households counted once. Before it sends, the form says how many families it will reach and names any without an email address on file. It also reaches the co-parents and grandparents who have an address on file and no account, which the message thread could not do. The email goes out under your co-op's name, and replies come back to the teacher. A parent who does not want these can switch off class updates on their own, without unsubscribing from the rest of what you send. Owners and admins can read everything teachers have sent, under Communications. It stays off until you tick "Email the families in their own classes" under Teacher permissions in Settings.

NEW

Approve term confirmations before they count

When a returning family finishes term confirmation, they are set for the term the moment they submit. That works for most co-ops. It leaves nothing for an admin who wants to look first. Under Membership, then Application form, there is now a switch: Require admin approval of term confirmations. With it on, a completed confirmation waits in the Term confirmations queue for you to release, and the family is told they are waiting on approval instead of being sent back through the form. Someone who was already approved and comes back to fix a phone number is not put back in the queue. The switch is off for every co-op until an admin turns it on.

NEW

Volunteer credit for work that was never a shift

Credits could only come from a scheduled shift somebody signed up for and completed. Baking for a fundraiser or driving on a field trip has no shift to attach to, so co-ops tracking credits ended up keeping a spreadsheet for the leftovers. Whoever runs volunteering can now add or subtract credits for a family directly, with a reason the family reads on their own volunteer page. A correction is recorded as another entry rather than an edit, so the family sees a history instead of a number that changed on its own. This shows up only at co-ops that have turned credit awarding on for the term.

FIX

Fixed: saving your family information did nothing

From August 21 to August 26, opening Edit family information, changing something and pressing Save ended in an error rather than a save. This was not one co-op: every family everywhere hit it. The error named the whole record, so it read like a problem with the account rather than what it actually was, one field the form had recently started sending that it did not have permission to write. That is corrected, and nothing else about the form changed. If you tried to update a phone number, an address or your text message preference during that stretch, none of it was kept, so it is worth opening the sheet and putting it in again.

FIX

Fixed: teachers told to go add students

A teacher with no children of their own in the co-op saw a dashboard written entirely for parents. Today's schedule told them to add students to see a schedule, and the getting started list made Add your students and Enroll in classes required steps. At least one teacher read all that as proof they had been given the wrong account. The dashboard now looks at whether you teach here. If you do, the schedule card points you at your classes and rosters, and the getting started list asks you to view those instead. Adding students stays on the list as optional, since plenty of teachers are parents at the same co-op.

FIX

Fixed: a Teaching page with no link to it

At co-ops where teachers can see every roster, a member holding the Teacher role who had not been assigned to a class could reach the Teaching page by typing the address, but never saw it in the sidebar. The sidebar and the page were answering two different questions about who counts as a teacher. The sidebar now asks the same question the page does: will this show you anything? Anyone assigned to a class keeps the link, as before. Admins and owners who teach nothing still do not get it, because they reach the same classes through Admin.

FIX

Fixed: a term review with nothing in it

A teacher or admin household with no children enrolled was asked to confirm their information for the term, again and again, with no students to review and nothing to sign. One teacher described it as being asked to add kids as though they were a parent. That prompt is now skipped for a staff household with no students, no waiver waiting to be signed and no fee the term's own policy would charge them. If any of those is outstanding the prompt stays, because it is the only place to deal with it. What a household owes is decided exactly as it was before.

NEW

Volunteer credits that actually add up

Co-ops that set a credit requirement for the term had families watching a progress bar that never moved. Nothing anywhere in the app ever awarded a credit. Credits are earned when a shift is done, not when it is claimed, so there is now a Past shifts panel on the admin volunteer page for whoever runs volunteering. On automatic, a shift credits itself once it has been over for a while and you only step in to mark someone as a no-show. On manual, you confirm each shift yourself. This starts off for every co-op. Turn it on for a term in your volunteer policy and the term you are in is credited back to its start, so switching it on in October credits September's work instead of making everyone wait.

NEW

Exempt teachers and admins from volunteer hours

Staff households were shown the same volunteer requirement as everyone else, and the only way to waive it was to drop the requirement for the whole co-op. Your volunteer policy now has two separate checkboxes, one for teacher families and one for admin families. An exempt family sees "No volunteer requirement this term" instead of a progress bar, drops off the volunteer badge in the directory, and reads as Exempt rather than Short on your volunteers report. Both start unchecked, so nothing changes for anyone until you tick one.

NEW

Sign up an adult who has no login

Your household members card can list an adult who has never made an account, a co-parent or a grandparent who helps out. The event signup form could not offer them, because the attendee picker only knew about adults with a login. They were listed as part of your family and still impossible to sign up. Everyone on your household members card can now be picked as an attendee, account or not. Signups that already exist are untouched.

NEW

See it when a payment is disputed

When a family disputes a payment with their bank or card issuer, your co-op is the one who has to respond. Until now nothing in the app told you it had happened. Your Billing page now shows any disputed payments: the family, the amount, what the bank gave as the reason, and the date your response is due. Owners and admins get an email as well. The card only appears once your co-op has had one, so most Billing pages look exactly as they did. Payments made straight from a bank account all come back with the same generic reason, which made a stop payment look like a fraud claim. Where the bank sends a specific code, we now say what actually happened, so you are not relaying the wrong thing to a family.

NEW

Hide the class catalog when families have nothing to browse

Some co-ops enroll every student themselves and bill classes as dues, so the Class Catalog is a link to a page nobody needs. Class Catalog now sits with the other links you can hide, under Navigation visibility in Settings. It stays visible for everyone until you uncheck it, and admins keep seeing every link either way.

FIX

Fixed: no way to clear a balance after refunding a payment

Refunding a payment sends the money back but leaves the charge it paid still standing, which is on purpose: the family owes it again unless you decide otherwise. The trouble was that a paid charge had no menu on its row, so there was nothing to click to write it off, and an unpaid balance stops a family enrolling in anything else. A paid charge now offers Cancel charge in its row menu. That voids the charge and clears the balance. No money moves and the payment record stays exactly where it is.

FIX

Fixed: members listed by email instead of by name

Some people showed up in Admin, then Members as a bare email address, while the same person had their full name in the directory. Three of the ways a family joins created the member record without a name on it, and the members list, emergency roster and household card all read from that record. All three now save the name they already had at hand, and the records already created that way have been filled in wherever it was safe to work out who the person is. Correcting a name in the directory also updates the members list now, which it did not do before.

FIX

Page builder: your accent color, and pasted images that stay put

Three fixes to the public page builder. "Your own accent color" appeared next to every theme but only did anything on the Custom one, so a co-op could save a color that showed up nowhere. It now appears only when Custom is selected. An image added by pasting a link pointed back at wherever it came from, so it broke the day that site moved or blocked it. Pasted images are now copied to your co-op's own gallery. Links already saved this way are being moved over too. A photo hero set to the tallest height could stretch the preview pane on forever. Preview now shows it at the height it will publish at.

POLISH

Set your time zone before an event can repeat

A repeating event works out each of its dates from your co-op's time zone. If that had never been set, the first date was right and later ones could land on the wrong day. Creating or editing a repeating event now stops and points you at the setting when your co-op has no time zone saved. One-off events are unaffected, and no existing event was caught by this.

NEW

Upcoming and past events, kept apart

The admin events list put everything in one stream, oldest first, so today sat below months of events that had already happened. It opens on Upcoming now, soonest first, grouped by month. A Past tab holds the rest in a tighter one-line-per-event list grouped by year, with older years folded up until you open them. That is the view for finding last term's event so you can duplicate it. A co-op with nothing coming up opens on Past instead.

NEW

A summary when returning families confirm for a term

A returning family that goes through term confirmation, checking their details, signing waivers and paying the fee, is set for the term without an admin doing anything. Until now nobody was told it had happened. Owners and admins who manage members can get a summary instead of a stream: one entry that grows as families confirm through the day, and at most one email per term per batch. The setting is under Membership, then Application form. It stays off for every co-op until someone turns it on.

POLISH

Search finds admin tools now

The admin hub had its own small filter box sitting just under the main search bar, and the two searched different things. The main one could not find admin tools at all, so typing Emergency Roster into it turned up nothing. Admin tools are in the main search now, and it matches what a tool does as well as what it is called. Typing "snow day" finds Text Messaging. The small filter box is gone, since the search above it does that job and more. Tools your co-op has turned off stay out of the results.

FIX

Fixed: a registration fee that stayed payable while the money was still moving

A registration fee paid by bank transfer clears in a few days, not instantly. For that whole stretch the fee still looked unpaid. The dashboard kept offering Pay, and the family stayed blocked from signing up for classes until the money landed. A family who paid again in the meantime paid twice. A fee that is already on its way now counts as handled. The Pay button goes away and class signup opens back up. If the transfer is later returned, the fee goes back to owed. Fees paid by card were never affected.

FIX

Fixed: the last place a payment could start twice

Over the past week we closed several routes where the same thing could end up with two payment pages open at once. Class enrollment was the last of them: sending a cart to checkout twice could open a second payment page for the same seats. Asking again for the same selection now hands back the page you already have. If a payment does still arrive for seats another checkout already claimed, it is recorded and flagged for someone to look at rather than passing quietly.

FIX

Fixed: class counts that added up every term you have ever run

Each child's card on My Students says how many classes they are enrolled in. That number counted every class the child had ever taken, back through past terms, so a family with four classes last term and one this term was told they had five. An old waitlist spot did the same thing, putting a Waitlist badge on a child who was not waiting for anything. Both count the current term only now. If your co-op has been running a while, expect these numbers to drop. The smaller number is the accurate one.

FIX

Fixed: a volunteer shift that looked like yours when it was not

In a household where two adults each have their own login, a shift claimed by one of them showed on the other adult's volunteer page as though they were signed up for it, with no way to take a spot themselves. A volunteer spot is one person's, so a second adult from the same family can take one too. The volunteer page names whoever in your household holds the shift, and still offers you a spot of your own. Separately, the shift-credit progress on that page no longer says a coordinator will confirm your completed shifts. Confirming shifts is not something the app does yet, and the old wording left families waiting on a step that was never going to come.

NEW

Create a repeating event once

A co-op that meets every Tuesday used to need a separate event for every Tuesday. The event form has a Repeats setting now: every week, or every other week, ending on a date you pick or after a set number of dates. It lists the dates it will create before you save. Every date uses the weekday and time of the first one. When a week is cancelled, open that date on the calendar and choose Skip this date. The rest of the series stays where it is. Signups stay off while an event repeats, since one signup would hold a spot on every date. Events you already have are set to Does not repeat, so your calendar looks exactly as it did.

NEW

A way out of the wrong co-op

If your account belongs to more than one co-op, it is easy to land in the wrong one with no idea how to get back. The only route out was a card on your profile page, which a confused new member has no reason to go looking for. A small panel now sits on your dashboard naming the co-op you are in and the others you belong to, with a button to switch to each one. Close it and it stays closed for that co-op. A link to your notification settings sent in an email now opens the settings for the co-op that sent it, rather than whichever one you used last. If you belong to a single co-op, which is almost everyone, none of this shows up.

POLISH

Your co-op's name on the mail it sends

Announcements, reminders, digests, waitlist notices, balance reminders and event signup confirmations all arrived from HomeschoolGo. They now show your co-op's name as the sender, so it is obvious at a glance who sent it. Only the name on display changed. The address behind it is the same one as before, so delivery is unaffected. Mail from HomeschoolGo itself, like billing and account notices, still comes from HomeschoolGo.

FIX

Fixed: two more places a payment could start twice

Earlier this week we stopped a registration fee being payable from two open payment pages at once. Paying down a balance works the same way now: asking to pay when you already have a payment page open for it hands you back that page instead of opening a second one. Event signups got a related fix. Signing up again for an event you had cancelled could go through twice if two requests landed at the same moment. Now only one of them does.

FIX

Fixed: a class count that showed zero when it wasn't

Each child's card on My Students says how many classes they are enrolled in. When that number could not be read, the card printed a zero, which looks the same as a child signed up for nothing. It also brought up the Browse classes prompt that only appears at zero, so a family with a full schedule was invited to go enroll. A number that cannot be read now says so on the card instead, and the Browse classes prompt appears only when a child really is enrolled in nothing.

FIX

Fixed: a STOP reply that was not recorded

A family who replies STOP to one of your co-op's text messages stops receiving them, but their record did not always agree. A one-word STOP could be filed as an ordinary reply, so the family still showed as opted in, and a later START did not put them back. One-word STOP and START replies now count as opting out and opting back in. Longer messages are left alone, and so is HELP.

NEW

Choose how the check-in board is ordered

The Roll Call board grouped family cards by the name it shows, which is the parent's first name, and that was the only order there was. A picker in the toolbar now offers three: family name, family last name, or one ungrouped A to Z list of everyone, students and parents together, which is the shape a tap-your-own-name check-in tablet wants. Your choice is saved to your own account rather than your co-op's, so it follows you to whatever device you work check-in from and does not change what anyone else sees. Switching is instant, so you can change it partway through a morning. The Settings card that turns Roll Call on also has a second checkbox now: whether teachers can use the board. Every co-op already using Roll Call keeps the access its teachers have today, so nothing changes unless you turn it off. Co-ops that switch Roll Call on from here start out admin-only until an admin opts teachers in.

FIX

Fixed: the HomeschoolGo logo was invisible in dark mode

On several pages outside the dashboard, including pricing, terms, and the page you land on when a link is broken, the HomeschoolGo wordmark was drawn in near-black on a near-black background in dark mode. It was on the page the whole time, just impossible to read. It follows the theme now, the same way the rest of the page does.

FIX

Replies to your co-op's emails now reach you

Announcements, email blasts, reminders and balance emails all went out from an address that cannot receive mail, so a family who hit Reply got a bounce back instead of reaching anyone. Every one of those now uses your co-op's contact email as the reply address, and announcements carry a "Questions? Email ..." line at the bottom. If you have not set a contact email in Settings, nothing changes for you. Setting one is what turns this on.

FIX

Fixed: a registration fee that could be paid twice

A family could reach the payment page for the same registration fee from two places, the reminder on their dashboard and the term confirmation form, and each one opened its own payment. Both stayed open, so a family who came back to the other tab later could pay a fee they had already settled. Both routes now hand back the same payment page for a given fee. If a second payment for a settled fee does still come through, it is recorded and flagged for review rather than passing unnoticed.

NEW

Ask to drop a class, right from your schedule

Dropping a class yourself only works when the class is free, your co-op allowed it, and the cutoff has not passed. When any of that was not true, the menu on that class row was simply empty, with no explanation of why and nothing to click instead. Every enrolled class now has an action. Unenroll when you can do it yourself, otherwise Ask to drop this class, which opens a message to your co-op's admins with the request already written for you to edit before you send it. A class with a drop window shows the date it closes, and says so for two weeks after it passes. Admins editing a class now see a line under the unenroll setting spelling out what families will see.

NEW

Mark the days your co-op does not meet

Class meeting dates were worked out from the class's weekday and the term's start and end date, so a holiday or a break week still looked like a normal class day. Terms now have a No-meet days card where you add a date and, if you want, a reason. Those dates drop out of the calendar feed families subscribe to, so a class stops appearing on their phone over a break. The class page also has a Next class line now, which skips them. A term with no no-meet days works exactly as it did before.

NEW

Forum mentions and new-topic notifications

Typing @ when you start a forum topic now suggests members and notifies the person you pick. It already worked in replies, but in an opening post the mention was dropped and nobody heard about it. Mentions also render as a name now instead of the raw text stored behind them. A new topic notifies the members who can see that category, in the app and on their phone. Email for new topics stays off until an admin turns it on from the forum home, and anyone can mute a single category from its page if a channel is busier than they want.

FIX

Fixed: class discussion channels nobody could open

Every class gets its own forum channel. Opening one failed for anyone who was not an admin, so the families enrolled in a class could not reach the channel for that class, and topics posted there notified no one. Both are fixed. Teaching a class now also grants access to that class's channel, which it never did before.

NEW

See who unsubscribed, and put them back

Communications, then Email, has a new Unsubscribed tab listing every address that has opted out of your co-op's email, with the reason and the date. If someone unsubscribed by accident, one click puts them back, and the change is written to your audit log. Addresses that bounced or reported an email as spam are held back on purpose, because sending to those again hurts delivery for everyone else at your co-op. The tab shows them as protected and says why. Families can undo it themselves too. The page they land on after unsubscribing now offers a link to resubscribe.

FIX

Teacher access follows who actually teaches

Co-ops often leave a parent who teaches a class on the Family role and identify them as a teacher only by the class they are assigned to. Settings and tools that checked the role skipped those people without saying so. Anything gated on being a teacher now also counts anyone assigned to teach a class at your co-op. That covers the setting that lets teachers see all rosters, incident reports, and what a teacher finds in search. If you have the see-all-rosters setting turned on, parent-teachers who were left out before can now see what it grants, so it is worth a look.

POLISH

A warning when an email address looks mistyped

Typing gmail.con instead of gmail.com used to fail in silence. The screen said to check your email, the link went to a domain that does not exist, and nothing ever said so. The sign-in, sign-up and password-reset forms now check the domain against common ones and ask whether you meant the correction. Tap the suggestion to fix it, or press the button again to send it exactly as you typed it.

NEW

Message a whole class at once

Every class now has a single message thread holding its teachers, every enrolled family, and any student logins on the roster. A teacher starts it with Message class on their class page. Once it exists, enrolled families see the same link on the class page and can open it and reply, so a note about supplies or a room change reaches everyone instead of going out parent by parent. Families cannot start the thread themselves. A teacher opening it is what turns it on for that class, so a class where no teacher has done that looks exactly as it did before. A teacher who opens the thread is also told how many enrolled families have no login yet, since those families are not in it and still need reaching another way.

NEW

Add a note when you sign up for a volunteer shift

Signing up for a shift is still one click. Afterward you can attach a short note to your signup, like which parent is actually coming or that you need to leave early, and you can edit or remove it later. Admins see the notes under the roster on the Volunteer page. Shift rows no longer carry the standing "you'll get a reminder" line, since reminder timing is now set per shift by whoever created it.

FIX

Fixed: a logo upload that failed without saying why

Uploading your co-op logo could fail with nothing on screen to explain it, even for a file inside the 2 MB limit. Those upload now. A file over the limit is turned away right away with a message telling you so, instead of failing quietly.

FIX

Fixed: the print window could stall in Safari

Printing your schedule opens a separate print window. In Safari that window could hit an error on its way out and just sit there once you were finished. It closes cleanly now.

FIX

Fixed: a missing space after a name shown in bold

In a handful of sentences that print a co-op or family name in bold, the space right after the name went missing, so two words ran together mid-sentence. Fixed everywhere it happened.

NEW

Hand in your student's work yourself

On the Assignments page you can now attach your student's work to an assignment: a photo of a worksheet, a scan, a document. Attaching it marks the assignment turned in. Students under 13 do not get a sign-in of their own, so until now their work could not be handed in through HomeschoolGo at all and had to go to the teacher some other way. You can attach up to 10 files per assignment and remove any of them until the teacher grades it, after which they are locked.

NEW

Let teachers manage their own class description and waitlist

Settings has two new switches under Teacher permissions, both off until you turn them on. One lets a teacher rewrite the description families read for the classes they teach, while the title, fee, capacity and schedule stay with admins. The other gives them a waitlist tab for their own classes, where they can move a student into an open seat. Promoting from a waitlist bills that family for the class fee, exactly as it does when an admin promotes, so it is worth deciding deliberately. Nothing changes for your co-op unless you switch one on.

NEW

See who has paid their registration fee

If your co-op charges a registration fee, family cards on the Families page now say whether it has been paid: Enrolled when it has, Accepted when you have approved the family but the fee is still outstanding. A count sits above the list and a filter pulls up either group, which helps when you want to email everyone who still owes. It reads the registration fee charge on a family's ledger, so it appears on its own once a family has been charged. A co-op that does not charge a registration fee sees none of this.

POLISH

Family cards are easier to scan

The badges on a family card have a sharper style and now wrap onto a second row instead of stopping after three, so nothing is quietly hidden. The family-level medical and dietary summary is gone, because the same information was already sitting on each child's own chip directly below it.

NEW

Choose when a volunteer shift reminder goes out

Creating or editing a volunteer shift now lets you turn its automatic reminder off, or move it closer to the shift or further out. Every existing shift keeps the reminder it already had, about two days ahead, so nothing changes until you change it. Volunteers who have signed up can see when their reminder is due, and the event forms now say what attendees get without you having to remember: a week out, the day before, and the morning of.

POLISH

Ages on the admin Students page

The Students page now shows each child's age beside their grade, counted from the birthdate on file against your co-op's own calendar day. You can sort by age, or filter to under 5, 5 to 8, 9 to 12, 13 to 17, 18 and up, or children with no birthdate recorded. A child with no birthdate on file shows a dash, the same as grade already does.

POLISH

The join form says up front that text messages are optional

Your co-op's join form opens on an email box, with the text-message checkbox a step behind it. That first step now shows a preview of the checkbox, unchecked, and says that joining does not depend on it. The checkbox families actually tick is still the one in the registration form itself, and nothing about how consent is recorded has changed.

FIX

Fixed: a blank screen when opening an admin page you do not have access to

The admin tools grid shows every tile to every admin, so an admin whose permissions do not cover Members, Applications, custom pages, family merge or the site importer could click one and land on a blank screen that would not reload or go back. Those pages now say that you do not have access to them, and give you a link back to the admin tools.

FIX

Fixed: a form that quietly did nothing after an update

If you left a tab open while we shipped an update and then submitted a form in it, the submission could disappear with nothing on screen to say so. A prompt now appears at the bottom of the page asking you to reload first. It used to appear only inside the dashboard, which left sign-in and your co-op's join form, where losing a submission costs the most, with no warning at all.

NEW

Add photos and files to a calendar event

You can now attach photos and files to an event: a photo of where to park for a field trip, an example of the art project, a permission slip to print. Add them while you create the event, from the event page afterward, or straight from the calendar. Pick one file or several at once, up to 20 MB each. Families see images as previews and everything else as download links when they open the event. An event with no attachments looks exactly as it did before.

NEW

A Students page that includes the children enrolled in nothing

Admins have a new Students page: one list of every child across every active family, with their grade, their household, and the classes they are in for the term you pick. It covers children who are not enrolled in anything, which the emergency roster cannot show you because that one is built from class rosters, and those are usually the children you are looking for when something has been missed. Filter by grade, by class, or by a flag like an allergy or a dietary note, and download the list as a spreadsheet.

POLISH

Family search now finds a family by a child's name

Searching for a family only matched the household name and the parents, so you had to know the adult rather than the kid. It now matches children's names too, and it forgives spelling and word order, so a partial or slightly wrong name still lands. When a family turns up because of a parent or a child, that name is shown underneath so you can see why it matched. This applies anywhere you pick a family, including the directory and billing.

POLISH

The event page now shows the event's name

Opening an event from a link in an email used to land you on a page that never actually said which event it was. The name is at the top now. The page was tightened up at the same time: four sparse cards became two, a blank description no longer draws an empty divider, and the calendar buttons collapsed into a single Add to calendar menu. Every co-op will notice this one, since it changes how the event page and the calendar popup look.

NEW

Your class page now shows missing work, grades, and what you owe

The page for a class used to only look ahead. Work that is past due and still not turned in now leads the list, so it cannot hide behind something due next week. If your co-op grades or takes attendance, you will also see how your student is doing in that one class. And the fee line shows the price for your family with any waiver or sibling discount already applied, plus whether there is still a balance. Co-ops that do not grade or take attendance will not see those parts at all.

NEW

A family's waivers and fees now show even without an application

For admins: the Applications page for a family is now a membership record. It lists the terms they have confirmed, the waivers they have signed and when, and their enrollment fees with paid or pending status. Families who joined through a roster import never filled out an application, so this page used to show them nothing at all, even when everything was signed and paid. Applications still appear below, unchanged.

FIX

Fixed: closing the join-fee payment page could leave you stuck

If your co-op charges a required join fee and you left the payment page before finishing, you would land back on the same information form every time you signed in, with no way through to your bill. Everything you had filled in was already saved, so the form was asking twice for nothing. It does not re-ask now, and the classes page offers the payment directly with the amount owed. Anyone still caught by this is let through as soon as they pay or submit the form again.

FIX

Fixed: some members showed as an email address instead of a name

If your co-op brought your family in from a spreadsheet, your name could appear as your email address in event signup lists, the forum, messages, roll call, and in the emails your co-op sends out. Your name was on file the whole time, it just was not reaching those places. It shows up everywhere now, and accounts that were already affected have been filled in. If you set a different name on your own profile, that one is left alone.

FIX

Fixed: assignments turned Overdue before the day was up

Assignments flipped to Overdue at midnight UTC rather than midnight where your co-op is. For a co-op in the US that is the middle of the afternoon, so work that was still due that day already showed as late. Overdue now follows your co-op's own day.

POLISH

Sunrise and Sage page themes are a shade deeper

Two of the page-builder themes were not dark enough for white text to sit comfortably on them. Sunrise and Sage are both a step deeper now, so buttons and headers on your public pages are easier to read. It is the same hue, just darker. If your co-op uses either theme, the change carries to your login page, your co-op's emails, and the link preview someone sees when they share your page.

NEW

Open a class from My Classes to see its files and what's due

Tapping a class in My Classes used to reopen the signup window. It now opens a page for that class, with the files your teacher has shared (a syllabus, a supply list), the assignments coming up and when they're due, and the term and fee. Files added in the last week are marked New. Before this, a teacher could upload a file for the class and families had no reliable way to find it.

FIX

Fixed: your text history could say a message went out when it didn't

Two things could make the texting history overstate what happened. A message that never actually went out was still recorded as sent, and a message the phone carrier rejected after the fact kept its original "sent" label. Carrier results now flow back into the history, so a message that failed or was blocked says so, and the delivered count matches what really reached families' phones.

FIX

Fixed: white text on colored buttons went nearly black in dark mode

In dark mode, text sitting on your co-op's accent color came out almost black instead of white. That hit buttons, badges, the sidebar's active row, and the messages bar. The photo viewer and the page footer were the worst of it, close to unreadable. All of them read correctly now. Light mode was never affected, which is why this went unnoticed for so long.

POLISH

Teal and green co-op colors are a step deeper now

Two of the twelve accent colors weren't dark enough for white text to sit comfortably on top of them. Both are now one shade deeper, so buttons, badges, and the sidebar's active row are easier to read. If your co-op uses teal (the default) or green, you'll see the shift anywhere your accent color fills a surface.

FIX

Fixed: teachers who turned off email notifications still got enrollment emails

A teacher who turned off email notifications in their profile still got an email every time a student enrolled in one of their classes. That setting is respected now.

FIX

Fixed: the mobile menu was unreadable in dark mode

The mobile navigation menu on the homepage was invisible in dark mode: light text on a light background. It's visible now.

POLISH

Finding "Delete" after withdrawing a family is easier

Withdrawing a family used to close the edit panel right away, so the option to permanently delete their record, which only appears once a family has no active members, was easy to miss. The panel now stays open after you withdraw, so Delete is right there if you need it.

POLISH

Your messages icon lights up with your co-op's color when you have something unread

Unread messages used to be a small red badge in the corner. Now the whole messages bar fills with your co-op's accent color while you have something unread, so it's easier to notice.

NEW

View or print a full billing summary, no spreadsheet needed

The billing summary used to be a CSV-only download. It's now also available as a page you can view in the browser and print or save as a PDF, with the same per-family breakdown. The CSV is still there too, and it opens free in Google Sheets, Numbers, or LibreOffice, so you don't need Excel.

FIX

Fixed: a payment still settling could count as collected

A bank payment that hadn't finished settling yet used to count toward your collected total on Billing, so the outstanding balance looked lower than it actually was. It's now shown separately as "Processing" until it settles, so the totals on Billing and your Reports match.

NEW

Bulk-invite families you imported who haven't signed in yet

If you brought your co-op's roster in from a spreadsheet, you can now send sign-in invites to everyone who imported but hasn't claimed their account yet, all at once, from Settings → Import. One-by-one invites are still there if you'd rather send them individually.

NEW

See your claimed volunteer shifts at a glance

The Volunteer page now has a "Your shifts" card listing everything you've signed up for, above the full upcoming-shifts list. Tap a shift to jump straight to it and cancel from there.

FIX

Fixed: some imported families couldn't get the email to claim their account

If your co-op imported your family from a spreadsheet, the email that lets you claim your account is a one-time sign-in link, not a newsletter. A previous unsubscribe could still block it from ever arriving, and asking your co-op to resend it wouldn't help. Sign-in links like this always go out now, the same way a password reset does.

FIX

Fixed: exempt teachers sometimes saw the wrong price on a class card

If your co-op waives some fees for teachers or admins, the class catalog card and the details pop-up used to still show the full price, even when checkout would charge less or nothing. Both now show what you'll actually pay.

FIX

Dietary notes and medical needs are now separate tags in the Families directory

A child with only a dietary note, like a food preference, used to show the same amber "Medical" tag as a child with a listed allergy or medical condition. The directory now shows dietary and medical as their own tags, so you can tell at a glance which one you're looking at.

POLISH

Class descriptions show automatically on your student's schedule

A class description on your student's weekly schedule used to be tucked behind an "About this class" tap. It's shown right away now, so there's no toggle to remember to open.

NEW

You'll get a confirmation when you sign up for an event

Signing up for an event now sends you a confirmation email once your spot (and payment, if there is one) is confirmed. If you're on the waitlist, the email says so instead of telling you you're in.

NEW

Event organizers can now get notified about signups

If you create an event, you'll now be notified by email and in-app when someone signs up or cancels, rolled into one running update instead of a message per signup. Choose every signup or a daily summary, turn it off for a specific event, or assign a coordinator to receive the notices instead of you. Your own notification channels are still set from your profile.

NEW

Turn on automatic reminders for every event you create

Admins can now turn on a setting that adds reminder emails (a week before, a day before, and the morning of) to every new event automatically, instead of adding them one event at a time. It's off until you turn it on in Settings, and existing events aren't affected either way.

NEW

Change who's attending an event without cancelling your signup

Need to add or remove someone from an event you already signed up for? There's now a "Change who's attending" button on the event page, so you don't have to cancel and sign up again, which used to risk losing your place in line or getting bumped to the waitlist if the event had since filled up.

NEW

Manage your messages: archive, delete, and mark conversations read

The messages inbox now has a manage mode so you can select multiple conversations at once to archive, delete, or mark read or unread. Archived conversations move out of your inbox until someone sends a new message, and deleting a conversation only removes it from your view; everyone else's copy is untouched.

FIX

Fixed: the messages unread badge could show a stale count

The unread badge next to Messages could get stuck on an old count, or miss your first message from someone new, until you refreshed the page. It now stays in sync on its own.

FIX

Fixed: an old password-reset link could leave you stuck

An expired or already-used password-reset link used to redirect you to a confusing dead end: sometimes your dashboard with no explanation, sometimes a sign-in page with no reset option. Both cases now send you to a clear next step, with a reminder to use the most recent reset email if you requested more than one.

NEW

Co-op admins can now read and reply to text messages from families

If your co-op texts families, replies now land in an Inbox next to Send, with an unread badge so nothing gets missed. Conversations are grouped by sender, count against your monthly text allowance the same as outgoing messages do, and a family that has texted STOP is shown but can't be replied to, since their carrier blocks delivery.

NEW

Staff fee exemptions now cover every class, org-wide

Admins can now waive class fees for every teacher across the whole co-op with one setting, instead of only for the class each teacher is assigned to. The per-class waiver is still there if you'd rather keep it narrow.

NEW

Choose which fees a staff exemption waives

By default, an admin or teacher fee waiver covers every fee on a class, materials included. Now you can uncheck specific fees, so a waiver covers tuition but still charges for materials, for example.

NEW

Students can see the class description on their schedule

A student's schedule now includes each class's description behind an "About this class" toggle. Students can't browse the class catalog, so before this there was no way for them to see it.

FIX

Fixed: co-ops without a public page got a generic sign-in screen

Members of a co-op whose public page isn't turned on used to land on a plain, unbranded sign-in screen instead of one showing their co-op's logo and name. Branding now shows regardless of whether the public page is on.

FIX

Fixed: messages were unreachable at tablet screen sizes

On tablet-sized screens, there was no way to open messages at all. A new button in the top bar opens your inbox at that size, and the full inbox view now renders correctly there too.

NEW

Owners can skip the information review for their own family

Co-op owners can now skip the confirm-your-information step for their own family instead of being blocked by it, with an undo link if they change their mind. Other families still complete it as usual.

FIX

Admins now see a reminder to confirm their information too

Admins and owners who are also part of a participating family used to land on a blocked page with no explanation if they still owed the term's information review. They now see the same reminder families see.

FIX

Fixed a dashboard crash for families still confirming their information

Opening the class catalog, or navigating around the dashboard, could crash the page if your family still needed to confirm its information for the term, or had a membership application pending. That's fixed.

NEW

Enroll in multiple classes with one checkout

You can now add several classes to a cart and check out for all of them at once, instead of paying for each class separately. Review everything together before you pay.

NEW

Give a teen their own sign-in

Students 13 and older can now have their own sign-in to see their classes, assignments, grades, and schedule. You choose when to set it up from My Students, you can still see everything they see, and you can pause or remove access at any time.

NEW

Add any number of fees to a class

Classes still start with a single Tuition amount, just like before. Now you can add as many additional fees as you need, not just a materials fee, and choose whether each one qualifies for the sibling discount.

NEW

Offer more than one price for a class

You can now set up additional pricing rates for a class, like a trial rate or a non-member rate, and assign specific families to one for a term. This only appears once you add a second rate, so most co-ops won't see any change.

FIX

Waivers added mid-term now reach everyone who needs to sign

If you added a new required waiver after some members had already joined for the term, they never got a prompt to sign it. That's fixed, and signing a waiver on its own no longer triggers an unexpected charge.

FIX

Deleting a term now checks for its volunteer policy first

A term whose only content was a volunteer policy (required credits, shift rules) could look empty and get deleted along with that policy, with no warning. The delete screen now catches this and asks you to remove the volunteer policy first.

NEW

Add a materials fee, billed separately from tuition

Classes can now have a materials fee alongside tuition. Materials fees are billed in full and aren't reduced by the sibling discount, so a co-op can charge for supplies without it getting discounted away.

NEW

Add images to your emails

The email composer's Photo button now works when writing an announcement or blast. Insert a photo and it shows up correctly sized across email clients.

FIX

Fewer duplicate households

Inviting someone who already had a placeholder record in your family directory (a co-parent added without their own login, for example) could create a second, duplicate household once they signed in. That's fixed. Duplicate-family detection also now checks both phone number fields on file, so more real matches get caught.

FIX

Support chat stays on one conversation

Chatting with support from a new device, browser, or after signing back in used to sometimes start a new conversation instead of continuing the old one. Your chat history now stays together in one thread no matter how you reach us.

POLISH

Search by any parent's name

The Families directory and Billing search boxes used to only match a household's own name. Now you can search any of them by typing either parent's name too.

POLISH

Multi-day events look cleaner on the calendar

Events that span several days now show as a single connected band across the calendar instead of a separate block on each day. They also have a softer, translucent look that matches the rest of the calendar.

POLISH

Cleaner Terms management

The Terms admin page got a redesign, with clearer term cards and usage counts, so you can see how many classes and enrollments are tied to a term before you edit it. Term deletion also moved into the Edit view instead of living in a separate menu.

FIX

Fixed pages showing the wrong date in the evening

Because our servers run on a different clock than your co-op, some pages could roll over to tomorrow's date hours before midnight where you live, as early as 5pm Pacific. That could make a class look closed before it actually was, or an assignment look overdue when it wasn't due yet. Dates now follow your co-op's own time zone throughout the app.

POLISH

Cleaned up the homepage pricing section and app store badges

Tightened up the spacing and sizing on the pricing section and the App Store and Google Play badges on the homepage.

FIX

Multi-day events now show up on every day they run

Events that span more than one day used to only appear on their first day on the calendar. Now they show up on every day they run, so a multi-day trip, workshop, or camp is visible no matter which day you're looking at.

NEW

Admins get a warning before approving a duplicate family

If an application's listed children match a student already on file under a different family, admins now see a warning before approving it. The directory's duplicate-family detection was also expanded to catch matches based on a child's name, even when nothing else about the two families lines up.

FIX

Paid class enrollment on mobile now matches the web

Enrolling in a paid class from the iOS or Android app used to skip some of the checks the web dashboard applies: whether the class charges a fee, whether registration is open, and whether the class is full. Enrolling from the app now follows the same rules, so a class works the same way no matter which one you use.

FIX

Cancelled classes no longer show up where they shouldn't

After a class was cancelled, it could still show up in a teacher's class list, on a family's schedule, and in search results, and it could still be edited as if it were active. Cancelled classes are now hidden everywhere they shouldn't appear and can no longer be edited.

NEW

Redesigned the help center

The help center has a new persistent sidebar, full-text search you can open with Cmd/Ctrl+K, and dark mode support. Every guide now has an on-page outline and a way to give feedback or reach support right from the article. The help center also has its own shorter address: help.homeschoolgo.app.

FIX

Emails from HomeschoolGo now show a sender name

Some emails from HomeschoolGo were showing up with a bare address and no sender name. They now show HomeschoolGo as the sender.

POLISH

Cleaned up the country picker in the setup wizard

Fixed the United States label wrapping onto two lines on narrow phone screens, which made the US and Canada options look mismatched in height.

POLISH

Household members are now labeled in Admin > Members

A spouse or co-parent who joined under their family's main contact used to show up in Admin > Members looking like an unvetted signup, sometimes with just a bare email address for a name. They're now marked with a badge, and inviting a household member requires a first and last name so their name shows up correctly from the start.

NEW

Reworked filtering and sorting on the Families page

Filter families by grade, activation status, or any of your co-op's own custom fields, then combine filters and sort the results however you like. Applied filters show up as removable chips, so it's easy to see and clear what you're viewing.

FIX

Cleaned up the Families quick-look view

Opening a family's quick-look card used to dump every custom application answer as a long, unlabeled block of text under their name. It now shows a clean "View applications" link instead, so admins can still see the answers without the wall of text.

NEW

Permanently delete a family, with settled payments preserved

Owners, and admins you grant the permission to, can now permanently delete a family that has already withdrawn from your co-op. A two-step confirmation walks through everything that will be removed, and any payments or refunds that already went through stay in your records.

NEW

Add adults authorized to pick up your kids

Families can now list who's allowed to pick their children up from co-op, separate from emergency contacts. The same person can be both. Staff can see this list during check-in, and it's included on the emergency roster.

NEW

Dietary restrictions, split out from allergies

You can now note dietary restrictions on your child's profile separately from allergies. It shows up everywhere allergies already do, including class rosters and the emergency roster.

NEW

See at a glance who has an emergency contact on file

The Families directory now shows an icon on a child's card when an emergency contact is on file, so admins don't have to open every family to check.

FIX

Approved families no longer get stuck re-confirming their info

Some approved members kept getting asked to reconfirm their family's information before they could sign up for an event, class, or volunteer shift, even though they'd already been approved for that term. That's fixed, and the error now links straight to the confirmation page instead of leaving you stuck.

NEW

A running tally of how families answered your application questions

Reviewing applications now shows a summary of how everyone answered your multiple-choice questions. Click an answer to filter the list down to just those families.

FIX

Billing now separates paid from not-yet-billed

Billing used to count a family as "paid up" whether they'd actually paid or simply hadn't been charged for the term yet. It now shows both numbers separately, so you can tell the difference at a glance.

FIX

Fixed attendance notes that could silently fail to save

A timing issue could make the attendance page say a session note was saved when it actually wasn't. Notes now save reliably, and the page won't claim success until they do.

FIX

Roll Call now tells you when a check-in didn't sync to attendance

Checking a student in through Roll Call is supposed to mark them present on that day's class attendance too, but a bug could quietly block that sync for an entire class. Check-ins now report whether the sync went through, and why when it doesn't.

POLISH

Family profile pages now match the quick-look view

The full family profile page was missing a few things the quick-look popup already showed, like the secondary contact and per-child emergency contacts. It now shows everything quick-look does.

FIX

Recovers automatically after we ship an update

If you had a tab open when we shipped an update, some actions in that tab could fail with a generic error until you refreshed. The app now detects this and reloads the page for you automatically.

POLISH

Redesigned the sign-in page

Email sign-in now leads the page, with Google and Apple as secondary options underneath instead of stacked above the form.

FIX

Fixed a signup dead end for some new members

Joining a co-op could sometimes leave you with an account you couldn't sign into and no way to finish setting it up. Signing up now always sends a working link, and if you got stuck before, trying again will get you unstuck.

FIX

Sign-in and password reset links no longer get used up before you click them

Some email programs and security scanners open links automatically to check them for safety, which was quietly using up one-time sign-in, password reset, and welcome links before the real recipient ever clicked them. Those links now open a quick confirmation screen instead, so the link stays valid until you choose to continue.

FIX

Fixed a role bug when approving applications

Approving a new member's application could be refused if they already held a different role in your co-op, for example an admin who's also a parent applying to enroll their kids. Approval now leaves their existing role alone and goes ahead with the rest of the application.

FIX

Fixed some accent colors and focus outlines that weren't showing up

A styling bug made a handful of accent-colored badges, highlighted rows, and keyboard focus outlines render fully invisible instead of tinted. They now show up correctly, and they still follow your co-op's own accent color.

FIX

Fixed image uploads on new custom pages

Adding an image while creating a new custom page didn't work. The image button only appeared after you'd already saved the page once. It's there from the start now.

POLISH

Redesigned the calendar

The dashboard calendar has a cleaner month view, easier-to-read event listings, and a rebuilt mobile layout that lists a selected day's events in full instead of squeezing them into tiny cells.

NEW

Desktop notifications for new direct messages

Turn on desktop notifications from your profile page to get a browser notification when someone sends you a direct message while a dashboard tab is open. The first time you open your messages, a small banner offers to turn it on; dismiss it once and it won't ask again.

FIX

Failed invite emails are now visible, with a way to resend

Inviting a new team member or household member could quietly fail to deliver its email while still reporting success, leaving the invite stuck with no way to try again. A failed invite now says so, and a Resend invite option sends a fresh link.

NEW

Email reminder for volunteer shifts a week out, plus finer notification control

Volunteers now get an email reminder about a week before a scheduled shift, in addition to the day-before reminder already in place. A new toggle on your notification settings lets you turn off just that reminder without silencing everything else from your co-op.

FIX

Signing in without a co-op no longer leaves you stuck

Signing in through a co-op's own web address could send you to a generic, unbranded page instead of keeping that co-op's look and taking you to the right place. If you were signed in with no co-op membership at all, the dashboard used to offer only one option: set up a brand new co-op, the wrong move if you were actually waiting on someone else's approval. It now recognizes a pending or approved application, or a matching imported family record, and points you to the right next step instead.

FIX

Opening a sign-in link twice no longer shows "link expired"

Opening the same sign-in or invite email link twice in one browser, for example if your email app pre-loads links, could show a "link expired" error even though the first click had already signed you in. It now recognizes you're already signed in and continues normally.

NEW

Forum replies now notify everyone in the thread, not just @-mentions

Replying to a forum thread previously only notified someone if you specifically @-mentioned them, so a discussion could go quiet unless people happened to revisit the page. Anyone who's posted in a thread now gets notified of new replies too, and each thread has its own Mute option if you'd rather not be.

NEW

Filter your class dashboard to one child at a time

Families with more than one enrolled student can now scope the class dashboard to a single child instead of seeing every child's instructors, assignments, grades, and attendance interleaved together. The "All" view is still there and stays the default.

NEW

Family-level custom field answers now editable outside the join form

A custom registration question set to ask once per family, rather than once per child, could previously only be answered when someone first joined. Its answer can now be updated afterward from the family's own profile page or by an admin editing the family, and shows on the family's card in Admin > Families too.

POLISH

Families list now shows everyone by default for smaller co-ops

Admin > Families used to default to showing 25 families at a time behind a pager, which could make it look like families were missing for a co-op well under that size. It now shows everyone by default when there are 150 or fewer; larger co-ops still default to a page at a time, with the page-size options still available either way.

POLISH

Search results now show icons for each page

Page results in the dashboard's search bar (opened with Cmd/Ctrl+K) now show the same icon used in the sidebar, matching how content search results already looked.

NEW

Redesigned the Members page

Admin > Members has a cleaner layout: member names now always resolve correctly instead of occasionally showing a bare email address, plus avatars, last-active and joined dates, and sorting and filtering. Inviting someone is now a single button, with the list of roles tucked behind a details toggle instead of cluttering the page.

NEW

Invite someone who doesn't have a HomeschoolGo account yet

Admin > Members can now invite a new member by email even if they've never signed up before. Their account is created as part of the invite instead of requiring them to sign up first. You can invite several people at once, and optionally require an invited family to submit a membership application before they're approved.

NEW

Owners can exempt admins from the join fee, separate from teachers

Co-ops that waive the join fee for teachers can now do the same for admins independently from Admin > Settings. Exempting one role no longer silently exempts the other.

FIX

Approving a new member's application could fail after their account was already created

A recent change could make approving a membership application report an error on the final step, even though the new member's account, family record, and any join fee had already been created. This left the application stuck instead of approved. Fixed.

FIX

Text messaging number verification is more likely to pass review

If your co-op registers a toll-free number for text messaging, we fixed a misconfigured setting that was causing verification requests to get rejected. We also added a page reviewers can check that shows your co-op's contact info, messaging categories, and opt-in details.

NEW

Search the FAQ list

The FAQ page now has a search box that filters as you type, matching against both the question and the answer. Matching text is highlighted, and clearing the search brings back whatever was open or closed before you started.

NEW

Jump straight to any month or year on the calendar

The calendar now has month and year dropdowns next to the back-and-forth arrows, so reaching next spring's schedule (or last year's) doesn't take a dozen clicks. Works in month, list, and week view.

FIX

Help articles no longer run words together after bold or italic text

A formatting bug was joining some bolded or italicized words directly into the word that followed, with no space in between. Fixed across the help center.

POLISH

Dollar amounts now show with comma separators

Any dollar amount of $1,000 or more now displays with a comma thousands separator, like $1,234.00 instead of $1234.00. This applies across dashboards, payment history, class and event fees, and email receipts.

NEW

Application history now stays with the family, not the email address

Opening a family's history from Admin > Members shows every application they've submitted, linked to the family record itself. The history stays complete even after an email change or when two family records get merged.

POLISH

The Directory page is now called Families

The page title now matches what the sidebar has called it all along. Nothing else changed: same page, same information, just one consistent name across the dashboard, help articles, and onboarding.

NEW

Rich text formatting for FAQ answers and your welcome message

FAQ answers (Admin > Content) and the member welcome message shown on the family dashboard (Admin > Settings) can now use the same rich text editor as events, announcements, and classes — bold, italic, headings, lists, and links, instead of plain text only.

FIX

Editing your family's secondary contact now reliably saves

Updating a secondary contact's name or phone number from Family Information could report success without the change actually showing up anywhere — Directory, Emergency Roster, and Household members kept displaying the old info. Saving a secondary contact now updates it everywhere it's shown.

FIX

Deleting a classifieds listing now actually works

The Classifieds board's delete button reported success without actually removing the listing, so a deleted item could still show up after a page reload. It's fixed.

FIX

Enrolling siblings together now applies the sibling discount consistently

When a family enrolled two or more siblings in classes in the same checkout, which student counted as the discount "anchor" could come down to chance, occasionally charging a sibling full price instead of the discount they should have gotten. Enrolling siblings together now applies the discount consistently, based on the order you added them.

FIX

Class and co-op names with an "&" now display correctly in emails

A class or co-op name containing an ampersand (like "Art & Science Club") could show up as literal "&" text in enrollment and waitlist-refund emails instead of a plain "&". Fixed.

FIX

Some emails' unsubscribe link now actually works

New-application notifications, announcements, forum mention notifications, and digest emails could show a broken unsubscribe link instead of a working one. All four now link correctly.

FIX

Class descriptions no longer run words together in the catalog preview

A class description with multiple paragraphs or headings could show its truncated catalog-card preview with words jammed together across paragraph breaks, like "...session.What to expect" instead of a normal space. Fixed, along with a bit of visual polish on the class catalog card.

POLISH

Redesigned the family card in the Directory

The family card in Admin > Directory has a cleaner layout: contact info now reads as stacked icon-led rows instead of a cramped line, and a family's students show as compact chips instead of a list that could crowd out everything else. Cards in the same row also now line up to a consistent height.

NEW

Permanently delete a class, when you really need to

Classes could previously only be cancelled, which keeps every record in place. Admin > Classes now also has a delete option for when a class needs to be removed for good — cancelling stays the recommended choice and is still there. Deleting asks you to type the class's name to confirm, shows exactly what will be erased (enrollments, attendance, assignments, and grades), and keeps unpaid charges on family ledgers so the books stay accurate. A copy of the class record is kept privately in case something needs to be recovered.

NEW

Household members list now shows adults who haven't set up a login yet

Profile > Household members previously only listed adults who'd created an account. It now also shows household members who've been added to your family but haven't signed in yet, with a "Can sign in" badge distinguishing the two. This also fixed cases where a spouse or co-parent added under a different name and contact info than the primary contact wasn't showing up correctly in the Directory or on the Emergency Roster.

FIX

Removing a child from your family account now actually works

The "Remove child" button under Profile > My Students reported success but silently didn't remove anything — the child reappeared after reloading the page. It's fixed now, and it also correctly checks that only someone in that family can remove a child from it.

NEW

Merge two families manually, for pairs the automatic detector misses

Admin > Members already flags likely duplicate family records that share an email, phone, or name. A new "Merge two families" card lets an admin search for and pick any two family records directly, which covers a case the automatic detector can't: a spouse or co-parent who signed up separately under a different name and contact info entirely. Picking two families opens the same review-and-confirm merge screen as before, including the typed confirmation before anything is combined.

NEW

Set your own display name, if you're not the primary contact

A household member who isn't the family's primary contact can now set the name shown for them around the co-op, separate from their email or account name. Click the pencil next to your own name in Profile > Household members to change it; everyone can only edit their own. The primary contact still edits their name through Family Information, since that's what already keeps it in sync everywhere else it appears.

NEW

Emergency Roster now shows a second parent contact, plus a per-student emergency contact

The Emergency Roster (on-screen, print, and CSV) previously listed only one parent's name and phone per student. It now also shows the family's second parent contact when one is on file. A new emergency contact field on the student's own profile, for someone other than a parent, like a grandparent authorized for pickup, shows alongside them wherever the roster does, and the same emergency contact also appears on the family's quick-look card in the Directory.

NEW

Owners can grant an admin permission to manage class enrollment settings

Class payment mode, staff fee exemptions, and the sibling discount used to be visible only to owners on Admin > Settings. An owner can now grant a specific admin a "Manage class enrollment settings" permission from Admin > Team, letting that admin configure those settings without being made a full owner or gaining access to owner-only settings like the co-op's country.

NEW

Directory flags imported families who haven't signed in yet

Admins can now tell at a glance which imported family records are still unclaimed. A "Not yet activated" badge shows on the family's card and in the directory table whenever the parent hasn't signed in or confirmed their info since the import, with a tooltip explaining what it means.

FIX

Registration window, scheduled announcement, and event reminder times could save to the wrong time zone

Creating or editing a class registration window, scheduling an announcement to send later, or setting an event reminder all converted the time you typed using the server's own time zone instead of your co-op's, so the time that actually saved could be off by hours for a co-op outside that zone. All three now correctly use your co-op's configured time zone, matching how event start times already worked.

FIX

The "you'll be signed out soon" warning could pop up right after signing in with a nonsensical countdown

The change that let sessions stay signed in for weeks introduced a same-day bug: the warning modal that's supposed to appear a few minutes before your session expires could instead pop up immediately after signing in showing a countdown of nearly 30 days, and in some cases stayed stuck on screen even after clicking inside it. It was caught and fixed within hours; the warning now only appears when your session is actually about to expire.

POLISH

Another help center accuracy pass

Several help articles were brought up to date with the July 22 release: the Roll Call guide now explains that check-ins feed class attendance automatically, and new or corrected sections cover the sibling discount, the require-every-waiver-re-signed toggle, the teacher join-fee exemption, and the not-yet-open-for-registration notice on the join page.

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

The automatic "your password was changed" notification still went out with 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 could briefly flash an error when you opened them with a filter already applied, such as a link to a specific term. All five load cleanly now.

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. Signing in now takes you straight there, with no interruption on the way.

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 confirm your admin role on the server before they run, not only in the screen you are looking at. Checking in both places is the standard we hold every admin action to.

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

Live chat 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 and the outside services it depends on for payments, texting, and email. 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

An audit log, per-org send limits, unsubscribe handling, and delivery tracking on outbound mail. 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]