Setting Up Your Co-op
What setup looks like end-to-end
Getting your co-op ready has five main pieces. Each one builds on the last:
- Name and brand your co-op — logo, accent color, time zone.
- Create a term — the semester or session your classes live in.
- Add time slots and rooms — when and where classes meet.
- Invite members — families and teachers who need accounts.
- Create and publish classes — then open a registration window.
The last step (classes and registration) is covered in Opening Class Registration. This guide covers everything that happens before that.
The setup wizard
The first time you log in as an admin, the setup wizard walks you through five quick steps: naming your co-op, creating your first term, setting up your schedule, inviting families, and a final “all set” confirmation. It takes about 3 minutes.
If you skip a step, you can do it later from Admin. None of it is locked behind the wizard.
After the wizard, your co-op exists but is empty. No members, no classes. The next sections cover how to fill it in.
Creating your first term
A term is the container for everything else: classes, registration windows, and schedules all belong to a specific term. You need at least one before you can add classes.
Setting up your very first term is the only time you build one from scratch. From then on, use New term with Copy from an existing term checked on Admin › Terms & Schedule at the start of each new season instead — it clones the previous term’s time slots and, if you want, its class catalog and teacher assignments, so you’re adjusting what changed rather than re-entering everything. See the Rolling a Term Forward guide for the full walkthrough.
Inviting families and teachers
Your join link is how new people get in:
Share your join link
Go to Admin › Settings › Co-op (or Admin › Applications) and copy your co-op’s public join link. Share it via email, your newsletter, or wherever your families already communicate. Anyone who clicks it can submit an application to join.
Next to the link, a Preview button opens the real join form in a preview mode: the same fields, waivers, and questions your applicants see, but submitting there never creates a real application or notifies anyone. It’s the easiest way to check how a change to your form looks without logging out or guessing.
An owner or admin who wants a real paper trail for themselves — a genuine application, waivers signed, a join fee paid if one applies — can use Apply for yourself, also next to the link. Unlike Preview, it submits for real: a normal pending application lands in your queue, tagged with a Self-application badge so you can tell it apart from a family’s.
Direct invite
Go to Admin › Members and click Invite a member. Enter one or more email addresses and choose a role — Admin, Teacher, or Family. It works whether or not the person already has a HomeschoolGo account: an existing account is added to your co-op right away, and a new one is created for them with an email invite to set it up. An optional Require a membership application checkbox (always on for Family) routes them through your standard join form — contact info, children, waivers — without waiting on your review, since the role is already granted.
For teachers: Send the same join link. The application form’s Children section is optional. Teachers who skip it get tagged with a Teacher badge in your application queue. When you approve them, they land with the teacher role and no family record. If someone is already a family member in your co-op and also wants to teach a class, don’t change their role. Instead, assign them as the teacher on that class from Admin › Class Catalog › [class] › Teachers. That gives them teaching access to that class while they keep their existing family role. (Roles are mutually exclusive. Switching someone’s role to Teacher would remove their family role, not add to it.)
Handling membership applications
Go to Admin › Applications to review incoming requests. Each applicant’s answers, waivers, and student information are all on the same page. Click any row to open them.
Approving creates their account and sends them an invitation email right away. If the term you’re currently working in charges an enrollment fee, the charge is added to their account at that point and they’re prompted to pay it. If that fee is set to required, they can sign in immediately, but they’re blocked from enrolling in classes, RSVPing to events, or signing up for volunteer shifts until it’s paid. The fee belongs to the term, not the co-op as a whole — see “Join fees” below.
You can set up custom questions and required waivers on the Application form tab. Those answers are stored with each application and visible when you review. The tab also lists what the standard form already asks: parent contact info, a second parent or guardian’s name, email and phone, an optional home address, each child’s name, grade, birthdate, allergies, and dietary restrictions, how they heard about you, and a note to the coordinator, so you don’t add a custom field for something the form already collects. A Preview button sits at the top of that tab too, so you can check how a change looks right after saving it.
A custom field can be a short text answer, a longer text area, a dropdown, a set of radio buttons (pick one), a set of checkboxes (pick any number, useful for something like “which age groups are you interested in?”), a single checkbox, or a number. Choose whichever matches how many answers you want the applicant to be able to select.
Every question also takes an optional Description. It sits between the question and the answer box, and it’s written in the same editor as a waiver, so it can carry headings, bold text, a link, or a short list. Use it when the question needs something explained before anyone can answer it honestly: what your co-op counts as a completed background check, say, or what a training requirement actually involves. The only place to put that before was the question’s label, which is a single unformatted line and gets unreadable past a sentence or two.
On a checkbox question marked required, a Minimum selections box appears. Required on its own means “tick at least one of these”. Set the minimum to 2 and families see Choose at least 2 above the options and can’t submit with fewer. That covers a question that has to collect two separate confirmations from one list, where “at least one” would let somebody answer half of it and move on. Leave the box empty and the question behaves exactly as it always has.
Check Ask once per child when a question needs a separate answer for each student (an allergy detail, a grade-specific question). Leave it unchecked for anything that applies to the whole household: the applicant answers it once, not once per child listed on the form.
Family-level answers (the ones asked once, not per child) aren’t locked to the original join form. A family can update theirs anytime from the Family Information card on My Profile, and you can edit them yourself from a family’s record on the Families page (open the family, click Edit family). Either way, the change applies going forward; it doesn’t rewrite what the family originally submitted with their application.
Showing an answer in the Families directory
A question like “which curriculum do you use?” or “where do you attend church?” is often the sort of thing members would like to be able to look up about each other. Each family-level question has a Directory block in its editor that decides whether its answers show up there. Every question starts at Hidden, so nothing is published until you choose to publish it, one question at a time.
The four choices:
- Hidden — not shown in the directory at all. This is the default.
- Admins only — you and your other admins see the answer on a family’s record. Ordinary members never do.
- Family details — any member who opens that family in the directory sees the answer.
- Details + card — the answer also appears as a line on the family’s card in the list, so it’s visible without opening anything. Cards are tight, so this one asks for a short label to use instead of the full question (“Curriculum” rather than “Which curriculum does your family use?”), and you can put at most two questions on the card.
Two extra checkboxes appear once a question is shown. Filterable turns the answers into a filter in the directory, so a member can narrow the list to everyone who picked a particular option. It’s only offered for questions with a fixed set of choices — a dropdown, radio buttons or checkboxes — because a free-text answer is usually unique to one family and would make a filter of one. Searchable includes the answers in the directory’s search box.
Per-child questions can’t be published this way. The directory lists households rather than individual children, so the Directory block is replaced with a short explanation when Ask once per child is checked.
Waivers
Each waiver can be typed directly into the editor, or you can upload a PDF (up to 50 MB) instead if your co-op already has a formatted liability waiver or code of conduct on file. Choose how a family responds too: Ask for a typed signature (they type their full legal name and check a box confirming they’ve read it; a file-based waiver shows an inline preview to read first) or Simple Yes/No agreement, a plain Yes-or-No answer with no typed name — a good fit for something like a photo release, where you just need the decision on record, including an explicit “No.”
Editing a waiver’s wording only affects people who sign after the change; everyone who already signed keeps a record of the exact wording or document they agreed to. If you need everyone — including people who already signed — to sign again (say, a materially different liability waiver), that’s a separate, deliberate step: open the waiver’s row actions and choose Require re-sign. It’s independent of editing the text, so a typo fix never accidentally forces a re-sign. Everyone who already signed is asked again the next time they go through a term-start review.
If your co-op would rather every waiver be signed fresh each term regardless of whether the wording changed, check Re-sign every waiver each term above the waiver list. It’s off by default — a text edit or an individual Require re-sign already covers most co-ops’ needs without asking families to re-sign things that haven’t changed.
By default, custom fields appear before waivers on the form. If you’d rather applicants read and sign waivers first, each section on the Application form tab has a Move above link that swaps the order for everyone.
Join fees
The enrollment (join) fee belongs to a term, not your co-op as a whole — each term can charge its own amount, because most co-ops don’t expect a family to pay once and be a member forever. Set it on Admin › Terms & Schedule: open the term, click Edit term, and fill in the Enrollment fee amount and collection mode. Four modes: no fee, Stripe required before a family can use the co-op, Stripe optional (a charge is added but they can pay anytime — enrolling in classes, events, or volunteer shifts is still blocked until it’s paid), or handled outside the system (you record payment manually and nothing is blocked automatically).
A family can be charged at two different moments: once when their application is approved (if a term is active at the time and it has a fee configured), and again at the start of any later term that also has a fee configured, as part of that term’s review step — see opening a term to families. A returning family with an unpaid required fee is walked straight to checkout right after confirming their information, before they can reach the class catalog.
If your co-op has more than one pricing rate, say a reduced rate for families on assistance, the Edit term dialog also shows Amount by rate under the fee. Give a rate its own amount and families on it are charged that instead of the flat fee. Leave a rate blank and it falls back to the flat fee. Enter 0 and families on that rate are not charged a join fee at all. Your default rate is not listed, because that is what the flat fee above already sets. The whole section stays hidden until you have created a second rate, and a term with no amounts filled in charges exactly what it charged before. Setting those rates up is covered in reduced rates for a family.
To charge the fee for each child instead of each family, check Charge the fee per student. A family with two students then owes twice the amount, as a single charge that shows the count (for example, “2 students × $125.00”). The count is every student on the family’s record at the moment the fee is added: at approval, or when they confirm their information for a new term. A student added after that isn’t included automatically, so add a charge for them in Billing. A family with no students on record isn’t charged. It works with rates too: a family on a rate pays that rate’s amount per student. The box is off by default, and a term with it off charges once per family as before.
The Edit term dialog also has two exemption checkboxes, both off by default. Checking Teacher families are exempt from the join fee waives that term’s fee for any family with a member who holds the Teacher role at your co-op, whether or not they’re teaching a class that specific term. Checking Admin families are exempt from the join fee does the same for any family with an owner or admin. The two are independent, so turn on either one, both, or neither, depending on who you want to waive the fee for.
These checkboxes are the only way staff skip the fee. A teacher or admin with no children still gets a payment record when their application is approved — a one-adult household that carries their join fee (none on a per-student term, since they have no students) and can receive credits from Admin › Billing, shown with a Staff badge on your Families page (members don’t see it in the directory). A teacher whose spouse already holds the family account isn’t billed twice: their application lands on the household that’s already on file, and the household gets one join fee per term (multiplied by its students if the term charges per student). For staff who joined before you added waivers or a fee: if they’ve never applied, use Require membership application on the Members page; if they already have an application on file (or you’d rather not send them a form), use Add as a household there instead — either way they’re asked to sign any required waivers at next sign-in, and the fee applies unless your term exempts staff.
Admin › Applications › Application form still has its own Join fee card, but it does a narrower job now: it just sets the default amount and mode that pre-fills a brand-new term when you create one. Edit a specific term’s fee from Admin › Terms & Schedule if you need that one term to charge something different. Changing a term’s fee only applies going forward — families already charged for that term keep the amount that was in effect when they were charged.
Branding and settings
Go to Admin › Settings to configure everything that makes the app feel like your co-op:
Logo and accent color
Upload your co-op’s logo and pick an accent color. The logo appears in the navigation bar and on your public page. The accent color shows on buttons and highlights throughout the app. Changes take effect immediately for all members.
Time zone
Set your co-op’s local time zone. This controls how times appear in event notifications and announcement emails. Members see “9:00 AM ET” instead of UTC. Set this before you create events.
Country
Set your co-op’s country under Admin › Settings › Co-op. U.S. co-ops see State and Zip code on member address fields and charge families in U.S. dollars; setting the country to Canada switches those fields to Province and Postal code and charges families in Canadian dollars at checkout. Text messaging is available to U.S. co-ops only.
Custom domain
If you want families to reach your co-op at a domain you own (e.g., yourcoopname.org), that’s set up inside the Public Page Builder, not Admin › Settings. Deselect any block on the canvas, click Advanced settings, and find the Web address section. It shows the CNAME record to add at your registrar. Once it verifies (usually within a couple of hours, sometimes up to 48), your public pages are served from your domain. See the Public Page Builder guide for the full walkthrough.
Admin permissions
Go to Admin › Members and open any admin’s record to assign granular permissions (Manage classes, Manage payments, Manage volunteers, and others). This lets you delegate specific jobs without giving someone full owner access. See the member management guide for the full list.
Class payment collection mode
Go to Admin › Settings › Programs and find the Class enrollment section to choose how families pay for classes. You can require Stripe payment at enrollment (the default) or switch to flexible billing, where families enroll immediately and the fee is added to their Payments page for you to collect later. Individual classes can override the co-op-wide default. See Opening Class Registration for a full breakdown, and the bank payments guide for offering bank (ACH) payments.
What to do next
Once your term is created and your first members are in, you’re ready to build your class list and open registration. Opening Class Registration covers creating classes, publishing them, and opening an enrollment window step-by-step.
Other things worth configuring before families arrive:
- Volunteer policy — set shift credit values and the per-family requirement in Admin › Volunteer Policy.
- Public page — enable it in Admin › Settings so prospective families can find you and apply.
- Application form — add custom questions and waivers in Admin › Applications › Application form before you share your join link.
- Payment collection mode — choose how class fees are collected (Stripe at enrollment, or flexible billing to their account) in Admin › Settings › Programs, under Class enrollment.
- Photos and files in messages — members can attach photos and documents to direct and class messages, and this is on by default. To turn it off, uncheck “Let members send photos and files in messages” in Admin › Settings › Programs. That removes the paperclip button everywhere, including when someone starts a new message; files people already sent stay in their conversations.
- Unread message emails — off by default. Turn on “Email members about unread messages” in Admin › Settings › Programs to email a member when a direct or class message has gone unread for about three hours. It’s meant for families who don’t use the mobile app. Anyone who reads the message first gets no email, and each conversation sends at most one until the member reads it. Members can turn these emails off under Direct messages in their notification settings.
- Daily roll call — if your co-op runs as one all-day program rather than à la carte classes, turn on “Enable daily roll call” in Admin › Settings › Programs. It adds a Roll Call page to the sidebar where owners, admins, and teachers check students in on arrival and out at dismissal, separate from the per-class attendance teachers take in Teaching.
- Student sign-ins — check “Enable student sign-ins” in Admin › Settings › Families to let parents set up a limited sign-in for a student aged 13 or older, so the student can check their own classes, grades, and schedule. See the Student sign-ins guide for what a student can and can’t see.
Still have a question? Head back to the Help & Support page or reach out to your co-op admin directly from the dashboard.