diff --git a/src/components/AccommodationPage.astro b/src/components/AccommodationPage.astro
index e415f01..00c612f 100644
--- a/src/components/AccommodationPage.astro
+++ b/src/components/AccommodationPage.astro
@@ -1,4 +1,5 @@
---
+import { hotels } from '../data/hotels'
import { accommodationTexts } from '../i18n/accommodation'
import { menuTexts } from '../i18n/menu'
import StatusIcon from './icons/StatusIcon.astro'
@@ -108,29 +109,62 @@ const areaDesc = (slug: AreaSlug) => t[`accommodation.areas.${slug}.desc` as key
-
-
-
-
-
-
-
{t['accommodation.hotels.subtitle']}
-
- {t['accommodation.hotels.disclaimer']}
-
-
+
+
{t['accommodation.hotels.subtitle']}
+
{t['accommodation.hotels.disclaimer']}
+
+
diff --git a/src/data/hotels.ts b/src/data/hotels.ts
new file mode 100644
index 0000000..097f7d6
--- /dev/null
+++ b/src/data/hotels.ts
@@ -0,0 +1,23 @@
+import type { IHotel } from '../types/hotels'
+
+/** Recommended hotels with PyConES promo codes. */
+export const hotels: IHotel[] = [
+ {
+ name: 'Travelodge Barcelona Poblenou',
+ bookingUrl: 'https://www.travelodge.es/hoteles-barcelona/poblenou',
+ promoCode: 'PYCONES2026BCN',
+ mapsUrl: 'https://maps.app.goo.gl/xAmHRV413JHyWHUx8',
+ },
+ {
+ name: 'Hotel Jazz',
+ bookingUrl:
+ 'https://reservations.hoteljazz.com/hotel/nn_jazz?adultos=1&fini=06-11-2026&noches=2&origin=grponline&epc=U1RNVEhKQkdSUDFCQioqLFBZVEhPTgo=',
+ mapsUrl: 'https://maps.app.goo.gl/ZULETA9Zp2sZW1NL9',
+ },
+ {
+ name: 'EasyHotel Barcelona Fira',
+ bookingUrl: 'https://www.easyhotel.com/es/hotels/spain/barcelona/barcelona-fira',
+ promoCode: 'PYTHON',
+ mapsUrl: 'https://maps.app.goo.gl/9MErH52umw4XHjFq6',
+ },
+]
diff --git a/src/i18n/accommodation/ca.ts b/src/i18n/accommodation/ca.ts
index ef0ec68..0545507 100644
--- a/src/i18n/accommodation/ca.ts
+++ b/src/i18n/accommodation/ca.ts
@@ -5,7 +5,11 @@ export const ca = {
'accommodation.hotels.title': 'Hotels Recomanats',
'accommodation.hotels.subtitle': 'Convenis i opcions properes',
'accommodation.hotels.disclaimer':
- 'Estem treballant per tancar convenis exclusius amb descomptes per als assistents. Torna aviat per veure els codis promocionals!',
+ 'Fes servir el codi promocional en reservar per aplicar el descompte de PyConES.',
+ 'accommodation.hotels.promoCode': 'Codi promocional',
+ 'accommodation.hotels.useDirectLink': "Fes servir l'enllaç de reserva per aplicar el descompte.",
+ 'accommodation.hotels.book': 'Reservar hotel',
+ 'accommodation.hotels.maps': 'Veure a Google Maps',
'accommodation.areas.title': 'Millors Zones',
'accommodation.areas.transportIntro.p1':
'Si has de tornar a casa en tren, les millors opcions són Sants, Eixample Esquerra o Les Corts (per anar a Sants Estació).',
diff --git a/src/i18n/accommodation/en.ts b/src/i18n/accommodation/en.ts
index f3bdea3..1b4c45f 100644
--- a/src/i18n/accommodation/en.ts
+++ b/src/i18n/accommodation/en.ts
@@ -4,8 +4,11 @@ export const en = {
'accommodation.hero.subtitle': 'Recommendations for your stay in Barcelona',
'accommodation.hotels.title': 'Recommended Hotels',
'accommodation.hotels.subtitle': 'Agreements and nearby options',
- 'accommodation.hotels.disclaimer':
- 'We are working on exclusive discounts for attendees. Check back soon for promo codes!',
+ 'accommodation.hotels.disclaimer': 'Use the promo code when booking to apply the PyConES discount.',
+ 'accommodation.hotels.promoCode': 'Promo code',
+ 'accommodation.hotels.useDirectLink': 'Use the booking link to apply the discount.',
+ 'accommodation.hotels.book': 'Book hotel',
+ 'accommodation.hotels.maps': 'View on Google Maps',
'accommodation.areas.title': 'Best Areas',
'accommodation.areas.transportIntro.p1':
'If you are heading home by train, the best options are Sants, Eixample Esquerra, or Les Corts (for reaching Sants Estació).',
diff --git a/src/i18n/accommodation/es.ts b/src/i18n/accommodation/es.ts
index 18418e4..1decd96 100644
--- a/src/i18n/accommodation/es.ts
+++ b/src/i18n/accommodation/es.ts
@@ -5,7 +5,11 @@ export const es = {
'accommodation.hotels.title': 'Hoteles Recomendados',
'accommodation.hotels.subtitle': 'Convenios y opciones cercanas',
'accommodation.hotels.disclaimer':
- 'Estamos trabajando para cerrar convenios exclusivos con descuentos para los asistentes. ¡Vuelve pronto para ver los códigos promocionales!',
+ 'Usa el código promocional al reservar para aplicar el descuento de PyConES.',
+ 'accommodation.hotels.promoCode': 'Código promocional',
+ 'accommodation.hotels.useDirectLink': 'Usa el enlace de reserva para aplicar el descuento.',
+ 'accommodation.hotels.book': 'Reservar hotel',
+ 'accommodation.hotels.maps': 'Ver en Google Maps',
'accommodation.areas.title': 'Mejores Zonas',
'accommodation.areas.transportIntro.p1':
'Si tienes que volver a casa en tren, las mejores opciones son Sants, Eixample Esquerra o Les Corts (para ir a Sants Estació).',
diff --git a/src/types/hotels.ts b/src/types/hotels.ts
new file mode 100644
index 0000000..fe8769a
--- /dev/null
+++ b/src/types/hotels.ts
@@ -0,0 +1,7 @@
+export interface IHotel {
+ name: string
+ bookingUrl: string
+ /** Omit when discount is applied via the booking URL only. */
+ promoCode?: string
+ mapsUrl: string
+}