Laravel/Botble CMS Final Optimization (No ai answers)

Job ID: 39869859

Budget: $250 – $750 USD

Description
We are looking for an experienced Laravel developer with solid Botble CMS experience to finalize a real estate platform that is about 90 percent complete.
Hosting, payments, and all core functionality are already live.
The remaining work focuses on UI polish, SEO implementation, structured data, and a few functional improvements.

This is not a project from scratch — it’s a precision finish.
We’ve already received AI-generated proposals, so please apply only if you can show real Laravel work or a GitHub link with hands-on code examples.

Already working
Listings (buy and rent)
Agency and private accounts
Payments (Stripe and D-Local)
Email verification flow
EN/ES multi-language
VPS hosting live
CSRF protection implemented
Cloudflare SSL A+

Remaining tasks

1. Admin panel final polish

H1 titles must match the public site, balanced on desktop and mobile

One unified button style: primary for action, secondary for neutral

Consistent alignment, spacing, and language (English or Spanish only)

Replace grey placeholders with clean default avatars

Tables styled with borders, alternating rows, and readable spacing

Publish Listing page needs clear title and consistent layout

2. Performance optimization (mobile Lighthouse 95 plus target)

Convert main images to AVIF or WebP, preload, and set fetchpriority

Lazy-load all non-hero images

Defer all scripts, no blocking scripts in head

Fix 500 error on missing PNG asset

Add caching headers for assets
Expected: LCP under 2.5 seconds, TBT under 150 milliseconds, CLS under 0.1

3. Per-country currency logic

Country selection required before search

Auto-lock currency per country and always display ISO code, no US dollar symbol

Backend filters must check price amount, price currency, and country

Currency auto-switches if country changes

JSON-LD and UI must use the same currency

Test with Mexico, Colombia, Argentina, Chile, and Peru

4. Agency registration form

Phone field with automatic flag and dial code using intl-tel-input

Clean layout with clear sections: Basic info, Agency info, Social links, Services, Description

Google Places Autocomplete for address, restricted by country

Flow: agencies go through packages, payment, then publish; private sellers publish directly

Email verification required before listings go live

Consistent CasaLatam24 color palette (blue and orange)

Modern responsive layout matching Zillow style

5. Dynamic hreflang implementation for 48 countries

Auto-generate reciprocal hreflang tags for all country versions

x-default points to the Spanish homepage

Implement server-side via Blade helper or middleware, no manual tags

Output identical hreflang data in XML sitemaps

6. Sitemap cleanup

Stable filenames such as properties-mx-es.xml, no dated versions

Shard only if more than 50,000 URLs or 50 MB

Remove non-LATAM markets, keep 48 countries only

Canonicals must exactly match the URLs in the sitemap

Consistent trailing slash policy

sitemap.xml lists only final sitemaps, no outdated versions

Ensure hreflang consistency between ES and EN pairs

7. JSON-LD structured data

Add JSON-LD on every property detail page

Use RealEstateListing with nested Offer objects

Sale uses Sell, Rent uses RentAction, Both include two offers

Inject server-side, not client-side

Must match visible price, currency, and canonical URL

Validate in Google Rich Results and Schema Markup Validator

8. Analytics, payments, and final QA

Verify Google Analytics and Google Search Console

Double-check Stripe and D-Local transactions on staging

Final UI QA:

Featured and heart icons same as Zillow (orange fill, blue outline)

No broken images or untranslated labels

Deliverables

Push full code to GitHub, including frontend, backend, and migrations

Implement and verify all fixes on staging VPS (already set up)

Provide a clear README with stack, environment, deployment, and maintenance steps

Screening question (do not skip)
In Laravel, what is your preferred method to enforce a rule like only verified users can publish listings?
Please explain briefly, whether by policy, middleware, or model hook, and include a short code example or GitHub link showing real Laravel work.
Generic or AI-written answers will be ignored.
Related categories: MySQL Laravel