Freelance · Castro Solutions · full-stack y SEO
Cattleya Tattoo: web del estudio (Salamanca)
Web en producción para un estudio de tatuajes en Salamanca: una landing en Next.js 16, rápida y bilingüe, pensada para SEO local y reservas estructuradas, con coste de infraestructura cero.
Cattleya Tattoo es un estudio de tatuaje y piercing en el centro de Salamanca. El encargo era concreto: posicionar para «tatuajes Salamanca», sustituir la gestión de citas por DMs de Instagram por un alta estructurada y, más adelante, cobrar señal por el diseño, todo con un único desarrollador y presupuesto casi nulo.
Lo que está en producción hoy es una landing bilingüe y rápida con los cimientos de SEO y rendimiento bien hechos, con margen para crecer hacia páginas de artistas, portfolio y formulario de reserva según lo necesite el estudio.
El encargo #s1
Un estudio pequeño que gestiona sus reservas por DMs de Instagram pierde solicitudes, no presupuesta de forma consistente y es invisible en la búsqueda local. El objetivo era resolver las tres cosas sin añadir coste mensual: el único gasto recurrente es el dominio.
- SEO local: ser el primer resultado para «tatuajes Salamanca» y búsquedas afines.
- Alta estructurada: sustituir los DMs libres por un flujo guiado de «cuéntanos tu idea en 3 pasos» que hoy desemboca en WhatsApp y mañana en un formulario real.
- Margen para crecer: un roadmap por fases hacia páginas de artistas, portfolio, formulario de reserva, auth + admin y señales con Stripe, sin reescrituras.
Stack y decisiones #s2
Next.js 16 App Router en Vercel, con una postura agresivamente server-first: los datos y el render ocurren en el servidor, y "use client" se reserva para las pocas interacciones que de verdad lo necesitan. La landing sirve casi nada de JavaScript interactivo, que es la razón principal de que se sienta instantánea.
TypeScript con tipado explícito en los límites con significado de dominio, Tailwind 4 para los estilos, pnpm, y Prettier + ESLint enganchados a los git hooks para que el repo se mantenga consistente.
SEO local desde la primera línea #s3
El SEO no se añadió al final: dio forma a la primera página. Todo lo que un buscador y una preview social necesitan se genera en el servidor y se valida en producción.
- Metadata API:
metadataBase, plantilla detitle+ default, OpenGraph, Twittersummary_large_image, directivas robots y un canonical alternate. - Datos estructurados: JSON-LD
TattooParlor(nombre, dirección, geo, teléfono,sameAs, empleada) másFAQPagepara la sección de preguntas. - Superficie de crawl:
sitemap.tsyrobots.tssirviendo/sitemap.xmly/robots.txt, con la propiedad de dominio verificada en Google Search Console. - OG image dinámica renderizada en tiempo de petición con
next/ogImageResponse(1200×630), sin asset estático que mantener sincronizado.
Rendimiento #s4
Como la landing se renderiza en el servidor y sirve casi nada de JS de cliente, los números salen limpios en producción sin afinado especial.
| Métrica | Resultado |
|---|---|
| LCP | ≈90 ms |
| CLS | 0,00 |
| INP | ≈0 ms (sin JS interactivo) |
| Lighthouse (A11y / Best Practices / SEO / Perf) | 100 / 100 / 100 / 100 |