FEATURE
Kennel Owners (KOs) can add an About Us section to their RunLoyal microsite — including their business description, team photo, years in operation, and services offered. This content is entered once in the KO portal settings and automatically displayed on the public-facing microsite.
PROBLEM BEING SOLVED
Kennel owner microsites currently show only booking widgets and service listings. Pet owners have no way to learn who they're trusting with their pets. An About section builds trust and increases booking conversion.
WHO USES IT
| User | Role | When |
|---|---|---|
| Kennel Owner (KO) | Content author | Portal Settings → Microsite → About tab — one-time setup, editable anytime |
| Pet Owner (visitor) | Reader | Visits microsite before booking — reads About section to decide if they trust the kennel |
DATA FIELDS
| Field | Type | Required | Max |
|---|---|---|---|
| Business tagline | text | No | 100 chars |
| About description | textarea | Yes | 500 chars |
| Years in operation | number | No | – |
| Team photo URL | image upload | No | 5MB |
| Services list | tag array | No | 10 tags |
Feature definition agreed. KO fills About form in portal → data saved to DB → microsite reads and renders it.
ENTRY POINTS
- Portal:
Settings → Microsite → [NEW: About tab] - Microsite:
/[slug]— About section renders below hero if data exists
EXIT POINTS
- KO saves form → stays on About tab, shows success toast
- Pet Owner reads About → scrolls to booking widget (no exit needed)
DEPENDENCIES
| Name | Type | R/W | Risk |
|---|---|---|---|
kennel_settings table | DB table | RW | MED — shared by all portal settings |
MicrositeSettingsModule | Angular module | Modified | MED — existing tab group |
MicrositePageComponent | Angular component | Modified | LOW — add new section |
KennelSettingsController | NestJS controller | Modified | LOW — new endpoints only |
| S3 / file upload service | Service | R | LOW — already used for logos |
SHARED COMPONENTS AT RISK
MicrositeSettingsModule— adding a new tab; must not break existing tabs (Hours, Services, Gallery)kennel_settingstable — adding columns; migration must be additive-only with defaults
DATABASE — MEDIUM
- Add 5 nullable columns to
kennel_settings:about_tagline,about_description,about_years,about_photo_url,about_services(JSON array) - Migration is additive-only — all columns nullable with NULL defaults. Zero risk of data loss.
- No new tables needed. No foreign keys added.
- No indexing required — about data always fetched with the full kennel_settings row.
BACKEND — LOW
- 2 new endpoints:
GET /api/kennel-settings/about,PATCH /api/kennel-settings/about - Existing
GET /api/microsite/:slugextended to includeaboutSectionin response (additive) - No existing endpoint signatures change
- File upload reuses existing S3 service — no new infra
FRONTEND — LOW
- Portal: New
AboutSectionComponentinMicrositeSettingsModule— new tab only, existing tabs untouched - Microsite: New
AboutDisplayComponentinMicrositePageComponent— conditionally rendered, no existing layout changes
PERFORMANCE — LOW
- Microsite API already fetches full kennel_settings row — about fields add ~200 bytes, negligible
- Team photo loaded lazily (below the fold) — no LCP impact
- Services tags are a JSON array — no additional query needed
API ENDPOINTS
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /api/kennel-settings/about | KO JWT | Returns current about data for logged-in KO |
| PATCH | /api/kennel-settings/about | KO JWT | Updates about fields (partial update) |
| POST | /api/kennel-settings/about/photo | KO JWT | Upload team photo → returns CDN URL |
PATCH REQUEST BODY
MICROSITE API EXTENSION
Existing GET /api/microsite/:slug response gains a new optional field:
| ID | Scenario | Steps | Expected | Priority |
|---|---|---|---|---|
| TC-01 | KO saves About form | Login → Settings → Microsite → About → fill fields → Save | Toast "saved!", data persists on reload | HIGH |
| TC-02 | Microsite shows About | KO saves data → visit /[slug] → scroll to About | About section visible with correct data | HIGH |
| TC-03 | No data = section hidden | New KO (no About data) → visit microsite | About section not in DOM | HIGH |
| TC-04 | Description required | Leave description empty → click Save | Validation error shown, no API call | MED |
| TC-05 | Existing tabs still work | Navigate to Hours, Services, Gallery tabs | All tabs render without error | HIGH (regression) |
| TC-06 | Unauthenticated PATCH | Call PATCH /api/kennel-settings/about without token | 401 Unauthorized | HIGH |
Release v2.14.0 — KO About Section
What's New: Kennel owners can now add an About section to their microsite directly from portal settings. Fill in your story once — pet owners see it every time they visit your page.
WHO THIS AFFECTS
All Kennel Owners with an active microsite. No action required — section is hidden until you add content.
CHANGES
- ✅ New "About" tab in Portal → Settings → Microsite
- ✅ Fields: tagline, description, years in operation, team photo, services
- ✅ About section displays on microsite when description is filled in
- ✅ Microsite stays unchanged for KOs who don't fill in the About section
CUSTOMER ANNOUNCEMENT (Intercom AI version)
You can now add an About section to your microsite. Share your background, years of experience, and what makes your kennel special. Go to Settings → Microsite → About to set it up.