Changelog
What's new in Waslink.
v0.12.0
27 October 2026- We have a new logo. It shows in the sidebar, on the landing page, sign in and sign up, in browser tabs, on the home screen icon, in the image that appears when a link is shared, and in emails (with an Arabic version for Arabic emails). The press kit now offers the logo lockups as PNG files.
- A school with no name set now shows a clear placeholder on invoices, reminder emails, notices and the calendar feed instead of a blank, and the school name can no longer be saved empty in Settings or during onboarding.
- The product name and web address are now set in one place instead of being typed into pages, emails and notices, so a rename reaches every screen, email and public page at once. The old comparison page addresses redirect permanently to the new ones.
- Recording a payment can no longer be done by accident twice. Paying more than what is owed, or recording a payment on an invoice that is already fully paid, now needs a tick on "I confirm this is an extra payment, not a mistake", because a recorded payment cannot be undone yet. The server also refuses an overpayment that was not confirmed, and two payments submitted at the same moment (a double click, or two tabs) no longer both go through.
- Fixed directors and owners on the Garden plan who could not void invoices, issue credit notes, or open Expenses and the report analytics ("Access denied"), even though they could record payments. Permissions added to Kinderly after a nursery was set up never reached its existing Owner and Director roles. They are now added automatically, once, the next time the role is used, and a permission you later switch off stays off.
- Admin console: during an assisted session the sidebar now shows the name of the nursery you are helping, instead of your own organisation, and feedback sent from that session is tagged with that nursery.
v0.11.0
19 October 2026- Nursery groups: a group admin can now be limited to chosen branches instead of all of them. Admins add or edit a member's access (all branches, or selected ones). A scoped member gets director access, sees in the group overview and branch switcher, and can enter only those branches, and a branch attached later is not included. The email to the new member lists only their branches.
- Nursery groups: the group owner is no longer locked out of their own branches. A branch whose owner holds the owner role (the normal case for a nursery set up in the app) now opens from the group overview and the branch switcher instead of showing as locked.
- Admin console: starting a support or onboarding session on a nursery now opens that nursery's dashboard, instead of sending you back to the admin home when the console runs on its own admin address.
- Admin console: on a group page you can now add a branch from an existing one. It copies the source branch's settings (language, currency, time zone, opening days and hours, holidays, notification and privacy defaults, leave policy), optionally its classrooms and custom roles, and never its children, staff or invoices. The new branch is owned by the group owner, joins the group and starts its own trial.
- A nursery with a single school now shows just its name in the sidebar, with no school menu. The "Add another school" option is gone, and a director of an existing nursery can no longer open the setup wizard to create another one. To add a nursery or join a group, contact support.
- New for nursery chains: a Garden group of nurseries now has a Group overview with each branch's children, attendance today, unpaid invoices, recent incidents and subscription, a branch switcher and a "You're inside" bar to get back. The overview shows totals only, never names or personal data. The Kindernest team sets groups up for you; entering a branch still needs a director seat there, and branches not on Garden show as "Not included (plan)".
- Admin console: when you onboard a nursery you can now pick someone who has been invited but has not accepted yet as the future owner. They become the owner as soon as they accept their invitation, and tenants without an owner are flagged "No owner" in the tenants list and on the tenant page.
- The account owner can now allow a director to manage roles and permissions. A new permission, "Manage roles and permissions", is off by default. A director who has it sees the Roles link and can change permissions, but only ones they hold themselves, and never the owner role. For everyone else the Roles link is hidden. The demo data now has an owner too.
- New Account ownership card in Settings. The owner can hand the account to another director (password and a typed confirmation required, and both people get an email), other directors see who the owner is and how to reach them, and the Staff list marks the owner with a badge. The Roles and Billing pages now explain that they are reserved for the owner instead of showing an error.
- Security hardening: the staff leave policy and the onboarding completion step are now limited to directors, uploads can only be finished by the person who started them, and a teacher can only approve or reject a child's documents for their own classes. Parents can only attach their own uploaded file to a document request.
- New Accountant role for Garden nurseries: it covers invoices, payments, expenses and the invoice and revenue reports, and nothing about children, health, incidents or messages. Directors can assign it from the Roles page. The invoice and expense pages for this role arrive in a following update.
- Only the account owner can now close the account, manage roles and connect or disconnect payments. Other directors keep everything else. The Waslink team can set a new owner if the current one is no longer available.
- Roles assigned from the Roles page now take effect for staff who have already accepted their invite. Before, the permissions of a role could silently fail to apply to them. The Roles page also shows who already has a role correctly.
- Security hardening: access checks were tightened on several internal screens (staff availability, open shifts, billing status, payment account, meal import, consent documents, authorised pickups, timeline reactions, consent lists, invoice history, attendance and class details). Parents can no longer see internal nursery data, and teachers can no longer edit data for children outside their own classes.
- Waslink now tells you when a new version is available while you have it open. A small notice appears in the bottom corner with a Refresh button, or Later to hide it for a while. It never reloads the page on its own, so you will not lose anything you are typing. If a page breaks because the app was updated, the notice asks you to refresh instead of leaving you on an error.
- Admin console: there is now a Sign out button, and a Settings page where admins set up two-factor authentication with an authenticator app. Two-factor is required for every admin, so the rest of the console stays locked until it is turned on. The Team page shows who has two-factor on, and Platform admins can reset a colleague's two-factor if they lose their phone.
- Fixed the admin login on admin.kindernest.app, which showed a 404 instead of the login page when you opened it without a session. Accepting an admin invite also no longer sends a second "Verify your account" email.
- The Waslink team can now invite colleagues to the admin console from a new Team page, as Platform or Support admins, without a deploy. Invites are single use and expire after 48 hours, roles can be changed or removed at any time, and the last Platform admin is always protected. Removing an admin cuts them off completely: they are logged out everywhere and blocked from logging in until unblocked. Addresses that already belong to a nursery cannot be invited as admins. Admins are limited to one live session: signing in on a new device signs them out of the old one.
- The child picker on the Log incident form is now searchable: open it and type part of a name or a room to narrow a long list, then use the arrow keys and Enter or tap to choose. Children marked absent today still show but cannot be chosen.
- Saving an incident with "Notify parents now" ticked is much faster. The form used to wait for every email to be rendered and sent before closing; now the emails are queued and go out right after, so the form closes straight away. Guardians still get the same bell notification and email.
- Parents no longer get hints about whether the nursery has recorded telling them about an incident. The dashboard alert now shows recent incidents for their own child whether or not staff have marked the parent as told, the child's timeline no longer hides untold incidents, and the daily report no longer shows the "you were notified" badge to parents.
- The Log incident form has a new "Notify parents now" box, off by default. Tick it and, when you save, the child's guardians get a notification and an email saying an incident was recorded (the type of incident only, never what happened) and the record is marked as told. If no guardian has an account or an email address, the record stays "not told yet" and you are asked to tell the family in person. Each use is audit-logged.
- The Incidents page has been redesigned. Records that still need the family told are pulled to the top with a banner and a "Needs attention" filter, each card shows who reported it, when and whether a parent has been told, and you can group by date or by room, open a full record with the child's allergies and conditions beside it, export to CSV and download a record as a PDF. "Mark parent as told" records that someone spoke to the family; Waslink sends nothing to parents. Only High severity incidents now alert the other directors (bell and email, with a link straight to the record). A child marked absent or excused that day can no longer have an incident logged. Incident records can no longer be edited or deleted after they are saved: a director can void one with a reason (it is kept, but hidden from lists and from parents, with a switch to show voided records), and staff can add a note to correct a typo. Every log, told, note, export and void is audit-logged. PDFs are in English or French; Arabic accounts get English labels for now.
- The "Allow parent saves" switch under Settings > Privacy now works. It used to do nothing. With it off, parents can no longer save photos forever: the save buttons disappear from their gallery and saving is refused. Photos they already saved stay saved and can still be un-saved. Staff are not affected, and downloading a photo is separate from this switch.
- Security: deleting an uploaded file is now limited. You can always remove a file you uploaded yourself; removing someone else's file needs the Delete photos permission. Directors can remove any file in the nursery, teachers only photos and videos of children in their own class. Before, any teacher could delete any file by id, including other classes' photos and medical documents.
- Parents and directors can now save a photo or video: tap a picture to open it full size (uncropped, with previous and next), then Download to get the original file, or Share to send it to the phone's photo library where the browser supports it. It works from the photo gallery, moments and daily reports, including archived photos. The daily report's old "Download all" button, which only opened the first photo, is gone.
- Security: saving a child's photo is now limited to people who can see it (a guardian with photo consent, the child's teacher, or a director). Before, any parent could save any other family's photo, which kept it past the retention clean-up. Only photos can be saved, not other files.
- Creating a nursery during sign-up is now all-or-nothing: a failure part-way no longer leaves a half-created nursery that blocks its address, and a stale sign-in is refused with a clear "sign in again" message instead of an error.
- Parents can now upload a replacement for a document the nursery rejected: an "Upload again" button appears on the child's Documents tab and the rejection notification links straight to it. A replacement goes back to "Awaiting review" and the staff member who requested it is notified.
- Fixed directors and staff not receiving the notifications meant for them: incident reports, allergy alerts, invoice payments, plan renewals, leave requests and decisions, shift swap approvals, new parent messages and staff events were silently dropped and now arrive as intended. Invoice-paid notices have their own setting: bell on, email off by default, and you are never notified about a payment you recorded yourself.
- Parents now get a notification and an email when the nursery requests a document for their child (for example an MMR vaccination record), with a link straight to the child's Documents tab. You can turn this off under Settings > Notifications.
- Parents now get a notification and an email when a document they uploaded is not accepted, asking them to contact the nursery to arrange a replacement.
- Staff who requested a document are now notified when a parent uploads it, so it can be reviewed straight away. Only the person who made the request is notified, or the directors if that person has left.
- Fixed Publish All on the Reports page not emailing parents: daily-report emails now go out right away instead of waiting for another message to be sent, and publishing again no longer re-emails parents of reports that were already published.
v0.10.0
3 October 2026- The English interface now uses nursery terms: Children instead of Students, Rooms instead of Classes, and Practitioners instead of Teachers (Lead Practitioner, Assistant Practitioner). Existing staff titles and your data are unchanged, and French and Arabic are unaffected.
- Reports page (director-only): build attendance, invoices, revenue and rota reports from filters, with a persistent report history.
- Announcements let directors and teachers send messages to families about closures, photo days, trips, menu changes, and more. Each message is tracked so you can see how many families have opened it and who couldn't receive it.
- Fixed the invoices "Collected this month" card showing your all-time total instead of this month's, which made it disagree with the dashboard's revenue card.
- The dashboard's revenue card now says "Click to review" instead of a fixed, made-up target, and takes you straight to Invoices.
- Fixed the invoices page's year/month filter not affecting the "Collected this month" card, which used to keep showing the current month's total no matter which period you picked.
- Enrolling a child now warns you, without blocking anything, if a similar child already exists (same date of birth and a close name match, or a guardian phone/email you've already used for another child, even if the name was typed in a different script). You can view the existing record or confirm this is a different child and continue.
- Onboarding's country field is now a dropdown for Algeria, Tunisia, Saudi Arabia, UAE, Egypt, the UK, and France, and picking one now fills in a sensible timezone, language, date/number format, and currency for you, all still editable afterward. Picking "Other" only fills in your timezone. Also added Toronto, New York, and Los Angeles as selectable timezones, and the Saudi Riyal, UAE Dirham, and Egyptian Pound as currencies.
- Fixed notifications sometimes showing another one of your organizations' alerts and unread count instead of the one you're currently in.
- The dashboard's Classes card no longer shows a made-up attendance percentage for a class where nobody's been marked present yet, and now says "No children enrolled yet" for an empty class instead of a progress bar.
- Settings' "Reset demo data" button is now only shown once you've actually loaded sample data.
- Fixed clicking "Bloom" or "Garden" on the pricing page creating your trial on Seedling regardless, which meant paid-tier features weren't available during the entire trial. The plan you pick now carries through to your new account.
- Billing's "Update payment" button now correctly says "Add payment method" while you're on trial with no card on file yet, and switches to "Update payment" as soon as you add one.
- Invoices can now be tagged with a charge type (tuition, insurance, registration, materials, trip, or other), shown as a badge everywhere invoices are listed. Also fixed generating monthly invoices in bulk silently skipping a student who already had an unrelated invoice for that month, such as a manually-issued insurance invoice.
- Fixed the teacher dashboard's "My class today" showing every child as present before attendance had actually been taken for the day. Children now show as "Unmarked" until someone marks them present, late, or absent.
- Fixed two-factor authentication setup showing "Better Auth" instead of Waslink as the issuer name in your authenticator app. Only applies to new enrollments; if you already set up 2FA, disable and re-add it to see the corrected name.
- Shift swaps now keep a history: a colleague who accepted or declined a cover request can see it afterwards instead of it disappearing, in a new "Requests you've answered" list, and the director's swap approvals page now shows a "Recently decided" list of the last 20 swaps too. A cleanly approved swap (in any of your swap lists, including your own "My swap requests") collapses to a one-line summary so the list doesn't get long, while anything still pending, rejected, or declined stays open since it's worth a second look; tap any card to expand or collapse it. Also, a colleague's or director's swap message now shows who wrote it and when, and every swap card now shows when the request was originally made, neither of which was shown before.
- Fixed asking a colleague to cover a shift never actually greying out someone who's on approved leave for that date, so you could ask (and they could "accept") someone who wasn't available. That picker now greys out, disables, and labels an on-leave colleague with their leave dates, the same way it's always worked for a director assigning a shift.
- Fixed a few emails (staff invitations, trial reminders, and others) still showing our old name, Waslink, instead of Waslink.
- Added extra safety checks to how we deploy updates, so a bad deploy no longer reaches your account. Also blocked a few reserved words (like "admin", "www", or "staging") from being used as your nursery's web address.
- Removing a staff member now also removes their access to your nursery straight away. Previously they were taken off the staff list but could still sign in. Someone who is also a parent of an enrolled child keeps their parent access. You also can't remove yourself or the only director any more.
- The same person can now be a staff member or a parent at more than one nursery. Previously, accepting a staff invite from a second nursery, or enrolling a child at a second nursery for a parent who already had an account, failed with an error.
- The platform admin panel now lives at its own address instead of a path inside the main app, and is protected by an extra layer of checks in front of it. Also added a safety check that redirects you to your own nursery's web address if you ever end up on a different nursery's address while signed in, instead of quietly showing your own data there.
- Fixed finishing setup, switching between nurseries, or starting a support session sometimes sending you to the wrong web address instead of your own nursery's.
- A few more address endings are now blocked from being used as your nursery's web address, to avoid conflicts with our internal systems.
- Simplified the setup step where you choose your nursery's unique ID, removing a web address preview that wasn't accurate for every account. Every nursery now uses the same shared address, with your own data always shown correctly once you're signed in.
- Fixed setting up a second nursery from an existing account sometimes showing a setup error even though the nursery had actually been created.
- Fixed setting up a second or third nursery always failing at the last step with "Failed to create classes", since a new nursery starts on Seedling's 1-classroom plan while setup suggested 4 classes by default. Setup now suggests 1 class and finishes cleanly even if you add more than your plan allows before continuing, only creating what fits.
- Platform admins can now deactivate a nursery (for example an expired trial or a test account), which immediately signs everyone out of it and blocks them from logging back in until it's reactivated. Nothing is deleted, and it can be reversed at any time. If you belong to more than one nursery, deactivating one you'd previously been using no longer blocks you from signing back into your other, active nursery. A parent's calendar subscription (the Events page's "Subscribe to calendar" link) also stops showing events for a deactivated nursery.
- The school switcher now shows a deactivated nursery grayed out with a small lock icon (hover for details) instead of listing it exactly like any other school, and it can no longer be selected at all.
- Every email Waslink sends you (invites, sign-in links, password resets, invoice reminders, trial notices, and more) now has a new look: a shared, editorial design that also adapts to dark mode and displays correctly right-to-left in Arabic.
- Removed the "Appearance" card from Settings (accent color swatches and a second theme toggle), which duplicated the light/dark toggle already in the Account section and didn't otherwise do anything.
- "Load sample data" now fills in a lot more to explore: health records (allergies, conditions, medications) for several children, a Moments photo feed with reactions and comments, and a longer attendance history. Previously the Health tab and Moments feed showed nothing at all for sample data.
- Events has been redesigned. Each event now has a type (closure, celebration, trip, conference, or other) with its own colour and icon, so you can tell what's happening at a glance. You can also choose who sees an event: everyone, specific classes, or staff only, and that's now a real restriction, not just a label. Events can optionally ask parents to RSVP (going or can't make it), off by default. The page also gained Week and Month views alongside the existing list, both built around your nursery's actual open days.
- Fixed a security gap where any signed-in parent account could create, edit, or delete events through the app's API directly, even though the button to do so was already hidden from parents in the app itself.
- "Load sample data" now creates a richer, more realistic set of events: closures, a staff-only meeting, class trips, and events parents have already replied to in different ways (going, can't make it, or not yet), spread across this month and next.
v0.9.5
17 September 2026- Fixed the app feeling cramped or broken on tablets and phones in several places: the sidebar and mobile menu button could both show at once on tablet-width screens, the new-invoice screen was unusable below desktop width, and the super-admin section had its own sidebar that never adapted to smaller screens at all. Roles & permissions, Settings, and a few data tables also got a pass for smaller screens.
v0.9.4
17 September 2026- Updated our authentication provider to patch several security vulnerabilities reported upstream. No action needed on your part.
v0.9.3
17 September 2026- Fixed meals (create, edit, delete, and CSV bulk-import) having no permission check at all, so any signed-in tenant member could write meal and allergen data. Only a director or lead teacher can do this now.
- Fixed a staff member being able to approve their own shift swap once a colleague accepted it, skipping the director's review. Deciding a swap now always requires a director.
- Daily reports no longer count absent or excused children in the "0/x reports filled" progress total, and the drawer's next/previous buttons now skip over them too, since they can't have a report filled in. The roster filters now also show a separate "Excused" chip alongside "Absent", and fixed the "Absent" filter missing some absent and excused children.
- Fixed a director being able to edit an invoice's amount at any time, even after a parent had already paid it. Once an invoice is issued, its amount, line items and the invoice number are locked — corrections go through a new credit note instead, or the invoice can be voided. The invoice PDF and reminder emails also now freeze the child's name and the currency at issue time, so a later rename or currency change can't silently alter a past invoice.
- Invoices now show two independent status badges — issued/void, and unpaid/partially paid/paid/overpaid — since a voided invoice can still have a payment that needs refunding. Recording a payment now takes an amount, so partial payments show up correctly. The invoice detail page has a new history panel listing every issue, void, credit note and payment event.
- Directors can now set how many days after issue an invoice is due by default (Settings → General → Payment terms, 30 days unless changed) instead of every invoice defaulting to due-on-issue. Still overridable per invoice when issuing it.
- New invoice now opens a redesigned composer: line items with quick-add presets, discount/tax, a due date and a note to the family, with a live invoice preview alongside it. Currency comes from your school settings. Choose "Save as draft" or "Issue invoice" (which locks the charges) at the end, not before.
- Directors can now set an annual leave allowance for staff (Settings → Staff leave) — a default number of days, which leave types count against it, and per-staff overrides. Staff see how many days they've used and have left, prorated for anyone who joined partway through the leave year.
- Approving or rejecting a staff leave request can now include a short message to the requester, shown back to them alongside the decision.
- Staff profiles now show the team member's actual leave balance once a leave policy is set, not just a plain days-used count.
- Refreshed the staff leave pages (My leave, and the director's leave review) with clearer status tags and a fuller balance view.
- Fixed staff on the Garden plan sometimes being blocked from requesting their own leave.
- Directors can now build a weekly staff rota (Staff → Rota): a room-by-room, day-by-day grid with single or repeating weekly shifts, plus a month view showing coverage at a glance. Staff see their own upcoming shifts in Settings → My week.
- Staff can now ask a colleague to cover a shift or release it to whoever's available first, right from Settings → My week. Directors review and decide accepted swaps from a new Staff → Swaps tab.
- Staff can set their usual weekly availability in Settings → My availability. It's a preference, not a rule: directors still see a note when scheduling someone outside it, but it's never blocked.
- Staff can now start a shift-cover request from scratch (Settings → My week → My swap requests → "Ask someone to cover"), picking which upcoming shift to hand over first. Shifts already out for cover or released aren't offered again.
- Releasing a shift to anyone now shows up in My swap requests as "Released, waiting to be claimed" instead of disappearing with no confirmation. Once someone claims it, you're notified and the entry updates to show who.
- A released shift still unclaimed within 24 hours of its start now flags itself: directors are notified with the room, date and time, the releaser gets a lighter heads-up, and the shift shows up on the rota grid the same way an unstaffed gap does.
- Fixed the notification pop-ups' close button sitting in the wrong corner, and made the pop-ups themselves a bit taller and easier to read.
- Fixed the rota letting a staff member be assigned to a shift on a day they already have approved leave for, with no warning anywhere. They're now shown greyed out with their leave dates in the shift form, the swap picker, and the open-shift claim screen, and the save is blocked either way.
- Fixed the rota's month view showing open days as closed at schools that don't run Monday to Friday, and fixed My week in Settings showing a room's raw ID instead of its name for shifts outside your own usual classes.
- The rota now blocks scheduling, swapping, or claiming a shift that would double-book someone into two overlapping shifts at once, in any room, with a clear error naming the room and time it clashes with. Covering two different rooms at different times of day, or shifts that simply meet back-to-back, still work exactly as before.
- My week, Available to claim, My swap requests, My leave, and Availability were all stacked under Settings → Account. They now each have their own tab: My week, My leave, and My availability.
- Fixed Settings → My week and My leave showing dates in the school's configured date format instead of your own app language, so an English or Arabic speaker no longer sees their own shifts and leave dates in French.
- Fixed the homepage and Billing page each listing slightly different features per plan. Billing was telling Seedling customers they had Meal planning and Incident tracking, both actually gated to Bloom and up.
- Fixed Billing sometimes sending a plan switch to a DZD (Chargily) checkout instead of Stripe when you hadn't touched the currency picker — it now defaults to your own billing currency.
- Fixed several places where a feature kept working past what your plan actually includes: Staff Rota and Swaps were checking for the Staff feature (Bloom) instead of Rota (Garden), and Invoices, Expenses, the photo gallery, Documents, Consents, and paying an invoice online weren't checked against your plan at all. These now show the same locked, upgrade-prompt treatment as other paid features whenever your plan doesn't include them.
- Fixed parents seeing a "Send reminder" button on their own invoices, which didn't do anything for them since reminders are sent by the school. It's now only shown to directors.
- Fixed an invoice staying marked "Unpaid" after a parent successfully paid it online — the checkout worked, but the invoices page didn't reflect it. It now updates correctly as soon as payment goes through.
- Fixed money amounts sometimes showing garbled, like "0 £GB" instead of "£0", after changing a nursery's currency without also matching its language setting. Amounts everywhere (dashboard, invoices, expenses, invoice PDFs and reminder emails, billing, and the homepage) now always display correctly for their currency, no matter what language you're viewing in.
- The school switcher now defaults automatically instead of showing "Select school": to your only school if you have just one, or otherwise to the school you last switched to. It also moved to the top of the sidebar, right under the logo.
v0.9.2
8 September 2026- Removed the homepage's "Watch 2-min demo" button, which didn't actually link to or play anything, until a real demo video is ready.
- The homepage's main buttons now give a small visual press effect when tapped or clicked, so they feel responsive instead of static.
- Switched the homepage's headline font.
- The homepage hero's "No credit card / EN·FR·AR / GDPR compliant" row now sits in its own strip just below the hero, instead of stacked under the hero buttons.
- Removed the small label above two homepage section headings ("How it works" and "For parents") that repeated on nearly every section — kept only where it still adds something (Features, Pricing).
- Fixed the homepage's "billed annually" total, which was undercounting the real yearly charge by a small amount, and a small pricing mismatch between the homepage and Settings → Billing.
- Fixed notification pop-ups ("toasts") not being colored by type — success, warning, error and info messages all looked the same before. Success is now green, warnings amber, errors red, and info messages blue.
v0.9.1
8 September 2026- Teachers can now mark a whole class present in one tap on the Attendance page. It only fills in children who haven't been marked yet, so any absence already noted stays put — and every child can still be corrected individually right after, with an Undo available too.
- Directors can now set up a recurring monthly tuition template (name, amount, which children it applies to, and which day of the month) that automatically generates invoices, instead of creating each one by hand every month.
- Directors can now connect their nursery's own bank account (via Stripe) to accept online card payments — once connected, parents can pay an invoice in-app instead of only by bank transfer. UK-based nurseries only for now; funds go straight to the nursery's own account.
- Directors can now disconnect their nursery's payment account too, from the same place they connected it (Settings), if they want to stop accepting online card payments.
- Fixed "Waslink" running directly into the next word with no space in a few public pages, including the legal documents (Privacy, Terms, DPA, Cookies).
- Fixed a few places (the homepage, the UK page, the plan-upgrade screen) that implied Waslink supports multiple sites under one subscription — it doesn't yet. They now describe what's actually included, and multi-site operators are pointed to get in touch.
- The homepage now mentions the UK, France and Algeria in an order that leads with the UK (in the English version) or France (in the French version), instead of always leading with Algeria — all three markets are still mentioned everywhere.
- A few remaining homepage strings that still said "kindergarten" only now read "nursery," matching the rest of the English homepage.
- Arabic headings on the homepage and other public marketing pages now display correctly, in the same font used everywhere else in the app.
- Fixed the homepage's free trial claim, which said 30 days in a few places — it's 14 days, matching pricing and the rest of the site.
- Removed the homepage's "4.9 App rating" stat — it wasn't a confirmed real number.
- Added market-specific pages for the UK, France, and Algeria (French and Arabic).
- Added two new public comparison pages: Waslink vs Famly and Waslink vs Meeko.
- The homepage now leads with "nursery" instead of "kindergarten" in the page title, description, and headline (English only) — kindergarten stays as a secondary term.
- The homepage's hero and testimonial photos are now served from our own servers instead of an external image host.
- The student profile's Health tab now shows a small red dot when the child has a critical health alert, visible even before opening the tab.
- The director dashboard now has a "Staff today" panel showing who's in, on leave, sick, or not yet marked for the day — anyone not simply present is grouped at the top so it's easy to see at a glance.
- Fixed a staff member's "On leave" badge staying on past their return date on the staff list and staff profile pages.
- Settings: "Default Arabic font" now only shows when the default language is set to Arabic. The "Operating hours" field is gone (it's replaced by the proper weekly schedule under Calendar & hours) and Timezone is now a real, editable setting there instead.
- Settings → Account: the personal "Arabic font" option now only shows when your own language is set to Arabic.
- Settings → Account → "Date format": every option now shows the actual date it would produce, instead of some showing a format pattern and others just a language name.
- Settings → Account → "Date format": removed a confusing duplicate — two of the options produced the exact same date, now down to 5 clearly distinct formats.
- Meals: directors and teachers can now bulk-import a week's meals from a CSV file (Meals → Import CSV) — download a template, fill it in, and the app validates every row (flagging missing names, unknown days, or days the school is closed) before creating anything.
- Fixed the Health tab's add/edit modals (allergy, medication, etc.) so the icon, title, and child's name now appear together above a single divider, matching the design.
- The Health tab now shows who last updated the record, not just the date.
- The homepage's fourth stat now highlights how fast attendance can be marked (30 seconds) instead of always listing DZD, EUR, and GBP.
- The yearly pricing option now shows your actual annual total, not just "billed yearly."
- Replaced the placeholder logo (sidebar, sign-up page, homepage, public site header) with our real brand mark.
- The browser tab icon and app icon now show our real brand mark instead of a generic default.
- Directors can now set a max children per staff member for each classroom (Settings → Organization → Ratios). A live status badge next to each room — in Settings, Attendance, and the dashboard — shows whether that number is currently being met, based on who's actually marked present. Just a number you set for your own school; there's no built-in rule or requirement attached to it.
- Fixed the ratio badge sometimes showing "0 children · 0 staff" for a room even after assigning staff to it.
- The dashboard's "Staff today" panel, and the ratio badge, now update immediately after marking staff attendance or a leave — no more needing to refresh the page.
- Fixed staff attendance (present/late/absent/sick) sometimes being saved under the wrong day — always for schools in France or Algeria, and for UK schools during British Summer Time.
- Fixed teachers and parents never actually seeing the school's chosen date format or currency — it was only ever being sent to directors.
- Marking attendance, publishing daily reports, and sending invoice reminders no longer wait on email delivery, so a slow or failing email provider can't hold up those actions. As part of this, parents now also get an email (not just an in-app notification) when their child is marked absent or late, and when a new moment is posted.
- Staff → Team: fixed the "Profile" button on a staff card being invisible on hover (it was the same color as the card's own hover background). The call icon is now greyed out for staff with no phone number instead of looking clickable and doing nothing, and the chat icon is hidden until we build real messaging.
- Staff can now clock themselves in and out from their own dashboard — no separate device needed. Directors can still set or correct attendance for anyone (including staff who never clock in), and any correction to a self-reported time is shown clearly, not hidden.
- New "Ratio status" tile on the director dashboard: a quiet "all good" on a normal day, or — when a room needs more staff for how many children are in it — that room named and quantified, with one tap through to fix it. Calm on purpose: a brief overage is usually a late pickup, not a problem.
- Fixed the dashboard's Classes card and new Ratio status tile not updating right away after assigning a staff member to a room from Staff → Team — they needed a page refresh before.
- Fixed the director dashboard's "Present today" number sometimes showing 0 even though attendance had actually been marked for today. The dashboard's attendance-related numbers also now update on their own, without needing to refresh the page.
- A child marked "late" is now counted as present for headcount purposes (dashboard, per-class attendance, teacher's own class view) — they're at the nursery, just later than usual. "Late" is still tracked and shown separately for punctuality; the dashboard now also shows how many arrived late.
- Fixed the director dashboard's "View all" buttons on the Classes, Recent incidents, and Weekly menu cards doing nothing — they now go to Attendance, Incidents, and Meals.
- Tidied up the homepage's wording, and made sure the "Start free trial" button says exactly the same thing everywhere it appears on the page.
- The homepage's "for parents" section is now laid out as a single centered column instead of repeating the same side-by-side layout used for directors and teachers just above it.
- Added three new feature pages (invoicing, attendance, and EYFS software) and four new company pages (About, Careers, Press, Migration guide) to the public site.
- Fixed several public pages (the UK, France, and Algeria pages, both comparison pages, and the new feature pages) that had no links pointing to them anywhere on the site — they're now reachable from the footer, not just by direct link. Also fixed the homepage's "Changelog" footer link, which went nowhere.
- Fixed a broken "Documentation" link on the Support page that led to a page that doesn't exist, and a "Security" footer link that went nowhere — it now points to the actual security section of the Privacy Policy.
- Fixed a few remaining spots on the legal pages (Privacy, Terms, DPA) that still said "student" instead of "child."
- Added a new homepage FAQ answering whether Waslink works for preschools and childcare centres too, not just nurseries.
- Fixed two homepage links (the non-profit discount "Apply here" and FAQ "Talk to our team") that didn't go anywhere — they now open an email and link to the Support page.
- Fixed the France page's title, which was too similar to the French homepage's — it's now clearly labeled as the France-specific page.
v0.9.0
1 September 2026- A critical health-alert banner now appears on the student list, meal-prep roster, and daily report for any child with a severe allergy, EpiPen requirement, or emergency medication.
- Student profiles now have a Health tab — directors and the child's teacher see the full record, parents get a read-only view with a request-update option, and other staff see a gated summary only.
v0.8.0
1 September 2026- Fixed the landing page's hero mockup always showing a DZD sample invoice regardless of your currency — it now matches your resolved currency, same as the pricing section.
- Replaced fictional names in the landing page's dashboard/phone mockups with generic placeholder names.
- Added a Calendar & hours section in Settings — set each classroom's operating days and hours, manage school closures, and get holiday suggestions.
- The weekly meals view now follows your school's actual schedule instead of always assuming Monday–Friday.
- Arabic weekday names on the Meals page are now spelled out in full, and no longer show up twice.
- Fixed a bug that could show stale or incorrect school closures.
- Notification links now take you straight to the relevant message instead of the general notifications list.
- Notification settings are now only accessible to directors.
- Daily reports can no longer be filled out for a child who was marked absent or excused that day.
- Fixed daily reports occasionally showing the wrong date on some servers.
- Liking or saving photos for a day or month now updates instantly.
- Fixed the sidebar briefly showing menu items you don't have access to right after signing in.
- Fixed a student's Overview tab and Quick Info card sometimes showing blank or outdated information.
- Fixed teachers being blocked from publishing meals, and added protection against publishing twice or for a past day.
- Added a personal and school-wide Arabic font preference in Settings.
- Attendance now records arrival/departure time and nap times, not just present or absent.
- Email is now optional when adding a new staff member.
- Fixed students being marked "present" by default before anyone actually checked them in.
- The daily reports list now shows a photo preview and count for each report, and parents can now open a full report detail view.
- Fixed the daily report window sometimes showing the previous child's photos after switching students.
- Draft invoices are no longer visible on a parent's view of their child's profile.
- Security fix: a bug let teachers see every class in the school, not just their own.
- Security fix: a parent-facing screen wasn't properly checking permissions before showing billing information.
- Security fix: guardian accounts created from the Students page weren't getting the correct permissions applied.
- Fixed an invite link for parents that pointed to the wrong address.
- Added a show/hide toggle for the password field on the invite-acceptance page.
v0.7.1
23 August 2026- USD checkout is now live — real prices for all three plans, monthly and annual (previously showed a generic payment-unavailable message).
v0.7.0
23 August 2026- Visitors outside Algeria, the UK, and France now default to USD pricing (was EUR) — Stripe converts it to your real local currency at checkout. The currency link now also offers USD, with a short note that the shown amount may differ from what's charged.
- The billing settings page (plan upgrade/downgrade) now also offers USD. Fixed a bug where a payment error in any non-DZD currency incorrectly showed a "DZD payment isn't available" message.
v0.6.0
23 August 2026- The landing page now shows pricing in your local currency automatically (Algeria → DZD, UK → GBP, everywhere else → EUR) instead of showing all three side by side. You can still switch currency via a small link if you need to.
- Removed fabricated customer counts, logos, and testimonials from the landing page — replaced with honest facts and a new "How it works" section.
- The "can't delete this staff member" error now shows in your workspace's language instead of always in English.
- The delete-expense confirmation now matches the rest of the app instead of showing a plain browser alert.
- Fixed editing and deleting expenses always failing with a permission error, on every plan and role.
- Fixed deleting a staff member with recorded incidents silently doing nothing — it now explains why it can't be deleted.
- You can now edit and delete incidents from the Incidents page, not just log new ones.
- Directors can now delete a student's daily report from their profile.
- Replaced Arabic example names in form placeholders (Enrol student, Add/edit staff) with generic ones.
- Onboarding's sample demo data now uses fictional names instead of Arabic names, so it reads as clearly fictional for any company.
- Fixed the Expenses page showing every expense twice on desktop (a display bug — amounts were never affected).
- Fixed the Staff → Leave dialogs' fields (staff member, leave type, dates, etc.) rendering at inconsistent widths.
- Fixed a stray vertical scrollbar showing up next to tab bars (Staff, student profile) at any screen size.
- Fixed the Attendance page showing an outdated status after marking a student and then switching day or class — no more needing to refresh.
- The Attendance page now works properly on phones and tablets.
- Fixed the header search bar overflowing its box on phones in landscape.
v0.5.2
23 August 2026- Fixed an issue where some invited staff members could sign in but weren't recognized as part of their school, or got a confusing "wrong password" message when the real issue was an unverified account.
- Fixed the notification bell overflowing the screen on phones.
- Design polish on the Students list page and its enrolment wizard: tidier mobile header buttons and filters, full-width form fields, scrollable class/allergy/relation pickers, and a live preview card that now matches a real student profile card.
- Design polish on the student profile page: cleaner mobile header, a friendlier "Quick info" layout, redesigned guardian cards, and a photo-consent button that now actually looks like a button.
- The student profile page now works properly on phones and tablets, across every tab — Overview, Attendance, Reports, Photos, Family, Billing, Documents, and Timeline.
- The Students page — including the "Enrol a child" wizard — now works properly on phones and tablets.
- The Expenses page — including the "Add/edit expense" drawer — now works properly on phones and tablets.
- Fixed a crash on the Events page.
- The Events page now works properly on phones and tablets.
- The Incidents page now works properly on phones and tablets.
- The Invoices page now works properly on phones and tablets.
- The Staff page — including the "Add staff" dialog — now works properly on phones and tablets.
- Fixed the Staff profile page's header on small screens, where the staff member's name used to get squeezed against the "Resend invite" button.
- The Daily Reports page now works properly on phones and tablets.
- The Meals page's "Add/edit meal" dialog now works properly on phones and tablets.
v0.5.1
22 August 2026- The Notifications page now works properly on phones and tablets.
v0.5.0
21 August 2026- Directors can now archive a student who's no longer enrolled — their records stay for your invoices and history, but they come off active rosters, attendance, and billing. Guardians lose app access only once none of their children are enrolled anymore.
v0.4.0
21 August 2026- Help & feedback reports now save for real — track their status in "My reports", and you'll get an email when one you sent is resolved.
v0.3.0
21 August 2026- Added a "Help & feedback" button — report a problem, suggest an improvement, or ask a question, right from the app.
v0.2.0
21 August 2026- You can now see the app version and a changelog, right from Settings.
v0.1.0
21 August 2026- Initial release of Waslink.