feat: sitio hostingdelsur.net v2 con Astro 5, Tailwind v4, soporte light/dark, i18n es/en, Keystatic CMS, reCAPTCHA v3

- Arista Pro Alternate Regular self-hosted (font corporativa)
- Toggle theme con CSS variables y @custom-variant dark
- 6 servicios en 3 categorías (Hosting & Correo / Diseño & Contenido / Infraestructura)
- 3 planes destacados (Básico USD 59, Institucional USD 129, E-commerce USD 219)
- Datacenters en 4 países (Canadá, USA, Alemania, Uruguay) sin ciudades en el sitio
- Sede operativa en Maldonado, Uruguay
- i18n es/en con contenido duplicado en Keystatic
- Endpoint PHP para form de contacto con PHPMailer + reCAPTCHA v3 + honeypot + rate limit
- WorldMap con animación SVG de los 4 países
- 29 páginas generadas, 0 JS por default
- Sitemap auto + robots.txt
- JSON-LD Organization + ProfessionalService con areaServed
This commit is contained in:
Mauri
2026-06-08 22:32:23 -03:00
commit 393f6b0dc3
73 changed files with 15399 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
---
import BaseLayout from '@/layouts/BaseLayout.astro';
import Hero from '@/components/Hero.astro';
import StatsSection from '@/components/StatsSection.astro';
import DifferenceCards from '@/components/DifferenceCards.astro';
import ServicesSection from '@/components/ServicesSection.astro';
import ProcessSteps from '@/components/ProcessSteps.astro';
import CtaFinal from '@/components/CtaFinal.astro';
import { getLangFromUrl, useTranslations } from '@/i18n/utils';
const lang = getLangFromUrl(Astro.url);
const t = useTranslations(lang);
const whatsappUrl = 'https://wa.me/59899812487';
const description = lang === 'en'
? 'Cloud hosting, websites, e-commerce and infrastructure with real human support from Maldonado, Uruguay. Hosting del Sur — technology with a human face.'
: 'Alojamiento en la nube, sitios web, e-commerce e infraestructura con soporte humano real desde Maldonado, Uruguay. Hosting del Sur — tecnología con cara de persona.';
---
<BaseLayout
title={lang === 'en' ? 'Cloud hosting with real human support' : 'Alojamiento en la nube con soporte humano real'}
description={description}
lang={lang}
>
<Hero t={t} whatsappUrl={whatsappUrl} />
<StatsSection t={t} />
<DifferenceCards t={t} />
<ServicesSection t={t} lang={lang} />
<ProcessSteps t={t} />
<CtaFinal t={t} whatsappUrl={whatsappUrl} />
</BaseLayout>