Revision 6
Language Switcher Removed (Site Reverts to English-Only)
Removed the GTranslate floating language switcher and its supporting scripts. The widget had been added in an earlier round but was never part of the agreed scope — client clarified it was added unintentionally and asked for it to come off. The site is now English-only end-to-end. No more bottom-left flag widget; no more GTranslate script loads; no googtrans cookie writes. Pricing, layout and form behaviour are unchanged.
| Change |
What Client Said |
What Was Done |
| GTranslate language switcher removed |
Client clarified the multi-language widget was added unintentionally in a prior round and is not part of the agreed scope — please remove it. |
Stripped the <div class="footer-translate"><div class="gtranslate_wrapper"></div></div> block and both GTranslate <script> tags (settings + cdn.gtranslate.net/widgets/latest/float.js) from _footer.html and from every deployed page: Home, About, Services, Mattress, Sofa, Carpet, Curtain, Chair, Baby Equipment, FAQ, Contact. Verified live with Playwright on 5 sample pages: .gt_float_switcher, .gtranslate_wrapper and any GTranslate <script> all return zero matches. The unused .footer-translate CSS rule was left in place as inert dead-CSS — harmless and preserved for clean diffs. |
Revision 5
FAQ Disclaimer Reorder, Mobile Header Tagline & Pre-Launch UI Polish
Pre-launch polish round. Reordered the stain-removal disclaimer on the two FAQ safety questions so it sits at the bottom of each answer instead of the top — visitors now read the answer first and the disclaimer afterwards. Re-introduced the brand tagline on mobile (it had been hidden in R3) by stacking it onto two lines next to the logo so it no longer overlaps the hamburger. Ran a strict 33-run Playwright audit across mobile, tablet and desktop on every customer-facing page; fixed the 3 real issues it surfaced (mobile process-table edge overflow, undersized promo-bar close button, tight home CTA buttons) and re-verified each fix on the live site.
| Change |
What Client Said |
What Was Done |
| Disclaimer reorder |
Client noted the stain-removal disclaimer should sit at the bottom of the FAQ answer rather than the top — the question should be answered first, then the disclaimer follows. |
Moved the italic Disclaimer: paragraph from above to below the answer in both safety FAQs — “What if I am not satisfied with the cleaning?” and “Is there a warranty on your cleaning services?” Swapped the original margin-bottom:12px on the disclaimer for margin-top:12px to preserve the visual gap between the answer and the disclaimer. Wording is unchanged. |
| Change |
What Client Said |
What Was Done |
| Mobile header tagline restored |
Client asked to bring back the “Reviving Comfort. Restoring Clean.” tagline on mobile, with “Restoring Clean.” broken onto a second line next to the logo. |
Split the tagline into two <span class="tagline-line"> children. On desktop they render inline as a single line; at max-width: 768px the parent becomes display: flex; flex-direction: column with font-size: 0.7rem and line-height: 1.15, so “Reviving Comfort.” sits on line 1 and “Restoring Clean.” on line 2 right beside the logo. No hamburger overlap. |
| Promo-bar close button tap target |
Pre-launch UX audit — the “Enjoy 1-for-1 Cleaning” promo bar close button measured 21×20px on mobile, below the WCAG-recommended 32×32px minimum. |
Bumped .promo-bar-close to min-width: 32px; min-height: 32px with display: inline-flex centring and padding: 4px 10px. Visual style unchanged; the button is now comfortably tappable on phone. |
| Process-table mobile overflow |
Pre-launch UX audit — the Steam vs Deep Cleaning process tables on the Mattress, Sofa and Carpet pages extended ~6px past the right edge on a 390px viewport. |
At max-width: 768px the wrapper is now overflow-x: auto with momentum scroll; the table has min-width: 100%; first-column cells lost their white-space: nowrap and gained min-width: 80px; cell padding tightened to 8/10px and font to 0.8125rem. Tables fit cleanly on every phone width tested. |
| CTA buttons properly spaced |
Pre-launch UX audit — on the Home “Ready to Revive Your Home?” section, the Get a Quote and Book Appointment buttons sat with only 5px between them on tablet and desktop. |
Wrapped the two buttons in a new .cta-buttons-row flex container: gap: 16px, centred, wrap-friendly on desktop; flex-direction: column with gap: 12px and max-width: 280px per button on mobile so they stack and breathe properly. |
| Check |
Method |
Result |
| Cross-viewport visual audit |
Headless Chromium (Playwright) sweep at mobile 390×844, tablet 768×1024 and desktop 1440×900 across all 11 customer-facing pages — 33 fullPage screenshots, with scroll-triggered fade-ins fired before capture so no section was caught mid-animation. |
0 critical issues, 0 real high-severity issues post-fix. All flagged element overflows on tablet/mobile traced back to the closed mobile-nav drawer (intentionally off-screen, hidden by overflow-x: hidden on body) — not visible to users. |
| Form lead capture wiring (R4 carry-over) |
Inspected each of the 7 submission forms on live: hidden _to=hello@ultrarevivesg.com field present, onsubmit="return nexusSubmit(...)" handler attached, Reputifly Lead Capture script loaded. |
All 7 forms wired and confirmed posting urlencoded payloads to the Reputifly Lead Capture endpoint — submissions reach hello@ultrarevivesg.com. |
| Header tagline mobile rendering |
Live DOM probe on mobile viewport: confirmed the new two-span structure renders, display: flex; flex-direction: column applies, neither line wraps awkwardly, no overlap with hamburger button. |
Tagline visible on two compact lines next to the 58px logo. Hamburger has full breathing room on the right. |
Revision 4
Form Lead Capture Integration — All 7 Submission Forms Wired to Business Email
Created a Reputifly Lead Capture client account for hello@ultrarevivesg.com and wired every public submission form on the website to that endpoint. The Send Us an Enquiry form on the Contact page and all six service-page Submit Booking Request forms now POST to the Reputifly Lead Capture API with _to = hello@ultrarevivesg.com. Submissions are emailed directly to the business inbox, the form resets on success, and visitors see a clear thank-you confirmation. No more leads lost to dead action="#" handlers.
| Change |
What Client Said |
What Was Done |
| Reputifly client account |
Client requested every submission form route leads straight to her business inbox at hello@ultrarevivesg.com. No Reputifly Lead Capture account existed for this email yet, so one had to be provisioned first. |
Created a new Reputifly client agent for hello@ultrarevivesg.com via the /createClientAgent endpoint. Login credentials handed back to the client so she can sign in to her own Lead Capture dashboard and review every incoming lead. |
| Contact page enquiry form |
Client wanted the Send Us an Enquiry form on the contact page to deliver each submission as an email to the business inbox. |
Wired the form on Contact to POST to the Reputifly Lead Capture API with a hidden _to field set to hello@ultrarevivesg.com. All six visitor-facing fields (full name, email, phone, service interested in, preferred date, message) are forwarded as part of the lead. |
| Service booking forms (6 pages) |
Same email routing requested for every Submit Booking Request form across the six service pages, so booking enquiries are not lost. |
Wired the booking forms on Mattress Cleaning, Sofa Cleaning, Carpet Cleaning, Curtain Cleaning, Chair Cleaning and Baby Equipment Cleaning to the same lead-capture endpoint with _to = hello@ultrarevivesg.com. Every booking submission now lands in the business inbox alongside the contact-form leads. |
| Item |
Context |
Implementation |
| Submission encoding |
The Reputifly Lead Capture endpoint expects application/x-www-form-urlencoded. Sending multipart/form-data would silently fall back to a default recipient and break routing. |
Form handler builds a URLSearchParams body (not FormData) before fetch(). _to is set explicitly first, then every other form field is appended. |
| Visitor feedback |
Forms previously posted to action="#" with no client-side feedback — visitors had no indication their message went anywhere. |
On a successful submit the form resets and shows a “Thanks! Your message has been sent.” alert. On failure the visitor sees an explicit error alert instead of a silent no-op. |
| Customisable hooks |
Default alert() dialogs are functional but visually plain. |
The handler exposes optional window.nexusOnSuccess and window.nexusOnError hooks so a future revision can swap the default browser alert for a styled toast or modal without rewiring any form. |
Revision 3
Pricing, Baby Equipment Rename, Tables, Disclaimers & Branded Social Icons
Implemented client revision PDF dated 27 April 2026 in full. Fixed mobile header overlap between tagline and hamburger. Added Minimum Order S$100 notice on every price list (home modal + 6 service pages). Centred all table cells site-wide and bumped price-list font sizes for legibility. Added Baby Cot and Twin Baby Stroller rows; renamed the “Baby Stroller & Car Seat Cleaning” service to “Baby Equipment Cleaning” in nav, footer, hero, headings and titles. Updated FAQ — replaced cleaning-session duration answer and added a stain-removal disclaimer to satisfaction and warranty questions. Recoloured social icons (Facebook blue, Instagram gradient, TikTok black, RedNote red) on the contact page and every page footer. Removed any “plant-based” or “fragrance-free” claims from About, Home, Services, FAQ and Baby pages.
| Change |
What Client Said |
What Was Done |
| Mobile header overlap |
“Mobile phone view, can fix the circle part so the ‘clean’ word does not overlap with the lines?” |
Hid the “Reviving Comfort. Restoring Clean.” tagline at max-width: 768px. Logo + hamburger now have full breathing room with zero overlap on mobile. Tagline still renders on desktop / tablet. |
| Centre-align all tables |
“Center align all the texts in all the tables in the website.” |
Added a global override forcing text-align: center on every cell in .process-table, .pricing-comparison-table, .price-table and .table — including first-column cells which previously left-aligned. |
| Branded social icons |
“Put the social media icons in their original colors… instead of black and white at the contact page and footer.” |
Replaced the muted white-on-dark social row with brand colours: Facebook #1877F2, Instagram orange→magenta gradient, TikTok pure black, RedNote #FE2C55 with a bold “红” mark. Applied identically on every page footer and on the Contact page social block. |
| Baby service rename |
“Change ‘Baby Stroller & Car Seat Cleaning’ to ‘Baby Equipment Cleaning’ at the service page.” |
Renamed in: services dropdown menu, footer Quick-Links column, services page card title, hero H1, page title, packages H2, prices H3, booking H2 and the home services-grid card. URL slug retained (/baby-stroller-car-seat-cleaning/) for SEO continuity. |
| Remove cleaning-product claims |
“Help to remove any wordings of ‘plant based, fragrance free’ in the website if you found any.” |
Audited every page; removed “plant-based” from the About cards, “fragrance-free” from FAQ, services and home bullets, and “zero synthetic fragrances” from the Baby page intro. Replacement copy stresses “professional-grade, non-toxic, dermatologically tested” instead. |
| Change |
What Client Said |
What Was Done |
| Minimum Order pill |
“Add ‘Minimum Order S$100’ at the price list at home page and at the price list at each service page.” |
Added a clearly-labelled amber pill above every price table: home modal, mattress, sofa, carpet, curtain, chair, baby. Mobile-responsive and visually distinct from product rows. |
| Bigger, centred price text |
“Center align the texts in all the price list. Increase all the price list font size, now it looks a bit too small.” |
Bumped .price-table body to 1.0625rem with 14px 16px padding; bumped .pricing-comparison-table to 1.0625rem with 16px 18px padding. Centred every cell. Mobile keeps a slightly tighter 0.9375rem for fit. |
| Baby price list expansion |
“Add 2 new items (baby cot and twin baby stroller) in full price list at home page and price list at baby equipment service page.” |
Added Baby Cot (S$59 / S$79) and Twin Baby Stroller (S$79 / S$109) to the Baby Equipment table on home modal AND on the dedicated baby equipment service page. Existing Baby Car Seat and Baby Stroller rows preserved with the “Most Popular” badge intact. |
| Change |
What Client Said |
What Was Done |
| Replace “How long does a cleaning session take?” |
Client supplied new wording covering steam (~30 min), deep cleaning (~45 min for mattress / sofa / carpet), curtain (5–10 min/piece) and 3–4 hour drying time. |
Old answer overwritten in full with the client’s exact text. No formatting changes — lives inside the existing .faq-answer-inner > p. |
| Stain-removal disclaimer — satisfaction Q |
“What if I am not satisfied with the cleaning?” — add disclaimer above existing answer. |
Prepended an italic “Disclaimer: While we strive to achieve the best possible results, complete removal of all stains cannot be guaranteed…” paragraph above the existing answer. Bold “Disclaimer:” label, italic body, separated from the answer with a 12px margin. |
| Stain-removal disclaimer — warranty Q |
“Is there a warranty on your cleaning services?” — same disclaimer as above. |
Prepended the same italic disclaimer paragraph above the warranty answer for consistency. |
Revision 2
Content Depth, Social Icons, Price Modal & Footer Refresh
Addressed client feedback on service-page content depth for SEO and conversion. Added a full price-list modal to the home page, social media icons across the footer of every page and in the Contact Information section, content-depth expansion on all six service pages (three new SEO-focused subsections per page), updated contact details globally, and cleaned up the FAQ accordion. Header tagline enlarged and now visible on mobile.
| Change |
What Client Said |
What Was Done |
| Header tagline |
Client asked why the "Reviving Comfort. Restoring Clean." tagline was small and not showing on mobile. |
Increased tagline font size to 0.9375rem with font-weight: 600. Mobile breakpoint changed from display: none to display: block; font-size: 0.75rem so it now renders on mobile alongside the logo. |
| Footer email |
Provided new email domain for the business. |
Updated from hello@ultrarevive.sg to hello@ultrarevivesg.com across every page. Cloudflare auto-encodes the displayed address for spam protection (normal and expected). |
| Footer address |
Requested removal of the unit number from the displayed address. |
Stripped #12-172 from every footer. Now reads: 75B Circuit Road, Macpherson Blossom, Singapore 372075. |
| Footer social icons |
Asked for Facebook, Instagram, TikTok and RedNote icons/buttons in the footer. |
Added a 4-icon row inside the "Contact Us" footer column on every page, linking to placeholder # URLs. Pending Client to supply actual social handles so links can be wired in. |
| Change | What Client Said | What Was Done |
| Price List Modal |
Asked whether the "View Prices" button on the home hero could pop out a full price list styled like the rest of the site, or whether the price list should be uploaded elsewhere. |
Built an in-page modal triggered by the View Prices button. The modal presents the full 6-category price list (Mattress, Sofa, Carpet, Curtain, Chair, Baby Equipment) plus Add-Ons, each with steam and deep cleaning tiers. Modal is keyboard-accessible (ESC to close), overlay-click to dismiss, and scrollable on mobile. Includes a WhatsApp booking CTA at the bottom of the modal. |
| Change | What Client Said | What Was Done |
| Our Story copy |
Supplied a new 4-paragraph version of the "Our Story" section. |
Replaced the existing Our Story copy with the new 4 paragraphs (founding observation, growth journey, present-day standing, brand promise). Section structure preserved. |
| Change | What Client Said | What Was Done |
| Hero button spacing |
Asked for spacing between the hero "Book Now" and "View Pricing" buttons to match the home page. |
Increased desktop button gap from 16px to 24px. On mobile, gap set to 16px with 8px top margin so stacked buttons don't touch. Applied to Mattress, Sofa, Carpet, Curtain, Chair, Baby Stroller & Car Seat. |
| Content depth (SEO + conversion) |
Feedback noted that service page content felt short and repetitive and asked whether this supports SEO and conversion goals. |
Within the existing Service Information section on each of the six service pages, added a new expanded content block with 3 SEO-focused subsections (per page) — e.g. why Singapore homes need professional attention, fabric/material-specific care, recommended cleaning frequency. Intro paragraphs were also rewritten with richer, more localised copy. Section count unchanged — depth added inside the existing section per the client constraint. |
| Change | What Client Said | What Was Done |
| Remove Packages FAQ |
Asked to remove the "Do you offer packages or bundles?" FAQ from the Pricing & Payment category. |
Removed that FAQ item entirely. FAQ count went from 12 to 11. Remaining items in Pricing & Payment: cost question and payment methods. |
| Cleaning session timing |
Client flagged they wanted to supply updated timing data for the "How long does a cleaning session take?" answer. |
Existing answer retained as placeholder. Pending Waiting on client to send the final timing figures so the answer can be refreshed. |
| Change | What Client Said | What Was Done |
| Social icons above Contact Information |
Asked for social icon buttons (Facebook, Instagram, TikTok, RedNote) in the empty space above the Contact Information heading. |
Added a "Follow Us on Social Media" block with 4 circular icon buttons above the Contact Information section. Styled as flat monochrome buttons on light surface with teal hover — consistent with the site's aesthetic. Client's two style references (dark rounded vs flat mono) were resolved toward the flat style for brand consistency. Mobile icons auto-shrink to 42px. |
| Contact cards — email & address |
Same global update applied to the on-page contact cards. |
Email card updated to hello@ultrarevivesg.com (both display and mailto:). Address card updated to remove #12-172. Map address label also cleaned for consistency. |
| Item | What Client Said | What Was Done |
| Chair footer alignment |
Client noticed the footer on the chair page looked inconsistent with the others. |
Footer social icons on Chair Cleaning were mistakenly placed inside the brand column instead of the Contact Us column. Repositioned to match all other pages. |
| ASCII encoding pass |
Not requested — technical hygiene. |
Replaced all raw UTF-8 characters (em dashes, copyright, multiplication) with HTML entities (—, ©, ×) across all 11 pages to prevent WordPress encoding corruption on deploy. |
| Mobile layout hardening |
Not requested — technical hygiene. |
Audited all 11 pages for inline layout styles that override mobile media queries. Zero offending inline styles found — all grid/padding/flex properties live in CSS classes with proper 768px breakpoints. |
- Social media URLs for Facebook, Instagram, TikTok, and RedNote. Icons are live but currently point to placeholder
# links.
- Updated timing figures for the FAQ answer on "How long does a cleaning session take?" — client will send when ready.
- Home and About hero motion/video assets — carried over from Revision 1, still waiting.
Revision 1
Initial Full-Site Revision Round
Launched: 12 April 2026
Site: reputifly17.sg-host.com (pre-cloud-migration)
Pages touched: 11
First full revision pass covering global announcement bar, sticky header + tagline, footer overhaul, "Why Choose Us" rewording across all service pages, WhatsApp integration, pricing updates from the client Excel, and FAQ category tabs.
| Change |
Client Request |
What Was Done |
| Promo Announcement Bar |
"Add a promotional announcement bar above the sticky header" |
Added dismissible promo bar inside header: "Enjoy 1-for-1 Cleaning — Book Now, Limited Time Only" on all 11 pages. Text is editable in HTML. Removable via X button. |
| Header Logo + Tagline |
"Make logo bigger, add tagline" |
Logo enlarged to 58px. Tagline "Reviving Comfort. Restoring Clean." added in brand teal. Hidden on mobile for space. |
| GTranslate Languages |
"Only show 4 languages" |
Restricted to English, Chinese Simplified, Malay, Tamil. |
| Floating WhatsApp Button |
"Add WhatsApp / Book Now button across all pages" |
Floating WhatsApp button (bottom-right, green, pulse animation) on all pages linking to wa.me/6596236261. |
| "Why Choose Us" Update |
"Remove Same-Day Service, replace with Affordable Cleaning Prices" |
Replaced on 8 pages (Home, About, all 6 service pages). New: "Affordable Cleaning Prices — Enjoy top-quality cleaning services at competitive prices, tailored to fit your needs and budget." |
| Footer Contact Info |
Client provided new phone and address |
Phone: +65 9623 6261. Address: 75B Circuit Road, Macpherson Blossom #12-172, Singapore 372075. |
| Service Hero "Book Now" |
"Book Now should link to WhatsApp" |
All 6 service page hero "Book Now" buttons now link to wa.me/6596236261. |
| Change |
Client Request |
What Was Done |
| Hero Subtext |
Provided new NEA-licensed copy |
Updated to mention NEA-licensed status and full service list. |
| Hero "Book a Cleaning" |
"Link to WhatsApp Business 96236261" |
Button now links to wa.me/6596236261. |
| Hero "View Prices" Button |
"Add View Prices button" |
Added third CTA button linking to /services/. |
| Trusted Clients Section |
"We don't have commercial clients yet" |
Replaced fake company names with 4 trust badges: NEA Licensed, 5-Star Google Reviews, Eco-Friendly Products, 100+ Happy Customers. Section renamed "Trusted & Certified". Comment: Client can update when commercial clients are secured. |
| CTA Buttons |
"Change to Get a Quote, add Book Appointment" |
"Get a Free Quote" changed to "Get a Quote". Added "Book Appointment" button linking to WhatsApp. |
| Hero Image |
"Replace with motion image" |
Pending Client to provide video/image asset. Currently using stock photo. |
| Change |
Client Request |
What Was Done |
| Hero Subtext |
Provided updated copy |
Updated to mention "home and office" cleaning services. |
| Hero Image |
"Replace with motion image and more localized image" |
Pending Client to provide video/image asset. Currently using stock photo. |
| Change |
Client Request |
What Was Done |
| Cleaning Process |
Provided new 5-step comparison table (Steam vs Deep) |
Replaced numbered steps with styled comparison table: Inspection, Debris Removal, Treatment, Cleaning Method, Finishing — for both Steam Cleaning and Deep Cleaning tiers. |
| Pricing |
Provided actual pricing data |
Updated: Single/Super Single $79/$99, Queen $99/$119, King $109/$129. Add-Ons: Head Board $39/$59, Bed Frame $59/$79. |
| Change |
Client Request |
What Was Done |
| Text Fix |
"Change 'sees daily use' to 'is used daily'" |
Updated sentence in Service Information section. |
| Cleaning Process |
Provided comparison table |
Replaced with same format as mattress (Steam vs Deep). |
| Pricing |
Provided actual pricing data |
Updated: Ottoman $19/$39, 1-Seater $39/$59, 2-Seater $79/$119, 3-Seater $119/$179, 4-Seater/L-Shape $159/$239, Full Set $199/$279. |
| Change |
Client Request |
What Was Done |
| Cleaning Process |
Provided comparison table |
Replaced with same format (Steam vs Deep). |
| Pricing |
Provided actual pricing data |
Updated: Small $59/$79, Medium $79/$99, Large $99/$129, Extra Large $129/$159. |
| Change |
Client Request |
What Was Done |
| Pricing |
"Curtain cleaning per piece is $29" |
Updated pricing to show $29 per piece clearly. |
| Change |
Client Request |
What Was Done |
| Pricing |
Provided actual pricing (corrected via Excel) |
Updated from corrected price list: Dining $19/$29, Office $49/$69, Arm Chair $59/$79, Gaming Chair $79/$99. Note: Original revision had incorrect prices — corrected per client's updated Excel price list. |
| Change |
Client Request |
What Was Done |
| Pricing |
Provided actual pricing data |
Updated: Baby Car Seat $49/$69, Baby Stroller $59/$89. |
| Change |
Client Request |
What Was Done |
| Payment Methods |
"Remove credit or debit cards" |
Removed from payment FAQ answer. Now shows cash, PayNow, bank transfer only. |
| Category Tabs |
Provided 5 categories (General, Booking, Pricing, Services, Safety) |
Added clickable category filter tabs. Each FAQ tagged to a category. |
| Change |
Client Request |
What Was Done |
| Phone |
"+65 9623 6261" |
Updated in contact cards and tel: link. |
| Address |
"75B Circuit Road Macpherson Blossom #12-172 Singapore 372075" |
Updated in contact card. |
| Operating Hours |
"Monday - Sunday 9am - 8pm" |
Added as 4th contact info card with clock icon. |
| WhatsApp Button |
"Add WhatsApp / Book Now button" |
Added "Book via WhatsApp" button linking to wa.me/6596236261. |
- Home hero: Motion/video image (client to provide)
- About hero: Localized Singapore image (client to provide)
- All page heroes: Client expressed desire to replace with own photos (future)