Divers in the Red Sea and Gulf waters relied on fragmented information sources - word-of-mouth for site discovery, paper logbooks for dive records, separate weather apps for conditions, and no standardised way to review or find dive centers.
There was no centralized dive site database with safety information - coast guard contacts, SOS numbers, entry/exit points. Generic weather apps didn't report marine-specific conditions like swell height, water temperature, or underwater visibility.
The entire diving experience - from planning to logging to sharing - was scattered across disconnected tools that weren't built for divers and didn't work in Arabic.
Manual record-keeping. No digital telemetry. No way to track gear, gas mixes, or dive progression over time.
Generic weather apps don't report marine conditions - swell, water temp, visibility, current strength. Divers need ocean data, not city forecasts.
Scattered social media groups and word-of-mouth. No standardised database of dive sites with safety information and verified reviews.
Existing dive tools were English-only. The Gulf diving community - UAE, Saudi Arabia - needed full RTL bilingual support from day one.
BlueKingdom replaces the fragmented ecosystem with a single bilingual platform - site discovery with live weather, digital dive logging with full telemetry, gear tracking, dive center directories with verified reviews, and shareable diver profiles - all backed by a comprehensive API serving both web and mobile apps.
This was a second-generation rebuild - a complete re-architecture from the ground up. The frontend and backend are fully decoupled: a Next.js 15 application consuming a Laravel API, enabling independent deployment and future mobile app support. Built by a 4-person team over 10 months.
A bilingual (EN/AR) Next.js 15 application where divers discover sites, view live weather, log dives, plan trips, review dive centers, and share profiles. Full RTL support with SSR for SEO.
A comprehensive Laravel 8 API powering web and mobile apps. Handles authentication, dive data, weather aggregation, CMS, notifications, and file management with OAuth2 token auth.
A server-rendered admin panel with 143 Blade templates for managing dive sites, articles, user approvals, dive center directories, notifications, and app-wide settings.
Queue-based workers for image processing (crop, WebP, blur), bilingual PDF generation, email delivery, push notifications, and scheduled weather data refresh.
Mapbox GL-powered maps displaying dive sites, coast guard stations, and dive centers with custom markers, geolocation-aware distance calculations, zone-based filtering, and 8+ filterable search dimensions with range sliders.
Two professional weather APIs stitched together - MeteoMatics for atmospheric data, StormGlass for marine conditions. Per-site dashboards showing temperature, wind, waves, swell, UV, tides, and moonrise/moonset.
Each dive log captures depth, duration, visibility, water temp, current, air tank composition (O₂/N₂/He), start/end pressure, entry method, gear, accessories, camera equipment, animals observed, buddy info, and GPS - with unique QR codes per dive.
Every piece of content exists in parallel English and Arabic. The entire frontend switches layout direction (LTR ↔ RTL), fonts, and text flow. PDFs generated in both languages. Not a translation layer - a dual-content system in every table.
Three entity types displayed simultaneously - dive sites, coast guard stations, dive centers - with custom markers, zone filtering, and distance calculations from the user's geolocation.
7,500+ images processed through a queue-based pipeline: multi-size cropping (4+ sizes per image), WebP conversion, and blur generation for progressive loading. All feeding into bilingual PDF generation.
Four authentication methods - email, Google, Apple, Facebook - plus Instagram OAuth for social features. Laravel Passport for stateless API access, session auth for admin CMS. RBAC with 4 user roles.
English: Dive site detail with weather
Arabic: RTL bilingual support Every feature touches multiple complexity layers - bilingual content, marine data aggregation, geospatial mapping, and rich media processing. The unit system alone is configurable across 10 measurement types (metric/imperial).
Bilingual content with full RTL - Every content field stored in both languages. Frontend switches layout direction, fonts (Montserrat/Manrope for EN, Cairo for AR), and text flow. Parallel PDF generation per language.
Real-time marine data aggregation - Two professional APIs (MeteoMatics + StormGlass) stitched into unified per-site weather dashboards. Temperature, wind, waves, swell, UV, tides, sunrise/sunset, moonrise/moonset - refreshed on schedule.
Comprehensive dive telemetry - A single dive log captures 15+ parameters including gas mixtures (O₂/N₂/He), pressure readings, gear inventories, and marine life observations. Each log generates a unique QR code.
Image processing at scale - 7,500+ images through an async pipeline: multi-size cropping, WebP conversion, and blur generation. All bilingual - feeding into both English and Arabic PDF generation.
Discover sites, check live conditions, log dives with full telemetry, track gear, plan trips, and share achievements - with a personal dive score and public profile.
List businesses in the verified directory, receive and respond to reviews, appear on interactive maps with distance calculations from nearby divers.
Curate dive sites via the admin CMS, publish bilingual articles, moderate reviews, manage user approvals, and configure app-wide settings across 143 admin templates.
Manage access controls with full RBAC, monitor audit logs, enforce password policies with expiry and failed login tracking - enterprise-grade security posture.
BlueKingdom v2 was a second-generation rebuild - a complete re-architecture of an earlier platform. Built by a 4-person team with a disciplined development cadence: rapid build phase, stabilisation, and ongoing maintenance.
The project demonstrates strong stewardship signals: comprehensive deployment documentation (574 lines), user data deletion plans with rollback procedures (625 lines), a security upgrade roadmap, and a 1,195-line UI modernisation plan.
Security posture is proactive - CVE patches applied promptly, UFW + fail2ban configured, XSS sanitisation middleware deployed. Technical debt is acknowledged and documented - Laravel upgrade plans and UI revamp plans both authored and marked "Ready for Implementation."
Ground-up architecture. Next.js 15, Laravel 8, MySQL 8.0. Decoupled frontend/backend with OAuth2 API. 88% of commits landed in this phase.
Bug fixes, performance optimisation, and feature polish. Weather integration, image pipeline scaling, and bilingual PDF generation refined.
Comprehensive deployment documentation, security hardening, and upgrade roadmaps authored. Technical debt formally catalogued.
Ongoing development with "Liquid Glass" UI modernisation plan. CVE patches, dependency updates, and continued feature delivery.
We build platforms that unify fragmented industries. The work shown here is what full-stack domain engineering looks like.
Divers in the Red Sea and Gulf waters relied on fragmented information sources - word-of-mouth for site discovery, paper logbooks for dive records, separate weather apps for conditions, and no standardised way to review or find dive centers.
There was no centralized dive site database with safety information - coast guard contacts, SOS numbers, entry/exit points. Generic weather apps didn't report marine-specific conditions like swell height, water temperature, or underwater visibility.
The entire diving experience - from planning to logging to sharing - was scattered across disconnected tools that weren't built for divers and didn't work in Arabic.
Manual record-keeping. No digital telemetry. No way to track gear, gas mixes, or dive progression over time.
Generic weather apps don't report marine conditions - swell, water temp, visibility, current strength. Divers need ocean data, not city forecasts.
Scattered social media groups and word-of-mouth. No standardised database of dive sites with safety information and verified reviews.
Existing dive tools were English-only. The Gulf diving community - UAE, Saudi Arabia - needed full RTL bilingual support from day one.
BlueKingdom replaces the fragmented ecosystem with a single bilingual platform - site discovery with live weather, digital dive logging with full telemetry, gear tracking, dive center directories with verified reviews, and shareable diver profiles - all backed by a comprehensive API serving both web and mobile apps.
This was a second-generation rebuild - a complete re-architecture from the ground up. The frontend and backend are fully decoupled: a Next.js 15 application consuming a Laravel API, enabling independent deployment and future mobile app support. Built by a 4-person team over 10 months.
A bilingual (EN/AR) Next.js 15 application where divers discover sites, view live weather, log dives, plan trips, review dive centers, and share profiles. Full RTL support with SSR for SEO.
A comprehensive Laravel 8 API powering web and mobile apps. Handles authentication, dive data, weather aggregation, CMS, notifications, and file management with OAuth2 token auth.
A server-rendered admin panel with 143 Blade templates for managing dive sites, articles, user approvals, dive center directories, notifications, and app-wide settings.
Queue-based workers for image processing (crop, WebP, blur), bilingual PDF generation, email delivery, push notifications, and scheduled weather data refresh.
Mapbox GL-powered maps displaying dive sites, coast guard stations, and dive centers with custom markers, geolocation-aware distance calculations, zone-based filtering, and 8+ filterable search dimensions with range sliders.
Two professional weather APIs stitched together - MeteoMatics for atmospheric data, StormGlass for marine conditions. Per-site dashboards showing temperature, wind, waves, swell, UV, tides, and moonrise/moonset.
Each dive log captures depth, duration, visibility, water temp, current, air tank composition (O₂/N₂/He), start/end pressure, entry method, gear, accessories, camera equipment, animals observed, buddy info, and GPS - with unique QR codes per dive.
Every piece of content exists in parallel English and Arabic. The entire frontend switches layout direction (LTR ↔ RTL), fonts, and text flow. PDFs generated in both languages. Not a translation layer - a dual-content system in every table.
Three entity types displayed simultaneously - dive sites, coast guard stations, dive centers - with custom markers, zone filtering, and distance calculations from the user's geolocation.
7,500+ images processed through a queue-based pipeline: multi-size cropping (4+ sizes per image), WebP conversion, and blur generation for progressive loading. All feeding into bilingual PDF generation.
Four authentication methods - email, Google, Apple, Facebook - plus Instagram OAuth for social features. Laravel Passport for stateless API access, session auth for admin CMS. RBAC with 4 user roles.
English: Dive site detail with weather
Arabic: RTL bilingual support Every feature touches multiple complexity layers - bilingual content, marine data aggregation, geospatial mapping, and rich media processing. The unit system alone is configurable across 10 measurement types (metric/imperial).
Bilingual content with full RTL - Every content field stored in both languages. Frontend switches layout direction, fonts (Montserrat/Manrope for EN, Cairo for AR), and text flow. Parallel PDF generation per language.
Real-time marine data aggregation - Two professional APIs (MeteoMatics + StormGlass) stitched into unified per-site weather dashboards. Temperature, wind, waves, swell, UV, tides, sunrise/sunset, moonrise/moonset - refreshed on schedule.
Comprehensive dive telemetry - A single dive log captures 15+ parameters including gas mixtures (O₂/N₂/He), pressure readings, gear inventories, and marine life observations. Each log generates a unique QR code.
Image processing at scale - 7,500+ images through an async pipeline: multi-size cropping, WebP conversion, and blur generation. All bilingual - feeding into both English and Arabic PDF generation.
Discover sites, check live conditions, log dives with full telemetry, track gear, plan trips, and share achievements - with a personal dive score and public profile.
List businesses in the verified directory, receive and respond to reviews, appear on interactive maps with distance calculations from nearby divers.
Curate dive sites via the admin CMS, publish bilingual articles, moderate reviews, manage user approvals, and configure app-wide settings across 143 admin templates.
Manage access controls with full RBAC, monitor audit logs, enforce password policies with expiry and failed login tracking - enterprise-grade security posture.
BlueKingdom v2 was a second-generation rebuild - a complete re-architecture of an earlier platform. Built by a 4-person team with a disciplined development cadence: rapid build phase, stabilisation, and ongoing maintenance.
The project demonstrates strong stewardship signals: comprehensive deployment documentation (574 lines), user data deletion plans with rollback procedures (625 lines), a security upgrade roadmap, and a 1,195-line UI modernisation plan.
Security posture is proactive - CVE patches applied promptly, UFW + fail2ban configured, XSS sanitisation middleware deployed. Technical debt is acknowledged and documented - Laravel upgrade plans and UI revamp plans both authored and marked "Ready for Implementation."
Ground-up architecture. Next.js 15, Laravel 8, MySQL 8.0. Decoupled frontend/backend with OAuth2 API. 88% of commits landed in this phase.
Bug fixes, performance optimisation, and feature polish. Weather integration, image pipeline scaling, and bilingual PDF generation refined.
Comprehensive deployment documentation, security hardening, and upgrade roadmaps authored. Technical debt formally catalogued.
Ongoing development with "Liquid Glass" UI modernisation plan. CVE patches, dependency updates, and continued feature delivery.
We build platforms that unify fragmented industries. The work shown here is what full-stack domain engineering looks like.