Data and privacy
What this site sends, stores and keeps local
The account and mailing-list work changes what can leave one browser, so this page says which data belongs to which feature and which features remain local.
Public Made by Matt content does not require an account. Games, Lessons, Apps, Tools and Resources remain public unless a resource was already legitimately restricted for another reason.
Made by Matt accounts are intended for adults and teachers. Pupils can use the public learning, game and tool content without creating an account.
The optional account is cloud-backed only when the configured Supabase service is active. The account page does not fall back to a local JavaScript password. If cloud configuration is missing, registration and login stay unavailable rather than pretending to be secure.
The mailing list is separate from the account. Creating an account never subscribes you. Joining the list requires its own unticked consent box and double opt-in through the mailing provider.
Optional Made by Matt account
The optional account is intended for adults and teachers who want account-backed member preferences across devices. Pupils do not need an account to use public Made by Matt learning content.
If you choose to create an account, the minimum identity is an email address plus the password you submit directly to the authentication provider. A display name is optional. The site does not ask the account system for date of birth, school, pupil details, postal address or sensitive characteristics.
Supabase Auth is the password authority. Made by Matt JavaScript does not store, hash, compare, back up or receive a separate copy of your password. Supabase manages the authenticated session used by the browser. The Made by Matt database stores an account profile and deliberately limited member data such as saved Made by Matt shortcuts.
Database access is controlled so an authenticated user can read and change only rows belonging to that user's Auth identity. Password data is not duplicated into the profile or member-data tables.
Account records may include: account ID, email in the authentication system, optional display name, account timestamps/status, and member data such as favourites. This data exists so the same account-backed choices can appear after you sign in on another device.
Old on-device accounts
An older Made by Matt version created device-local account records in mbm_users and mbm_session. The new cloud account path does not upload the old password record or hash. Existing local data is left in place unless you deliberately remove it. If the old and new account use the same email, local per-account game save slots can keep using the same device-side slot tag.
Account deletion
The Account page includes a self-service deletion path when its secure server function is deployed. Deleting an account removes the Auth identity and account-backed profile/member rows through their database relationship. If self-service deletion is temporarily unavailable, request deletion from the account address at contactmadebymatt@gmail.com.
A mailing-list subscription is independent. Deleting an account does not silently unsubscribe an independently subscribed email address.
Mailing list
When the mailing system is enabled, the subscription form sends the email address you deliberately enter to a Made by Matt serverless subscription endpoint. That endpoint passes the subscription request to Buttondown, with its private API key kept in server-side secret storage rather than the webpage.
Made by Matt uses double opt-in for the mailing list. A subscription request is not treated as ordinary active marketing consent until the provider confirmation step is completed. Buttondown is the sender of record, and mailing messages retain Buttondown's unsubscribe route.
The administrative contact for this feature is contactmadebymatt@gmail.com. The mailing-list form is not part of account registration, the consent box is not pre-checked, and an account holder may leave it entirely alone.
Signed-in account holders also have a self-service mailing unsubscribe control. The server derives the email address from the verified account session rather than accepting an arbitrary address from the browser.
Activation is explicit. If the mailing backend has not been configured, the form does not claim that a subscription succeeded. The page states that the service is unavailable instead.
Cross-device member data
The first account-backed member data is intentionally small: saved Made by Matt hub shortcuts and the optional display name. Favourites use per-item timestamps and optimistic versioning so a stale browser refetches and merges rather than silently replacing a newer server copy.
Device preferences do not automatically become account data. A reading-background choice can remain local. Named pupil registers, marks, evidence and similar classroom records are not swept into account synchronisation.
Audience choice, search and recently explored items
The optional homepage choice is stored only in this browser under mbm_audience_view. It contains the selected public audience route so the site can offer the same local view again. That preference is not account data and is not sent to an audience-profile service.
The key mbm_splash_last stores one timestamp in this browser so the Made by Matt intro plays once a day; it never leaves this device, and clearing this site's browser storage removes it.
Recently explored public content may be stored in this browser under mbm_recent_items_v1. Each record is deliberately limited to a stable public resource ID, its canonical public route and the time it was opened. It does not contain names, email addresses, school names, account details, lesson notes, pupil data or search terms. Discovery pages provide a Clear control that removes these recent-item records from the device.
Ordinary internal search text is not written to local storage. Made by Matt search loads a same-origin, pre-generated index from this website and filters it in the browser. A query and selected filters may appear in the page URL—for example /resources/?q=asdan—so a search can survive a reload, be copied or work through the non-JavaScript form.
Typing in Made by Matt search does not send the query to Google, DfE, Ofsted or another external search provider. The Professional Education Hub uses its local curated data for ordinary filtering. A clearly labelled official-source link or outbound-source search leaves Made by Matt only after the visitor deliberately activates it; the destination then receives the normal web request needed to open that page.
These discovery features remain separate. Audience choice, recent items and internal search do not enrol anyone in an account or mailing list. Account and mailing systems keep their own explicit controls and consent.
Separate encrypted game-save sync
The estate also contains an older, separate design for opt-in encrypted game-save sync. It is not the account system. Its configuration remains independent, and it must not be described as account-backed sync unless it is actually connected and proven.
Other things that may leave your browser
| If you… | then this may be sent | to |
|---|---|---|
| Choose optional shared usage statistics | When active and allowed: public resource ID, event type, site source and one-event retry code; location measurement is off | Existing Supabase service; no event request while collection is inactive or refused |
| Send the contact form | The name, email address and message you typed | formsubmit.co, the existing contact relay |
| Search Made by Matt content | The local index is loaded from this site; a query/filter may be present in the page URL | Made by Matt's same-origin website |
| Open an official external education source | The normal navigation request after you deliberately choose the labelled outbound link | The named official publisher |
| Press play on an embedded video | The request needed to load the player/video | youtube-nocookie.com |
| Create or use a cloud account | Account identity/session traffic and account-backed member rows | Supabase |
| Join the mailing list | The email address you deliberately submit and the provider's subscription/confirmation state | Made by Matt's serverless endpoint and Buttondown |
Classroom records and offline-first tools
The UAS Register, ASDAN tools and other surfaces that explicitly say their pupil records stay on the device are not automatically changed by the account system. Authentication must not turn a local pupil-data store into cloud data by accident. Public/offline lessons and standalone apps continue to launch without contacting the account service as a precondition.
Those local stores are named here rather than left as a mystery on a shared device. The UAS Register keeps its data in this browser's IndexedDB under uas_register: pupil forenames, surnames and learner numbers, the units and outcomes each pupil is enrolled on, dated marks, session registers, and any work-example photographs filed as evidence. It is a register, so remembering those names is the feature rather than a leak — but it does mean the device holds named pupil data. Nothing in it is sent anywhere: the app makes no off-origin request at any point, measured. It stays on the device it was entered on, which also means a reimaged laptop or a cleared browser takes it with it.
Two controls in the register's own Settings panel reach that store directly. Export backup (.json) writes the whole register, photographs included, to a file you keep. Delete all data removes every pupil, unit, mark, session and work example from this device, and names what it is about to delete before it does it. Export before a shared device is handed on, then clear it.
Children and education use
Made by Matt is used in education, but the optional account system is intended for adults and teachers rather than pupil account ownership. Pupils can use the public learning, games, apps, tools and resources without creating an account. The account is deliberately data-minimised and is not a pupil-profile system: do not enter school records, pupil evidence or sensitive personal details into the optional display-name or member-favourite features.
The mailing list is a separate adult marketing choice, uses its own consent action and double opt-in, and is never bundled into account creation.
Security and secrets
- No Gmail password, SMTP password, Supabase service-role key, Buttondown API key or other private credential belongs in GitHub or browser code.
- The public Supabase project URL and browser key may be published only because the provider designs them for client use; row-level security remains the data boundary.
- Account deletion uses a server-side service-role secret and requires an authenticated user session.
- Mailing-list administration uses a server-side provider token; the browser never receives it.
Questions, unsubscribe or deletion
For account-data questions or deletion assistance, email contactmadebymatt@gmail.com. Mailing-list messages retain their own unsubscribe mechanism, and signed-in account holders may also use the Account-page unsubscribe control; unsubscribing does not require deleting a Made by Matt account.
Updated 9 August 2026 for the audience-discovery architecture, same-origin search, device-local recent items, cloud-account audience and separate double-opt-in mailing-list architecture.
Optional usage statistics
Help Matt see which lessons, downloads and games are useful. This is optional and off until you allow it. We count activity events, not people or completed work.
When active, the shared service receives only a public resource ID, event type, site name and a one-event retry code. It receives no account information, search text, pupil work or full page URL. Location measurement is off.
Shared statistics collection is not active yet.
Your choice is saved only for this website in this browser. Education and Play have separate choices. Turning statistics off stops future event requests; already anonymous aggregate totals cannot be linked back to you. Read the statistics privacy explanation.