Public Website UI Audit — 2026-08-27

📄 General
← Back to Documentation
# 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.