# Public Website UI Audit — 2026-08-27
## Scope and method
Read-only review of the visitor-facing surface linked from `https://zapazime.bg/`. No booking, payment, registration, login, or contact form was submitted. The browser session was signed in, so account controls visible in the shared header are not treated as anonymous-public functionality.
Pages checked: homepage, location discovery, hotel/rental category search, hot-deals, last-minute offers, public venue detail, gift cards, blog, about, contact, privacy policy, terms, and company registration.
## Executive result
The marketing shell and several informational pages load, but the public conversion path is not launch-ready: a homepage-linked venue detail fails with an HTTP error, as do Gift Cards and Blog. Visitors can discover offers but cannot reliably open a featured listing to evaluate or book it.
## Verified route status
| Surface | Status | Notes |
| --- | --- | --- |
| Homepage `/` | Loads | Discovery/menu content has data and language-quality issues below. |
| Locations `/locations` | Loads | Category discovery renders. |
| Hotel/rental filter | Loads, no results | `/locations?type=rentals&category=hotel` showed no venue links; confirm whether this reflects intended inventory. |
| Hot deals | Loads | Offer cards render, including a linkable featured venue. |
| Last-minute offers | Loads | Offer cards render. |
| Venue `/venue/1` | **Fails** | Browser received an HTTP response failure. This was a homepage/offer-linked public listing. |
| Gift cards `/gift-cards` | **Fails** | Browser received an HTTP response failure. |
| Blog `/blog` | **Fails** | Browser received an HTTP response failure. |
| About `/about` | Loads | Bulgarian content and section hierarchy render. |
| Contact `/contact` | Loads | Contact form and FAQ/contact information render; submission intentionally not tested. |
| Privacy policy | Loads | `/legal/privacy-policy`. |
| Terms | Loads | `/legal/terms-and-conditions`. |
| Company registration | Loads | Form renders; submission intentionally not tested. |
## Priority findings
### P0 — Repair public conversion-route failures
1. **Public venue detail fails:** `https://zapazime.bg/venue/1` returns an HTTP response failure. It is linked from the homepage/offer flow and prevents guests from seeing listing detail or starting a booking.
2. **Gift cards fail:** `https://zapazime.bg/gift-cards` returns an HTTP response failure.
3. **Blog fails:** `https://zapazime.bg/blog` returns an HTTP response failure.
Treat the three routes as release blockers. Add feature tests that issue anonymous GET requests and assert a successful response with the intended view; log and fix the underlying exceptions before changing UI markup.
### P1 — Public discovery and content integrity
4. **Likely incorrect inventory/category metadata:** the public menu showed many categories with `0`, including Hotels, while homepage and deal cards presented venues. The hotel/rental filtered catalogue contained no venue links. Verify the aggregate/count query, category mapping, publication status, and filter taxonomy.
5. **Destination cards show zero objects and suspiciously uniform ratings:** the homepage showed destinations with `0` objects while displaying a repeated `4.8` rating. Do not render fabricated/default ratings; hide an unavailable metric and correct the destination aggregation.
6. **Incomplete location labels:** several homepage destination/listing labels appeared to have missing place/name values (for example, a city prefixed by an empty name). Enforce required public display fields and introduce a robust fallback.
### P2 — Trust, localization, and navigation quality
7. **Mixed Bulgarian and English UI:** examples observed include `All locations` and `Terms & Conditions` inside otherwise Bulgarian navigation. Audit translation keys and hard-coded strings for every supported locale.
8. **Contact-email mismatch:** the visible label is `office@zapazime.bg` but its mail link targets `info@zapazime.bg`. Decide the canonical public support address and make label and target match.
9. **Placeholder navigation remains public:** the `Правни` parent navigation entry, App Store, and Google Play links resolve to `#`. Hide them until configured or route them to valid destinations; do not leave dead CTAs in production.
10. **Copy quality:** category label `Събитиенни пространства` appears misspelled. Run a Bulgarian-language content pass across headers, menus, and empty states.
## Missing visitor-facing capabilities for a hotel booking platform
The current public site presents broad marketplace categories, but the verified public flow does not yet demonstrate a complete hotel guest journey. Before positioning it as hotel-ready, ensure the following are available and tested:
- A working property-detail page with room/unit types, gallery, amenities, address/map, house rules, check-in/out times, cancellation and payment terms, availability, and reviews only where real.
- A date-and-guest search that returns hotel inventory, explains no-availability states, and preserves search context into the property page.
- A transparent booking flow: selected room/rate, taxes/fees, policies, guest details, secure payment initiation, confirmation, and a recoverable cancellation/modify path.
- Correct public inventory counts and no fabricated ratings, availability, prices, or destination statistics.
- Friendly production error pages with request correlation, not framework diagnostics. This aligns with the P0 production error-exposure issue found during the company-admin review.
## Recommended fix order
1. Restore the three failing public routes and add anonymous route/view tests.
2. Fix venue-detail-to-booking flow and test the complete happy path in a safe staging environment.
3. Correct inventory counts, hotel filtering, destination metrics, and display-field validation.
4. Remove placeholder CTAs and resolve email/localization/copy defects.
5. Run responsive and accessibility QA plus an actual booking/payment test with a non-chargeable sandbox method.
## Retest checklist
- Anonymous requests to each homepage-linked route return a successful response.
- Every featured and deal-card venue opens a detail page; no public card reaches a server error.
- Hotel search with dates and guests returns consistent results/counts.
- Gift cards and Blog either work end-to-end or are removed from public navigation.
- All Bulgarian labels, legal links, app-store links, email links, and empty states are production-ready.