Changelog
Release history — new features, improvements, and bug fixes.
v0.40 March 23, 2026
Features
- Skills & Competency Tracking — A complete system for tracking skills, competency assessments, and goals for horses, riders, and horse-rider pairs. Browse a catalog of 119 platform skills across 10+ disciplines, fork them into your organization, or create custom skills with configurable assessment scales (numeric, level-based, pass/fail).
- Observable Criteria — Define specific, observable checkpoints for each skill. Instead of subjective ratings, assess against concrete criteria like "enters water at walk without balking." Competency levels auto-derive from criteria met.
- Accelerator Bundles — Get started fast with discipline-specific skill packages. Apply a bundle (Dressage USDF, Hunter/Jumper, Eventing, Western, Reining, Groundwork, Young Horse, Trail/Endurance) to instantly populate your skill catalog.
- Goals with Progress Tracking — Set competency goals for horses and riders with target skills, deadlines, and step-by-step plans. Link goals to training programs. Progress updates automatically as assessments are recorded.
- Event Qualifications — Trip and ride organizers can define skill requirements for participants. Riders self-certify against specific criteria. Organizers see qualification status per participant with waiver support.
- Training Session Logging — Record what happened in each training session: who participated, which exercises were used, how it went. Link sessions to scheduled lessons or rides. Assessment prompts appear on session completion.
- Training History — New Training tab on horse detail pages showing all sessions. Rider training history on contact pages. Exercise detail pages show usage counts across sessions.
- Training Analytics Dashboard — Barn-wide view of training activity: sessions per week, most-used exercises, horse training frequency, trainer workload.
- Organization Entities — Create organizations with a free 30-day trial (one per account). Manage multiple organizations from User Settings with lifecycle controls.
- Subscription Awareness — Color-coded status badges in the entity switcher show subscription health at a glance. Dismissable expiry banners warn owners as renewal dates approach. Email and dashboard notifications at configurable milestones.
- Consolidated Billing — View all your subscriptions across personal and organization entities in one place from User Settings.
- Entity Lifecycle — Schedule organization deactivation with future dates and optional member notification. Reactivate with subscription status awareness. Cooldown guard prevents accidental changes.
Improvements
- Person Picker — "Myself" option appears at the top of all person selection dialogs. Multi-select mode for adding multiple participants. Smart defaults based on entity type.
- Skills Management — Search, category filtering, pagination, and active/archived toggle on the skills list. System catalog browsing with Added/Available/All filter. Admin management page for platform skills.
- Post-Signup Discovery — New users see a prompt introducing organization features with a free trial offer.
- Contextual Upgrade Prompts — When hitting feature limits, see options to upgrade or create an organization.
Bug Fixes
- Property profile forking — Fork now generates unique names ("Copy of X") instead of failing on duplicate names.
- Assessment dates — Fixed date format conversion for assessment recording.
- Skill archiving — Uses "Archive" terminology with clear messaging that data is preserved, not deleted.
v0.39 March 22, 2026
Features
- Location hierarchy — Locations can now nest under parent locations up to 4 levels deep. A collapsible tree view shows the full hierarchy with status badges (available, occupied, maintenance, out of service) and drag-and-drop sort ordering.
- Location picker — A hierarchy-aware location selector used across horse assignment, lessons, and rides. Shows the tree structure with search, status, and type filtering.
- Composable property profiles — Create named, reusable bundles of properties (like "Indoor Arena" or "Heated Barn") and apply multiple profiles to any location. Properties from all applied profiles merge together, and you can override individual values per location.
- 27 starter profiles — Pre-built profiles for locations (12), horses (6), trails and rides (4), and contacts (5) with structured property definitions.
- Profile management — Create, edit, fork, and delete property profiles in entity settings. A dynamic editor lets you build properties and their schema simultaneously.
- Profile picker — Multi-select profile picker with a merge preview, integrated into location create and edit forms.
Bug Fixes
- Location property editing — Fixed a regression where adding custom properties, persisting profile overrides, and deleting properties on location forms was broken.
- SSR media page — Fixed a server-side rendering error on media pages caused by browser-only code running on the server.
- API route registration — Fixed an issue where some authenticated API routes were unreachable in production.
v0.38 March 21, 2026
Features
- Video transcode management — View renditions per video with resolution, file size, and creation date. Delete individual renditions or all at once to reclaim storage. Storage breakdown shows original vs. transcoded usage.
- Transcode status filter — Filter your media library by transcode status: optimized, processing, pending, or failed.
- Entitlement-gated controls — Features beyond your current tier now show a disabled state with an explanatory tooltip instead of error pages, making it clear what's available with an upgrade.
Security
- Input sanitization — Server-side HTML sanitization on forum and chat content to prevent script injection.
- API documentation — Development-only API documentation is no longer accessible in production.
- Request origin validation — Tightened cross-origin request handling.
- URL validation — URL fields are validated to prevent requests to internal network addresses.
- Security headers — Consolidated security headers to eliminate conflicts and remove timing data from responses.
- Authentication guards — Protected pages now redirect unauthenticated users before any page content loads.
- CAPTCHA protection — Contact, newsletter, and early access forms are now protected against automated submissions.
Bug Fixes
- Map rendering — Fixed maps displaying without styles across the entire site.
- Analytics consent — Analytics script now properly waits for cookie consent acceptance.
- Storage bar — Fixed segmented bar rendering when usage exceeds allocation.
v0.37 March 20, 2026
Features
- Public website — Complete anonymous browsing experience with a public navigation bar, page footer, and mobile responsive layout.
- Landing page — Hero section with product imagery, feature highlights, social proof, and call-to-action.
- Features showcase — Overview page with 10 detailed feature pages, product screenshots, and breadcrumb navigation.
- Pricing page — Plan comparison with feature matrix, monthly/annual toggle, and inline FAQ.
- About Us page — Mission statement, values, team introduction, and contact call-to-action.
- Help center — Redesigned with quick-link cards, article grid, and support options.
- FAQ page — Categorized accordion with search and filtering across general, features, billing, privacy, and technical topics.
- Blog — Post listing with categories, individual post pages, RSS feed, and changelog integration.
- Contact page — Contact form with subject selection and spam prevention.
- Cookie consent — GDPR/CCPA compliant banner with accept, reject, and customize options. Analytics only run after consent.
- Newsletter signup — Footer email capture with double opt-in confirmation, welcome email, and unsubscribe flow.
- Status page — Live health checks, incident history, and service status indicators.
- Early access signup — Lead capture form for closed beta with confirmation email and admin dashboard.
- SEO foundations — Meta tags, Open Graph, Twitter Cards, canonical URLs, sitemap, and structured data across all public pages.
Improvements
- Legal pages — Cookie Policy added. Terms of Service and Privacy Policy restyled with improved formatting.
- Terminology — "Barn" replaced with "operation," "facility," and "organization" throughout all content.
- Closed beta banner — All "Sign Up Free" buttons replaced with "Request Early Access" during the beta period.
Bug Fixes
- Navigation bar — Solid background and improved readability on all public pages.
- Footer links — Report Issue and Contact links now point to the correct pages.
v0.36 March 20, 2026
Features
- Customizable sidebar menu — Reorder sections and items in the entity sidebar to match how you work. Create custom sections, copy layouts from other organizations, and collapse sections to keep things tidy. Sidebar state persists across page reloads and logins.
- Admin sidebar defaults — Organization administrators can set a default sidebar layout for all members.
- Gift memberships — Purchase gift memberships and share gift codes with a 12-month claim window. Recipients can apply gift codes to extend an existing subscription or start a new one.
Bug Fixes
- Navigation bar — Login state and navigation items (notifications, username, cart, help) now persist correctly across page navigation.
- Admin subscriptions — Fixed crash when viewing subscriptions without an end date.
v0.35 March 18, 2026
Features
- Subscription tiers — Three offering tiers (base, trial, paid) with automatic enrollment at signup. New organizations receive a base subscription and a 30-day free trial automatically.
- Admin commerce configuration — Administrators can view and change active subscription offerings per tier, see change history, and view subscription reports by entity.
- Video transcoding controls — Transcoding is now an explicit "Optimize" action in the media toolbar, separate from sharing. Seven granular entitlement controls for transcoding features.
Bug Fixes
- Plan page — Organizations with only a base subscription now see "Get Started" buttons for all available paid offerings.
- Offering display order — Fixed all offerings appearing in the same position on the plan page, which hid purchase buttons.
v0.34 March 18, 2026
Features
- Media visibility badge — See at a glance whether each photo or video is public or private with badges on every grid card and list row.
- One-click visibility toggle — Change media visibility directly from the viewer toolbar without entering edit mode. A confirmation prompt appears before making untranscoded video public.
Improvements
- Upload progress — Real-time progress bar with percentage, upload speed, estimated time remaining, and cancel button. Works for all file types.
- Video processing status — Processing updates arrive automatically. Elapsed time displays during transcoding.
v0.33 March 18, 2026
Features
- Video transcoding — Upload high-resolution video and it's automatically optimized for streaming. Transcoding is an explicit "Optimize" action gated by your subscription tier, so you control when and what gets processed.
- Adaptive video playback — Transcoded videos stream with adaptive quality that adjusts to your connection speed.
- Video pipeline dashboard — Administrators can monitor transcoding queue depth, job status, processing times, and retry failed jobs.
- Recurring lesson series — Create repeating lessons with frequency options and a calendar preview. Recurring lessons display with a series icon. Cancel remaining lessons in a series with one action.
- Lesson editing — Edit lesson details after creation, mark students as excused with a reason, and reassign trainers.
- Client cancellation history — View late cancellations, no-shows, and excused absences per contact from the contacts list and lesson detail pages.
- Scheduling policies — Configure your cancellation window, late cancel and no-show tracking rules, and policy text.
- Exercise and lesson plan cloning — Duplicate any exercise or lesson plan with one click to create a draft copy.
- Collections navigation — Browse content collections from a dedicated tab on the library landing page.
- Featured content management — Items link directly to edit pages with visibility badges and a "Make Public" action.
Improvements
- Storage usage bar — See your storage consumption with per-tier limit warnings on the media page.
- Upload progress — Real-time progress bar with percentage, upload speed, estimated time remaining, and cancel button during file uploads.
- Upload navigation warning — Browser prompts for confirmation if you try to navigate away during an active upload.
- Video processing updates — Processing status refreshes automatically without manual page reload.
v0.32 March 17, 2026
Features
- Chat administration — Channel types (public, private, announcement), channel-level member roles, message flagging with a moderation queue, moderator message deletion, and user muting with configurable duration.
- Chat message retention — Configure how long chat messages are kept per organization. Pinned messages are exempt. Retention limits scale with your subscription tier.
- Forums — Forums are now first-class containers for threads. Each forum has its own visibility settings, member roles, and moderation controls. Create multiple forums to organize discussions by topic.
- Forum administration — Forum-level moderation with thread flagging, moderator deletion, muting, and the ability to move threads between forums. Tags and full-text search help members find what they need.
- Forum content retention — Configure forum retention separately from chat. Pinned threads are exempt.
- Trainer content library — Foundation for exercises, lesson plans, programs, phases, sessions, milestones, and progression tracking. Includes reference data for 11 disciplines, 52 progression levels, 31 equipment types, and more.
- Trainer service offerings — Define your services with flexible pricing (fixed, range, contact, hidden), categories, discipline tags, and availability.
- Trainer scheduling — Weekly availability templates, per-facility availability, exception management, and time slot computation.
- Video support — Link external videos (YouTube, Vimeo) or upload directly. HTML5 player with timestamps and auto-generated thumbnails.
Bug Fixes
- Facility creation — Personal entities can now create facilities when their subscription allows it, instead of being blocked by a hardcoded tier check.
- Feature gating — Replaced hardcoded tier checks with proper entitlement checks on facilities, locations, and services pages.
v0.31 March 16, 2026
Features
- Notification preferences — Control which notifications you receive and how (in-app, email) for each category. Organization admins can set defaults that members can override.
- Team activity broadcasts — When team members create rides, health records, training logs, or horse records, everyone on the team gets notified.
- Chat and forums — Real-time chat with channels, forum threads with replies, and @mention notifications. Mentions create dashboard items so you never miss a conversation.
- Multi-facility support — Organizations can manage multiple facilities. Each facility has its own name, locations, and primary designation. Facility count is governed by your subscription tier.
- Facility-scoped locations — Locations are scoped to specific facilities with an aggregate view across all facilities. Filter and group locations by facility.
- Horse presence by facility — When checking a horse in, select which facility they're arriving at. Location options are scoped to the selected facility.
- Facility and location media — Upload photos and profile pictures for facilities and locations.
- Ride checklists — Apply checklist templates or create blank checklists on rides, just like trip checklists.
- Checklist templates — Save any checklist as a reusable template. Duplicate templates with one click. Templates support 10 categories across training, health, facility, and location records.
Improvements
- Mention noise reduction — Duplicate @mention notifications are suppressed. Mentions are hidden when you're already viewing the channel.
- Facility management — Card, list, and table views with search and sort. Primary facility toggle with database-enforced uniqueness.
Bug Fixes
- Form validation — Fixed site-wide "Expected string, received number" errors on form submissions.
- Ride participants — Fixed adding participants when the contact name needs to be split into first and last name fields.
- Horse management tab — Fixed crashes from duplicate keys, missing location data, and unknown prop warnings.
- Location navigation — Clicking a location row now correctly opens the location detail page.
v0.30 March 15, 2026
Features
- Legacy horses — Honor retired and passed horses with memorial pages featuring tribute text, legacy dates, curated photo galleries, and a timeline of key moments. Horse records now support Active, Archived, and Legacy statuses.
- Shopping cart — Add offerings to your cart, apply coupon codes, adjust quantities, and check out. Cart badge appears in the sidebar and top navigation.
- Coupon system — Support for percentage discounts, fixed amounts, free months, and trial extensions. Apply coupon codes at checkout.
- Checkout and receipts — Complete checkout flow with order summary, credit balance display, and post-purchase receipt with line items and next billing date.
- Billing pages — View your subscription plan, usage, invoices, payment history, credits, and order history from User Settings and Entity Settings.
- Refund requests — Request refunds from your billing page with amount validation and reason tracking.
- Public pricing page — Compare subscription tiers with a feature matrix and monthly/annual pricing toggle. No login required.
Improvements
- Invitation messages — Add a personal message when sending invitations and when responding to RSVPs.
- Tentative RSVP — Three response options: Accept, Tentative, and Decline. Tentative responses display with an amber badge on participant lists.
- Block and mute — Block organizations from sending you invitations. Blocked invitations are silently dropped.
- System announcements — Administrators can publish banners visible to all users for important notices.
- Suspension enforcement — Suspended organizations display a clear warning banner with the reason and a link to contact support.
Bug Fixes
- Billing page access — Fixed entity billing pages being invisible due to a missing permission.
- Zero-amount invoices — Free subscriptions no longer trigger payment processing errors.
- Form validation — Fixed "Expected string, received number" errors across all forms with numeric inputs.
v0.29 March 13, 2026
Features
- Commerce engine — Full subscription commerce system with products, offerings, pricing tiers, orders, invoices, payments, refunds, credits, and usage metering.
- Entitlement system — 20 feature constraints with boolean, numeric, and metered types. Feature access is now governed by your subscription tier with clear upgrade paths.
- Admin panel — Unified administration dashboard with user management, entity management, impersonation, subscription controls, entitlement overrides, and audit logging.
- Bundle products — Composite product support lets administrators create product bundles that grant access to multiple features at once.
Improvements
- Contact privacy — Contact information no longer reveals whether someone has a Steward Horse account.
- Subscription management — Administrators can suspend, reactivate, and cancel subscriptions with full state tracking.
- Horse date of birth — Create form now includes the optional Date of Birth field, matching the edit form.
Bug Fixes
- Horse detail crash — Fixed crash when viewing a horse without a date of birth.
- Connection requests — Accept and decline actions now work correctly from dashboard notifications.
- Suspended accounts — Suspended users are now properly blocked from logging in with a clear message.
v0.28 March 11, 2026
Features
- Timezone preferences — Set your display timezone in User Settings and your organization's operating timezone in Entity Settings. Events spanning timezones show both.
- Help section — New "Understanding Dates & Times" guide explaining how timezone display works throughout the app.
- WebSocket heartbeat — Real-time updates are now more reliable with automatic reconnection when the connection drops.
Bug Fixes
- Real-time notifications — Fixed silent WebSocket disconnects that caused missed real-time updates for chat, invitations, and participant changes.
- Quick Create Contact — Network failures now show a clear error message instead of failing silently.
- Duplicate email on signup — Signing up with an existing email from an invitation link now shows an inline form error instead of a generic message.
v0.27 March 10, 2026
Features
- Quick Create Contact — Add a new contact directly from the participant picker with just a name, email, and phone number. Optionally send a ride invitation immediately after creating.
- RSVP landing page — Non-platform invitees see a branded page with options to log in, create an account, or respond as a guest. Existing users see a streamlined two-option view.
- Signup from invitation — Ride invitation links flow through account creation with email pre-filled, automatically accepting the invitation and linking the contact on signup.
Improvements
- Timezone support — All dates and times throughout the app now display in your preferred timezone. Set your display timezone in User Settings and your organization's operating timezone in Entity Settings. Cross-timezone events show both timezones.
- Single-entity simplification — Users with one organization see a clean sidebar without the entity switcher dropdown.
Bug Fixes
- Invitation emails — Fixed ride invitation emails using the wrong URL, preventing recipients from responding.
- Page refresh — Fixed 502 errors when refreshing entity pages in the browser.
- Date display — Planned rides without a date no longer show "December 31, 1969."
- Evening event emails — Fixed invitation emails showing the wrong date for evening events due to timezone conversion.
v0.26 March 10, 2026
Features
- Dashboard actions — Accept and decline buttons appear directly on dashboard notifications for connection requests, team invitations, and trip invitations. No more navigating away to respond.
- Ride invitations — Send invitations to ride participants via email. Invitees receive a dashboard notification and can respond with one click. RSVP counts (accepted, pending, declined) display on ride and trip detail pages.
- Real-time updates — Participant changes, RSVP responses, and invitation actions broadcast instantly to all team members via WebSocket.
- Horse notes tab — Notes moved to a dedicated tab on the horse detail page for easier access.
Improvements
- New app icon — Updated to the Steward Horse logo across all surfaces including email templates.
- Entity context — Switching between global and entity pages now preserves your active organization context.
- Sidebar redesign — Entity switcher moved to the sidebar. Single-entity users see a simplified layout without the dropdown.
Bug Fixes
- Display names — Fixed contacts showing raw IDs instead of names across ride, trip, and participant views.
- Team invitations — Invitees can now respond to team invitations without already being a member of the organization.
- Entity settings — Changes now reflect immediately in the sidebar after saving.
v0.24 March 9, 2026
Features
- Horse detail tabs — Horse pages now use a tabbed layout (Overview, Health, Training, Rides & Trails, Management, Media) so you can find what you need without scrolling.
- Contact overhaul — Contacts now support structured names (prefix, first, middle, last, suffix, nickname), person vs. business types, professional credentials, and address management. Dedicated create and edit pages replace the old modals.
- List view modes — Card, list, and table views with sort and pagination across horses, trips, rides, members, items, locations, and contacts.
- Items page redesign — Compact filter row with collapsible advanced filters and pill-style status toggles.
Improvements
- Mobile responsive — All entity pages now work on 375px mobile screens with no horizontal overflow. Tabs scroll horizontally, calendars stack vertically, and tables scroll within their containers.
- Trail units — Distance and elevation display in your preferred units (imperial or metric) across all trail views.
- PDF viewer — PDFs now load reliably with a loading spinner and download fallback.
Bug Fixes
- Trail save errors — Fixed distance and elevation conversion rounding that prevented saving trails.
- Contact picker — Selecting linked contacts now properly populates the field. Add Member filters to platform users only.
- Data encoding — Fixed an issue where structured data could become double-encoded on save, causing display errors across multiple features.
- Entity dropdown — Fixed duplicate entities appearing when a user has multiple roles in the same organization.
v0.21.0 March 8, 2026
Features
- Contact connection requests — When you invite a contact who already has a Steward Horse account, they receive a connection request on their dashboard instead of a signup email. They can accept or decline the request, and you are notified of their response.
- Feedback with screenshots — The feedback button now supports attaching a screenshot to your report, making it easier to show us exactly what you see.
- Password change — You can now change your password from your account settings. Changing your password signs out all other sessions for security.
- Welcome onboarding — New users are greeted with a welcome modal on first login, introducing key features and how to get started.
- Terms of Service — Added Terms of Service and Privacy Policy pages. New signups are presented with terms acceptance during registration.
- Invite limits — During the beta period, each organization has a limited number of invitations. Site administrators are exempt from invite limits.
- Beta banner and maintenance notices — A beta banner is displayed across the app. Maintenance notices can be shown when planned downtime is scheduled.
Improvements
- Branded error pages — Custom 404 and 500 error pages now match the Steward Horse look and feel instead of showing generic browser errors.
- Domain migration — Steward Horse is now available at steward.horse.
Bug Fixes
- Security hardening — Rate limiting on authentication endpoints, request body size limits, RBAC enforcement across all API routes, Content Security Policy headers, and admin-only impersonation gates.
- Photo upload fixes — Fixed horse photo uploads failing due to S3 content-length constraints and CSP blocking MinIO requests. Photos now correctly link to horse records on creation.
- Welcome modal persistence — The welcome modal no longer reappears on every login. Dismissal state is properly returned from the login endpoint.
- Media upload reliability — Media confirmation is now wrapped in a database transaction, preventing orphaned S3 assets on partial failures.