Product updates
What is new in MAS
A concise timeline of major platform developments across the MAS public website, subscriber CMS, fundraising, operations and marketing surface.
Website CMS launch checklist
Workspace editors can now see the core blockers before launching a tenant website.
- NewThe workspace now includes a Website launch checklist for page, preview, domain, sender-domain and site-status readiness.
- ImprovedThe checklist highlights next actions such as publishing the Home page or completing DNS verification.
- ImprovedLaunch-readiness details remain hidden from users without website editor access.
Website CMS page shortcuts
Workspace editors can jump from a mosque workspace into page editing, preview, and public launch checks.
- NewThe workspace now includes CMS page shortcuts for Payload page editing, signed previews, and published tenant-site pages.
- ImprovedDraft pages show a signed Preview action while published pages also show a Public page shortcut.
- ImprovedShortcut details and preview links remain hidden from users without website editor access.
Website CMS starter-template reference
Workspace editors can now compare starter-template purpose and block sequences before choosing one.
- NewThe workspace now includes a CMS starter templates reference panel for website editors.
- ImprovedPayload starter-template guidance now describes what each template is for and which blocks it creates.
- ImprovedTemplate application still only seeds empty page layouts, preserving existing authored blocks.
Website CMS version diff details
Workspace editors can review field and block-level differences before restoring saved page versions.
- NewRecent CMS page versions now show saved and current values for page title, slug, status and schedules.
- ImprovedThe comparison panel now highlights saved/current block sequences, added or removed block types and block-order changes.
- ImprovedVersion comparison still looks up current pages by tenant and page id before restore review.
Website CMS starter templates
CMS editors can now seed empty tenant pages from common mosque starter layouts before customising blocks.
- NewPayload pages now offer starter templates for Home, About, Services, Donations, Events, Bookings and Contact pages.
- ImprovedTemplates fill title, slug and blocks only when the page layout is empty, so existing tenant content is not overwritten.
- ImprovedThe template pack reuses the existing safe-rendered mosque blocks instead of introducing a separate CMS surface.
Website CMS publish confirmation
CMS page publishing now requires an explicit readiness confirmation before draft tenant pages go live.
- NewPayload pages now include Ready to publish confirmation fields and optional review notes.
- ImprovedDraft-to-published changes are blocked until readiness is confirmed, including scheduled publish updates.
- ImprovedPublish audit metadata records the confirmation timestamp and editor email where available.
Website CMS version comparison
Workspace editors can compare saved CMS page versions against the current page before restoring.
- NewRecent CMS page versions now show changed fields against the current page.
- ImprovedRows compare saved and current status, schedule and block metadata before restore.
- ImprovedComparison lookup stays tenant-scoped by page id and tenant id.
Website CMS version restore
Workspace editors can now restore saved CMS page versions after explicit confirmation, with restore audit records.
- NewRecent CMS page versions now expose a guarded restore action for non-latest snapshots.
- ImprovedRestores require the exact version id and run through Payload so versioning, audit and revalidation hooks stay in the normal path.
- ImprovedRestore-specific content audit events record the source version and editor context for workspace review.
Website CMS page-builder blocks
Tenant website pages can now use richer mosque-specific Services and CTA sections alongside the existing event, donation and booking blocks.
- NewPayload page layouts now include Services and CTA blocks for classes, community support, programmes and focused calls to action.
- ImprovedTenant-site rendering now ignores unsafe editor-provided action URLs and hides empty structured sections instead of showing broken content.
- ImprovedDemo tenant website seeding includes Services, Events, Donations, Bookings, CTA and Contact sections for a more complete starter page.
Tenant-branded donation receipts
Successful one-off donations and recorded monthly donation invoices can now trigger idempotent donor receipts.
- NewDonation receipts use the verified mosque sender domain when available and fall back to the MAS sender when a tenant sender domain is not ready.
- NewReceipt delivery metadata is stored on tenant donation records so replayed apply/webhook paths do not duplicate already-sent receipts.
- ImprovedGift Aid declaration evidence appears in the receipt email without changing the separate finance claim review workflow.
Recurring donation provider readiness
Finance users can now verify Stripe subscription metadata for monthly donation cancellation requests.
- NewThe Monthly donor subscriptions panel can check Stripe app, purpose and tenant metadata before any provider cancellation side effect.
- NewMAS now records provider cancellation readiness, checked timestamp, Stripe subscription status and provider errors separately from the MAS cancellation request.
- ImprovedProduction-enabled live Stripe cancellation remains disabled unless the tenant-donation provider path is explicitly configured.
Monthly donor subscription management
Finance users can now review monthly donor subscriptions and record cancellation-request notes.
- NewThe workspace Donations and Gift Aid section now groups recurring invoice rows into monthly donor subscription summaries.
- NewFinance users can record cancellation-request notes across the tenant-scoped Stripe subscription rows.
- ImprovedLive Stripe cancellation and donor self-service remain pending until provider verification and operational sign-off are complete.
Gift Aid correction package visibility
Finance users can now see correction package rebuild details after a correction-required HMRC response.
- NewRebuilt draft HMRC XML packages now record the attempt number, prepared-by user, correction reason and source response timestamp.
- ImprovedThe workspace Gift Aid claim summary shows Correction package details without enabling live HMRC filing.
- ImprovedDirect HMRC filing remains pending until real IRmark generation, sandbox recognition and operational sign-off are complete.
Gift Aid HMRC response readiness
Finance users can now record manual/test HMRC response outcomes against prepared Gift Aid XML drafts.
- NewPrepared Gift Aid claims now store placeholder IRmark readiness metadata from the draft XML package.
- NewThe workspace Gift Aid panel can record accepted, rejected or correction-required HMRC response payloads after XML preparation.
- ImprovedCorrection-required outcomes move the claim back into a correction-ready path without enabling live HMRC filing.
Reviewed Gift Aid evidence retention actions
Finance users can now record reviewed Gift Aid evidence decisions and redact stored CSV/XML export payloads when appropriate.
- NewThe workspace Evidence due for review panel now offers Retain evidence and Redact exports actions for due or legacy Gift Aid claim batches.
- ImprovedRedact exports replaces stored CSV and draft HMRC XML payloads with non-donor-identifying summaries while keeping claim totals and source donation records auditable.
- ImprovedDirect HMRC filing remains pending; the new workflow is a finance-reviewed retention action, not an automatic deletion or submission path.
Gift Aid retention review queue
Finance users can now see Gift Aid claim batches whose evidence is due for manual retention review.
- NewThe workspace Gift Aid panel lists due claim batches and legacy claims missing retention metadata.
- ImprovedA tenant-scoped finance API returns review reasons and export-impact guidance without mutating donor evidence.
- ImprovedCSV and XML evidence is explicitly kept donor-identifiable until a reviewed retention action is recorded.
Gift Aid evidence retention review metadata
Gift Aid claim batches now record the MAS retention policy version and review dates before direct HMRC filing is added.
- NewNew draft Gift Aid claims store retain-until and review-due dates for donor-identifiable evidence.
- ImprovedThe workspace Gift Aid panel now shows the retention policy version and review expectation alongside claim status.
- ImprovedPublic copy and guides now distinguish retention review metadata from future automated redaction or live HMRC submission.
Staff-created event occurrence registrations
Workspace event teams can now add attendees to a selected event occurrence without using the public website form.
- NewEvent cards now include an Add attendee form for users with event-management access.
- ImprovedStaff-created registrations reuse the same occurrence validation, active duplicate-email protection and capacity/waitlist rules as public registrations.
- ImprovedPaid event places created by staff are recorded as pending payment rather than marked paid automatically.
Occurrence dashboard summaries for events
Workspace event cards now show per-occurrence attendance summaries and let teams filter recurring event attendees by date and status.
- NewRecurring event attendee panels now include occurrence summary cards with registered, waitlisted, checked-in, cancelled and payment counts.
- NewWorkspace users can combine occurrence and status filters to review one event date, waiting list or check-in group.
- ImprovedAttendee CSV exports now follow the active occurrence and status filters.
Draft HMRC XML for Gift Aid claims
Prepared Gift Aid claims can now produce a draft GovTalk/R68 XML package for technical validation before any live HMRC filing path is enabled.
- NewFinance users can enter HMRC claim metadata and build an XML draft from the workspace Gift Aid claim panel.
- ImprovedGift Aid claims now store XML payload, correlation id, endpoint and prepared-by audit fields.
- ImprovedThe HMRC client foundation remains disabled by default until IRmark, credentials, response mapping and operational review are completed.
Gift Aid HMRC-ready preparation
Finance users can now move draft Gift Aid claims into an HMRC-ready review state while keeping CSV evidence as the current export path.
- NewDraft Gift Aid claims can be marked ready for HMRC review from the workspace claim panel.
- ImprovedGift Aid claims now store submission preparation audit fields and correction notes for the future HMRC XML/API workflow.
- ImprovedDashboard and guide copy state that MAS has not sent a live HMRC filing yet.
Event refund webhook reconciliation
Stripe refund updates now reconcile paid event registration refund records without double-counting dashboard-created refunds.
- ImprovedRefund webhooks now fall through from booking reconciliation to event registration reconciliation when no booking matches the Stripe PaymentIntent.
- ImprovedTracked event refunds update their latest Stripe status without adding the same refund amount twice.
- FixedFailed or cancelled tracked event refunds can reverse the recorded refund amount and move the registration payment back to Paid.
Paid event registration refunds
Bookings-capable event users can now issue full or partial Stripe refunds for paid event registrations from the workspace.
- NewPaid event attendee rows now expose a guarded refund action that defaults to the remaining refundable amount.
- NewEvent refund records store Stripe refund id/status, cumulative amount, reason, staff user and timestamp.
- ImprovedEvent attendee CSV exports now include refunded amount, refund status and refund timestamp.
Occurrence-scoped event registrations
Recurring event registrations now store the selected event date so mosque teams can track attendance and reminders per occurrence.
- ImprovedTenant-site recurring event cards submit the occurrence date selected by the visitor.
- ImprovedCapacity, duplicate active-email checks and native MongoDB uniqueness now apply per event occurrence.
- ImprovedWorkspace attendee rows and CSV exports show occurrence date/time, and reminders target matching occurrence attendees.
Duplicate-safe public event registration
Public event registration now has a database-backed active email guard so concurrent submissions cannot create two active places for the same event occurrence and attendee email.
- ImprovedA native MongoDB partial unique index protects active event registrations by tenant, event occurrence and attendee email.
- ImprovedThe public registration service maps database collisions back to the existing duplicate-registration message.
- ImprovedCancelled historical registrations remain available, so the same email can register again after cancellation.
Event reminder retry and monitoring
Reminder delivery now retries transient email failures once and exposes failed or stale reminder deliveries in the operator console without attendee details.
- ImprovedThe reminder service retries a transient email-send failure once before marking a delivery failed.
- ImprovedFailed or stale pending reminder delivery records can be reclaimed by the worker while the reminder is still eligible.
- NewThe operator console now shows sanitized failed or stale reminder delivery issue rows for support follow-up.
Hourly event reminder processing
The event reminder scheduler now runs hourly against the worker's 65-minute lookback so sub-day reminder timings are not missed by a daily cron.
- ImprovedVercel Cron now invokes the protected event-reminder process route hourly.
- ImprovedThe route keeps a 65-minute default lookback, giving each hourly run a small overlap window.
- ImprovedThe events guide now describes hourly reminder checks for mosque teams.
Public donation checkout abuse controls
Tenant-site one-off donation, payment confirmation and monthly checkout routes now apply donor-scoped rate limits before Stripe or donation side effects run.
- NewDonation PaymentIntent, donation apply and recurring Checkout Session routes use Mongo-backed hashed public route buckets.
- NewRepeated automated donor submissions now receive user-safe throttling responses with Retry-After guidance.
- ImprovedNormal one-off, Gift Aid, monthly checkout, cancellation and idempotent apply behaviours are preserved behind the abuse-control layer.
Public booking and contact abuse controls
Public contact, booking request, same-session booking payment and reusable booking payment-link routes now apply user-safe rate limits before side effects run.
- NewThe public contact endpoint validates submissions, rate-limits repeated valid enquiries and no longer returns provider error bodies to visitors.
- NewTenant-site booking request and booking payment routes now use Mongo-backed hashed requester buckets before creating bookings or payment attempts.
- ImprovedReusable booking payment-link rate limits keep the raw token out of the stored bucket scope while preserving normal pay-link checkout behaviour.
Public event registration abuse controls
Public event registration and paid event checkout routes now apply tenant/event-scoped rate limits before registration or payment services run.
- NewMAS stores hashed public route rate-limit buckets in MongoDB without saving raw attendee email or IP values.
- NewFree registration, waitlist, paid payment-intent and paid payment-apply routes now return user-safe throttling responses when a public visitor submits too many requests.
- ImprovedNormal free, waitlist, paid-pending and paid-success event registration behaviours are preserved behind the abuse-control layer.
Automated event reminder delivery foundations
MAS can now process due one-off and recurring event reminders, send tenant-branded emails, and record delivery state so scheduler runs are idempotent.
- NewA protected Vercel Cron route processes due event reminder offsets on the tenant scheduler cadence.
- NewReminder emails use verified tenant sender domains where available and fall back to the MAS sender otherwise.
- ImprovedReminder delivery records prevent duplicate sends for the same event occurrence and offset.
Event recurrence and reminder foundations
Workspace teams can now store bounded recurrence rules and reminder plans, and tenant websites expand recurring events into upcoming dates.
- NewEvent creation now supports daily, weekly and monthly recurrence with a bounded occurrence count.
- NewTenant-site event blocks expand recurring events into upcoming dates, and public registrations store the selected occurrence date.
- ImprovedReminder plans can now be stored and displayed ahead of automated reminder delivery.
Paid event registration checkout foundations
Tenant-site paid event registrations can now collect Stripe payments before confirmation emails are sent.
- NewPaid event registrations now create pending registration payment state and Stripe PaymentIntents from tenant-site event blocks.
- NewSucceeded event-registration payments are verified against tenant, event, registration, amount and currency metadata before registrations are marked paid.
- ImprovedWorkspace event attendee lists now show payment status and paid amounts for paid registrations.
Event attendee management
Workspace teams can now manage event registration statuses, check attendees in and export attendee CSVs.
- NewEvent registrations now support workspace status changes for registered, waitlisted, checked-in and cancelled attendees.
- NewEvent cards now include attendee filters, contact details, timestamps, notes and CSV export.
- ImprovedCheck-in and cancellation timestamps are written server-side through tenant/event-scoped registration updates.
Public event registration foundations
Free tenant-site event registrations now capture attendee details, handle waiting lists and send tenant-branded confirmations.
- NewPublished public events with registration enabled now show a free registration form on tenant websites.
- NewOver-capacity event registrations are placed onto a waiting list, and duplicate active email registrations are rejected.
- ImprovedWorkspace event rows now show registered/waiting-list counts and recent attendee registrations.
Booking cancellation settlement and refund reconciliation
Cancelled bookings now close unused pay-later links and Stripe refund events reconcile booking refund records.
- ImprovedCancelling a requested or approved booking now cancels any still-active deposit or balance payment links for that booking.
- ImprovedWorkspace booking rows show whether a cancelled paid booking still has a refundable deposit or balance available.
- NewStripe refund webhooks now reconcile deposit and balance refund records without double-counting dashboard-created refunds.
Paid booking balance refunds
Bookings users can now refund all or part of a paid booking balance separately from the deposit.
- NewWorkspace booking rows now show a Refund balance action when a final balance payment has been collected.
- ImprovedBalance refund records keep separate Stripe refund id/status, cumulative amount and audit fields from deposit refunds.
Paid booking partial refunds
Bookings users can now refund all or part of a paid booking deposit from the workspace.
- NewRefund confirmation now includes an editable amount that defaults to the remaining refundable payment.
- ImprovedBooking refund records keep cumulative refunded amount and only mark the payment fully refunded once the original payment has been returned.
Booking balance payment links
Bookings users can now collect stored booking balances through reusable public payment links.
- NewWorkspace booking rows can generate balance-specific payment links for bookings with a stored remaining balance.
- ImprovedPublic booking payment links now label whether the requester is paying a deposit or a balance.
Booking hourly balance foundation
Hourly booking resources now calculate total hire and remaining balance amounts.
- NewBooking creation stores total hire and balance due amounts from hourly rates and requested times.
- ImprovedWorkspace and tenant-site booking surfaces show hourly total, deposit and remaining balance information.
Paid booking refund foundation
Bookings users can now refund paid booking payments from the workspace.
- NewWorkspace booking rows use a two-step refund action for Stripe refunds.
- ImprovedRefund records store Stripe refund id/status, amount, reason, staff user and timestamp for audit.
Reusable paid booking links
Bookings users can now create token-backed pay-later links for payable booking requests.
- NewWorkspace booking rows can generate and copy a public booking payment link.
- ImprovedPayment links expire after 14 days, store only a token hash, can be cancelled by staff and are marked used after successful Stripe payment.
Public booking staff notifications
Mosque booking teams are now alerted when a visitor submits a tenant-site booking request.
- NewPublic booking requests email the workspace owner plus active admin and bookings users.
- ImprovedStaff alerts use verified tenant sender domains where available and set the requester as reply-to.
Public booking deposit payment handoff
Tenant website booking forms can now move requesters into card deposit payment after a payable request is accepted.
- NewBooking blocks show configured deposits and render Stripe Elements for same-session deposit payment.
- ImprovedSucceeded public deposit payments are applied back to the booking through the verified booking payment route.
Paid booking deposit checkout foundation
Paid booking requests now have a backend Stripe deposit-payment path before the public payment UI and refund workflow arrive.
- NewAdded booking payment intent and apply endpoints for payable requested or approved bookings.
- ImprovedBooking payment apply checks requester email, Stripe status, amount, currency and MAS metadata before marking a payment paid.
Marketing platform backbone
MAS gained a shared marketing source, public feature tour, dedicated SEO feature pages, changelog and public-surface status tracking.
- NewAdded `/features`, `/features/[slug]` and `/changelog` public routes.
- NewCreated `src/lib/marketing.tsx` as the source of truth for feature groups, guides and changelog entries.
- ImprovedUpdated sitemap coverage so new marketing pages can be indexed.
Public booking request forms
Tenant website booking blocks can now collect public booking requests while reusing central validation and overlap checks.
- NewAdded unauthenticated tenant-site booking request submissions.
- ImprovedWorkspace booking users can approve, reject or cancel eligible requests and send requester status emails.
Donations, Gift Aid and events foundations
The subscriber website platform moved into finance and community workflows with donation campaigns, recurring giving and events.
- NewAdded tenant donation campaigns, one-off checkout, recurring donation checkout and Gift Aid claim export foundations.
- NewAdded master events calendar foundations and tenant-site event-list blocks.
Domains, sender email and registrar guardrails
Tenant owners/admins can manage domains and branded sender email while paid registrar actions stay behind Stripe and idempotent jobs.
- NewAdded Vercel availability/price checks and tenant-facing paid domain purchase status polling.
- ImprovedAdded operator recovery for provisioning jobs and provider verification refreshes.
Explore the current feature surface
The changelog tracks major platform moves. The feature tour explains how the current capabilities fit together for mosque teams.
