Estepona Golf: web trilingüe del campo con una calculadora de hándicap real
Web nueva para un campo de 18 hoyos de la Costa del Sol, construida desde cero en español, inglés y francés, con backend propio en Supabase, un gestor de noticias que maneja el club y una calculadora de hándicap de campo WHS con datos oficiales de la federación.

- 536/536
- claves de traducción presentes en cada uno de los tres idiomas
- 251 KB
- peso de la imagen principal, antes 1,3 MB
- 3
- idiomas con URL, slugs, hreflang y sitemap propios
- 18
- hoyos descritos por el club, en una tarjeta con 4 tees
- 0
- errores de TypeScript tras dos rondas de auditoría adversarial
- ~10 USD
- coste mensual del backend propio del club en Supabase
El problema
Estepona Golf vende green fees, eventos y restaurante a jugadores que llegan de España, Reino Unido y Francia. Su web anterior estaba en Azure Static Web Apps, sin gestor de contenidos para las noticias, sin captación de leads y sin URL propias por idioma, así que buscadores y asistentes de IA veían un solo sitio donde hacían falta tres. El campo en sí, los 18 hoyos, las tarifas por temporada y las valoraciones oficiales de slope, vivían en PDF y en tarjetas impresas que nadie podía consultar antes de viajar.
Qué construimos
Polargate construyó una web trilingüe nueva desde cero sobre su stack canónico: Vite, React, TypeScript y Tailwind con shadcn/ui en el front, un proyecto propio de Supabase (Postgres, Auth, Storage y RLS) como backend y Vercel con despliegue desde GitHub al hacer merge. Cada idioma tiene sus rutas y slugs, hreflang, canonical, og:locale y sitemap. El club recibió un panel de administración con roles y gestor de noticias, formularios de captación, una tarjeta interactiva de 18 hoyos con cuatro tees y una calculadora de hándicap de campo WHS con datos oficiales de la RFEG.
El resultado
El proyecto se entrega con 536 de 536 claves de traducción en cada uno de los tres idiomas, la imagen principal reducida de 1,3 MB a 251 KB y cero errores de TypeScript tras dos rondas de auditoría adversarial en las que se revisaron 63 hallazgos y se corrigieron los 7 confirmados. El backend es del club y cuesta unos 10 dólares al mes en Supabase. La web funciona en Vercel mientras se prepara el cambio de dominio, así que Polargate todavía no publica cifras de tráfico ni de reservas.
Stack
- Vite
- React
- TypeScript
- Tailwind CSS
- shadcn/ui
- Supabase
- PostgreSQL
- Vercel
- GitHub
- Google Maps
Un campo que se vende en tres idiomas
Estepona Golf es un campo de 18 hoyos en la Costa del Sol, con casa club, restaurante, tienda y negocio de eventos. Sus jugadores llegan de España, Reino Unido y Francia, y deciden antes de viajar. La web anterior estaba en Azure Static Web Apps, sin gestor de contenidos para las noticias y sin captación de leads.
Lo que encontramos
- Sin URL propias por idioma: buscadores y asistentes veían un solo sitio donde hacían falta tres.
- Contenido que el club no controlaba: campo, hoyos, tarifas y carta vivían en PDF y en papel.
- Imágenes pesadas: solo la principal ocupaba 1,3 MB antes de cargar nada más.
- Tarjeta y valoraciones oficiales de slope solo en papel, así que un jugador no podía calcular su hándicap de campo antes de reservar.
Lo que construimos
Una web nueva desde cero en español, inglés y francés: inicio, el campo, hoyo a hoyo, tarifas con selector de temporada, casa club, tienda, restaurante con una carta de 130 platos, eventos, noticias, contacto y páginas legales. Stack: Vite, React y TypeScript, Tailwind con shadcn/ui, un proyecto propio de Supabase (Postgres, Auth, Storage y RLS) como backend y Vercel con despliegue desde GitHub al hacer merge.
Tres piezas pesaron más que el resto:
- Rutas y slugs localizados por idioma (el-campo, the-course, le-parcours) con hreflang y x-default, canonical y og:locale por idioma, y JSON-LD con el horario y el teléfono reales del club.
- Una calculadora de hándicap de campo WHS con los datos oficiales de slope y valoración de la RFEG para los tees valorados, redondeo WHS, coma decimal, hándicaps positivos, estados de error y resultados anunciados con aria-live.
- Un panel de administración con Supabase Auth, roles de administrador y editor y gestor de noticias, para que el club publique sin nosotros.
Cómo funciona ahora
Las traducciones están completas, 536 de 536 claves en cada idioma, así que ninguna página cae al español a media lectura. La imagen principal pesa 251 KB en lugar de 1,3 MB. Antes de integrar el último lote de material del cliente pasamos dos rondas de auditoría adversarial: 37 hallazgos y después 26, de los que 7 resistieron el contraste y se corrigieron, con cero errores de TypeScript y build de producción en verde.
El backend es el proyecto de Supabase del propio club en eu-west-1, por unos 10 dólares al mes, con noticias, leads y roles protegidos por RLS: el público solo lee noticias publicadas, el equipo escribe, y los formularios de contacto y eventos aceptan inserciones anónimas que solo los administradores leen. La web está construida y funcionando en Vercel mientras se prepara el cambio de dominio, y antes hicimos la radiografía de la zona DNS para que el corte no toque el correo del club. Cuando esté publicada, Polargate la mantiene con una cuota mensual de Care.
Preguntas sobre este proyecto
¿Cuánto se tarda en construir una web trilingüe como esta?
¿Se puede hacer esto con nuestro motor de reservas actual?
¿Quién actualiza las noticias y el contenido después de publicar?
¿La versión en francés es una web real o una traducción automática?
¿Cuánto cuesta mantener en marcha una web así una vez publicada?
Arranca el motor
Cuéntanos qué estás construyendo en unas pocas preguntas cortas. Un ingeniero senior responde por escrito en 48 horas laborables con una primera lectura de alcance, plazos y precio.