· 30. März 2026
Courses, paid bookings, waitlists and passkeys
Methacore became something you can sell courses with: bookings paid through Stripe with discount codes, a waitlist that hands out freed seats on its own, an email for every step of a booking, and passkey sign-in.
Added
- Courses. Courses can be created, edited, archived and deleted, sorted onto boards, assigned to a trainer, and blocked for individual dates. Each course carries its price, its charges and its discounts, keeps a participant group in sync, and shows up in the app with image and description.
- Paid bookings through Stripe. An organisation connects its own payment methods and takes payment for a booking; a refund goes back the same way. Discount codes lower the price, and the page after a successful booking breaks down what was actually charged.
- A waitlist that fills freed seats. Capacity is now allocated on the server, so a booking into a full course lands on the waitlist. When a seat opens up it is offered automatically, and when a course changes the existing waitlist entries are carried over and the people on it are notified.
- An email for every step of a booking. Booker and participant are notified when a booking is made, when its status changes, and when a waitlist seat is offered to them. A course can also send a message to everyone in it.
- Passkey sign-in. Registration and login work with WebAuthn, so a passkey stands in for the password. A passkey can be set up directly from the sign-in screen, which then counts as verified.
- Sign-in through an OAuth2 identity exchange. Sign-in can be verified against an external identity provider, and the authorization page now opens in the same window instead of a second one.
- Password reset on the web. A reset page that validates the form and rates the strength of the new password.
- Guided onboarding. New users are taken through a series of steps with course videos; finished steps are remembered, and each step shows a countdown.
- Trial period and upgrade. An organisation now carries a status, and the test phase has an end: once it runs out the dashboard locks, and an admin can upgrade the organisation.
Improved
- Setting up a course in the dashboard. Trainers can be searched and picked while a course is being set up, and the booking pages follow one structure with the navigation between them reworked.
- Bookings in the app. The profile and booking views load their course data themselves and can be pulled to refresh.
- Profile data comes from a cache. The user data behind the account view is cached with an expiry instead of being looked up on every call.
- The pricing table. Plan descriptions and feature details were rewritten so it is clearer what each plan contains.
- The dashboard login page. It now holds up on small screens.
- The sign-in screen on the website. The login options sit in a button grid, and the passkey prompt got its own panel in the flow.
- Support is reachable from the website footer.
Fixed
- Creating or updating a course could attach an invalid group, and group selection in the dashboard listed the same group twice.
- Signing in could fail for accounts that have no stored credentials.
- Course emails went out through the wrong mail server address, and the links to login and password reset pointed at the old addresses.
- Payments picked up the wrong Stripe credentials: courses and organisations read them inconsistently, and the dashboard used the wrong client id.
- The message for an expired session on the sign-in and password reset pages spelled out more internal detail than it should.
- Landing on the not-authorised page left the stale session cookie in place.