<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Luna Studio Kits</title>
    <description>The latest articles on DEV Community by Luna Studio Kits (@lunastudiokits).</description>
    <link>https://dev.to/lunastudiokits</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4057756%2Fed1e595f-9656-416e-b51a-f881285db115.png</url>
      <title>DEV Community: Luna Studio Kits</title>
      <link>https://dev.to/lunastudiokits</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lunastudiokits"/>
    <language>en</language>
    <item>
      <title>Auditar un CTA de WhatsApp sin romper la landing: checklist práctico</title>
      <dc:creator>Luna Studio Kits</dc:creator>
      <pubDate>Sat, 01 Aug 2026 13:06:08 +0000</pubDate>
      <link>https://dev.to/lunastudiokits/auditar-un-cta-de-whatsapp-sin-romper-la-landing-checklist-practico-3722</link>
      <guid>https://dev.to/lunastudiokits/auditar-un-cta-de-whatsapp-sin-romper-la-landing-checklist-practico-3722</guid>
      <description>&lt;p&gt;Una landing puede verse impecable y aun así perder conversaciones por un CTA de WhatsApp confuso, frágil o imposible de editar. Este checklist sirve para revisar una página antes de publicarla, sin herramientas de tracking ni promesas de conversión.&lt;/p&gt;

&lt;p&gt;Puedes probar también el &lt;a href="https://codepen.io/lunastudiokits26/pen/gbgZMNX" rel="noopener noreferrer"&gt;checklist interactivo gratuito&lt;/a&gt; antes de hacer cambios.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Define una sola acción principal
&lt;/h2&gt;

&lt;p&gt;En el primer pantallazo debe quedar claro qué ocurrirá al hacer clic. “Habla con nosotros por WhatsApp” es más accionable que “Enviar” si el objetivo real es iniciar una conversación.&lt;/p&gt;

&lt;p&gt;Comprueba:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;El botón usa un verbo concreto.&lt;/li&gt;
&lt;li&gt;El texto explica qué recibirá la persona.&lt;/li&gt;
&lt;li&gt;No compite con tres botones de igual peso.&lt;/li&gt;
&lt;li&gt;El CTA se entiende sin leer toda la página.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Construye el enlace de forma segura
&lt;/h2&gt;

&lt;p&gt;Un enlace básico puede verse así:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt;
  &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://wa.me/56900000000?text=Hola%20quiero%20saber%20m%C3%A1s"&lt;/span&gt;
  &lt;span class="na"&gt;target=&lt;/span&gt;&lt;span class="s"&gt;"_blank"&lt;/span&gt;
  &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"noopener"&lt;/span&gt;
  &lt;span class="na"&gt;aria-label=&lt;/span&gt;&lt;span class="s"&gt;"Abrir WhatsApp para consultar"&lt;/span&gt;
&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  Consultar por WhatsApp
&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Usa el número internacional sin signos, espacios ni paréntesis. El número del ejemplo es un placeholder: reemplázalo por el número oficial del negocio y prueba el enlace en un teléfono real.&lt;/p&gt;

&lt;p&gt;El mensaje precargado debe ser corto y editable. Evita incluir datos sensibles, descuentos inventados o una urgencia que el negocio no pueda cumplir.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Revisa el recorrido móvil
&lt;/h2&gt;

&lt;p&gt;La mayoría de los errores aparecen en pantallas pequeñas:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;El botón debe tener suficiente área táctil.&lt;/li&gt;
&lt;li&gt;El texto no debe desbordar al aumentar el tamaño de fuente.&lt;/li&gt;
&lt;li&gt;El CTA fijo no debe tapar campos, precios ni avisos legales.&lt;/li&gt;
&lt;li&gt;El enlace debe abrir WhatsApp sin pasos inesperados.&lt;/li&gt;
&lt;li&gt;La página debe seguir siendo útil si WhatsApp no está instalado.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Una comprobación simple es navegar con teclado, usar zoom del 200% y probar una pantalla estrecha. No hace falta fingir una métrica: basta registrar los fallos observables.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Separa contenido y código
&lt;/h2&gt;

&lt;p&gt;Para que otra persona pueda editar la landing sin romperla, deja el número y los mensajes en un único bloque claramente marcado:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;WHATSAPP_NUMBER&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;56900000000&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// reemplazar antes de publicar&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;DEFAULT_MESSAGE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hola, quiero consultar por sus servicios.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Después genera el enlace desde esas variables. Documenta dónde cambiar el texto, el número, los colores y las imágenes. Si el cliente necesita una API oficial, eso debe ser un proyecto distinto: un enlace &lt;code&gt;wa.me&lt;/code&gt; no es una integración con la API de WhatsApp Business.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Haz una revisión honesta
&lt;/h2&gt;

&lt;p&gt;Antes de entregar, escribe tres hallazgos concretos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Bloqueo:&lt;/strong&gt; qué impide avanzar.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Impacto:&lt;/strong&gt; qué parte del recorrido afecta.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Siguiente cambio:&lt;/strong&gt; qué modificarías primero.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No prometas más leads, ventas o velocidad si no tienes datos comparables. Una auditoría útil describe el estado actual y prioriza acciones verificables.&lt;/p&gt;

&lt;p&gt;Si necesitas una base editable, puedes ver el &lt;a href="https://lunastudio380.gumroad.com/l/whatsapp-booking-campaign-bundle" rel="noopener noreferrer"&gt;bundle de landing y CTA de WhatsApp de Luna Studio Kits&lt;/a&gt;. También dejé una &lt;a href="https://lunastudio380.gumroad.com/l/auditoria-landing-whatsapp" rel="noopener noreferrer"&gt;auditoría escrita de una página y su CTA&lt;/a&gt; como servicio de alcance fijo.&lt;/p&gt;

&lt;p&gt;¿Tienes otro criterio para revisar un CTA? Compártelo en los comentarios; mantengamos los ejemplos libres de datos personales y números reales.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>javascript</category>
      <category>ux</category>
    </item>
    <item>
      <title>Cómo preparar una landing de WhatsApp que un cliente pueda editar sin romperla</title>
      <dc:creator>Luna Studio Kits</dc:creator>
      <pubDate>Sat, 01 Aug 2026 11:55:21 +0000</pubDate>
      <link>https://dev.to/lunastudiokits/como-preparar-una-landing-de-whatsapp-que-un-cliente-pueda-editar-sin-romperla-2159</link>
      <guid>https://dev.to/lunastudiokits/como-preparar-una-landing-de-whatsapp-que-un-cliente-pueda-editar-sin-romperla-2159</guid>
      <description>&lt;p&gt;¿Quieres una segunda opinión antes de comprar una implementación? &lt;a href="https://lunastudio380.gumroad.com/l/auditoria-landing-whatsapp" rel="noopener noreferrer"&gt;Auditoría de landing y CTA de WhatsApp - USD 49&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Si prefieres delegar la implementación
&lt;/h2&gt;

&lt;p&gt;Si quieres una landing lista para una campaña concreta, Luna Studio Kits ofrece un piloto cerrado para una empresa y una campaña, con hasta 6 bloques, una ronda de ajustes y archivos HTML/CSS/JavaScript. &lt;a href="https://lunastudio380.gumroad.com/l/whatsapp-landing-personalizada" rel="noopener noreferrer"&gt;Ver alcance y precio de la landing personalizada&lt;/a&gt;.Una plantilla reutilizable no tiene que ser complicada para ser útil. Si un estudio o freelancer entrega una landing de WhatsApp, la diferencia suele estar en el contenido, los límites de la plantilla y una entrega fácil de mantener.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Define el contrato de contenido antes del HTML
&lt;/h2&gt;

&lt;p&gt;Antes de escribir código, anota qué debe responder la página:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;¿Qué servicio ofrece el negocio?&lt;/li&gt;
&lt;li&gt;¿Para quién es?&lt;/li&gt;
&lt;li&gt;¿Qué acción quieres que haga la persona: consultar, reservar o pedir un presupuesto?&lt;/li&gt;
&lt;li&gt;¿Qué datos son obligatorios: horario, zona, precio orientativo o tiempo de respuesta?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Este pequeño contrato evita que la página termine con texto genérico. También permite separar lo que es editable (titular, servicios, colores y número de WhatsApp) de lo que es estructura (espaciado, tarjetas y estados del botón).&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Haz que el CTA escriba el primer mensaje
&lt;/h2&gt;

&lt;p&gt;Un botón de WhatsApp debe abrir una conversación con un texto útil. El número de ejemplo debe quedar visible como placeholder hasta que el cliente lo cambie:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const phone = "56900000000"; // Reemplazar por el número real.
const message = "Hola, quiero consultar disponibilidad para [servicio].";
const url = "https://wa.me/" + phone + "?text=" + encodeURIComponent(message);

window.open(url, "_blank", "noopener");
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;No conviene esconder este dato en varios archivos. Una única constante, con un comentario claro, reduce errores durante la entrega.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Mantén los placeholders a la vista
&lt;/h2&gt;

&lt;p&gt;Usa textos como [Nombre del negocio], [Zona de atención] o [Horario] mientras la página siga siendo una demo. No inventes testimonios, métricas, precios ni resultados para hacer que una plantilla parezca un caso real. La transparencia hace que el siguiente paso —personalizarla— sea más sencillo.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Entrega una checklist corta
&lt;/h2&gt;

&lt;p&gt;Antes de pasar el proyecto, revisa:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;El número de WhatsApp es correcto y está en formato internacional.&lt;/li&gt;
&lt;li&gt;El CTA funciona en móvil y escritorio.&lt;/li&gt;
&lt;li&gt;Los enlaces tienen texto descriptivo.&lt;/li&gt;
&lt;li&gt;El contraste y el foco de teclado son visibles.&lt;/li&gt;
&lt;li&gt;Se reemplazaron todos los placeholders.&lt;/li&gt;
&lt;li&gt;El cliente sabe qué archivo editar si quiere cambiar un texto.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Una checklist breve vale más que una promesa amplia de automatización. Esta base cubre una landing estática; no incluye calendario, pagos ni integraciones con APIs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo editable
&lt;/h2&gt;

&lt;p&gt;Puedes revisar una demo pública de HTML, CSS y JavaScript aquí: &lt;a href="https://codepen.io/lunastudiokits26/pen/qERLNOG" rel="noopener noreferrer"&gt;Luna Studio Kits en CodePen&lt;/a&gt;. El número de la demo es deliberadamente un placeholder y debe reemplazarse antes de usarla con un negocio real.&lt;/p&gt;

&lt;h2&gt;
  
  
  Recursos
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://lunastudio380.gumroad.com/l/free-spanish-whatsapp-cta-starter" rel="noopener noreferrer"&gt;Starter gratuito de CTA para WhatsApp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lunastudio380.gumroad.com/l/whatsapp-booking-landing-kit" rel="noopener noreferrer"&gt;Licencia de un proyecto — USD 20&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lunastudio380.gumroad.com/l/whatsapp-booking-studio-license" rel="noopener noreferrer"&gt;Licencia de estudio para cinco proyectos — USD 129&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Son plantillas editables, no una promesa de resultados comerciales ni un sustituto de la revisión humana antes de publicar.&lt;/p&gt;

</description>
      <category>html</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>A practical content model for Spanish WhatsApp booking pages</title>
      <dc:creator>Luna Studio Kits</dc:creator>
      <pubDate>Sat, 01 Aug 2026 10:30:36 +0000</pubDate>
      <link>https://dev.to/lunastudiokits/a-practical-content-model-for-spanish-whatsapp-booking-pages-25pk</link>
      <guid>https://dev.to/lunastudiokits/a-practical-content-model-for-spanish-whatsapp-booking-pages-25pk</guid>
      <description>&lt;p&gt;A booking landing page does not need to pretend it is a full scheduling platform to be useful. For many service businesses, its job is simpler: help a visitor understand the offer, choose a next step, and open a well-structured WhatsApp conversation.&lt;/p&gt;

&lt;p&gt;That distinction matters when you build reusable templates. A salon, a therapist, and a photographer can share a technical foundation, but they should not look or read like the same business with a color swap.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start with a content contract, not the layout
&lt;/h2&gt;

&lt;p&gt;Before writing HTML, collect the information that a real visitor needs to make a request:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A concise offer and who it is for.&lt;/li&gt;
&lt;li&gt;Services, durations, and prices only when the business has approved them.&lt;/li&gt;
&lt;li&gt;Location, service area, or remote-delivery details.&lt;/li&gt;
&lt;li&gt;A clear action: ask for availability, request a quote, or start a consultation.&lt;/li&gt;
&lt;li&gt;Policies and questions that would otherwise create back-and-forth in chat.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This keeps the visual layer honest. It also means a client can replace placeholders without breaking the information architecture.&lt;/p&gt;

&lt;h2&gt;
  
  
  Make the WhatsApp action specific
&lt;/h2&gt;

&lt;p&gt;A generic “Contact us” button creates a blank chat. A good CTA gives the visitor a useful first sentence and still lets the business handle availability manually.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;phone&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;56900000000&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// Replace with the business's real number.&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hola, quiero consultar disponibilidad para [servicio].&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`https://wa.me/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;phone&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;?text=&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nf"&gt;encodeURIComponent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;_blank&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;noopener&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The number and message must be client-owned and reviewed before publishing. This is a request flow, not a promise that a slot is confirmed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reuse components, not identity
&lt;/h2&gt;

&lt;p&gt;I use the same basic modules across editable landing pages—hero, offer, service cards, FAQ, CTA, and footer—but change the hierarchy and visual system with the service type.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Business type&lt;/th&gt;
&lt;th&gt;Useful primary action&lt;/th&gt;
&lt;th&gt;Content that builds confidence&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Beauty or wellbeing&lt;/td&gt;
&lt;td&gt;Ask for availability&lt;/td&gt;
&lt;td&gt;Treatments, hours, location, preparation notes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Therapeutic consultation&lt;/td&gt;
&lt;td&gt;Request an initial consultation&lt;/td&gt;
&lt;td&gt;Approach, boundaries, format, suitable FAQ&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Photography or events&lt;/td&gt;
&lt;td&gt;Request a quote&lt;/td&gt;
&lt;td&gt;Portfolio rights, package context, event details&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The point is not to manufacture trust with made-up ratings or testimonials. It is to make genuine details easy to find and edit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use a pre-launch handoff checklist
&lt;/h2&gt;

&lt;p&gt;Before a client receives a static site, verify the mobile view, every WhatsApp link, page title, keyboard focus, color contrast, policy links, and the ownership of all imagery and claims. Replace every sample price, photo, contact detail, testimonial, and outcome statement.&lt;/p&gt;

&lt;p&gt;Static HTML/CSS/JavaScript is often a good fit when a team wants a lightweight page that can live on a normal static host. It is not a replacement for a live calendar, payment system, legal review, or WhatsApp API automation; those need separate scope and implementation.&lt;/p&gt;

&lt;h2&gt;
  
  
  A reusable starting point for studios
&lt;/h2&gt;

&lt;p&gt;For agencies and freelancers who repeatedly build this kind of page, I published a downloadable &lt;a href="https://lunastudio380.gumroad.com/l/whatsapp-booking-studio-license" rel="noopener noreferrer"&gt;Studio License for five client projects&lt;/a&gt;. It includes three distinct Spanish template directions and a handoff checklist. It is a template license, not a promise of custom development or business results.&lt;/p&gt;

&lt;p&gt;The more transparent the content contract and license are, the easier it is to turn a reusable component library into responsible client work.&lt;/p&gt;

</description>
      <category>webdev</category>
    </item>
    <item>
      <title>Build a Spanish WhatsApp booking landing page with plain HTML, CSS, and JavaScript</title>
      <dc:creator>Luna Studio Kits</dc:creator>
      <pubDate>Sat, 01 Aug 2026 09:32:37 +0000</pubDate>
      <link>https://dev.to/lunastudiokits/build-a-spanish-whatsapp-booking-landing-page-with-plain-html-css-and-javascript-2dm4</link>
      <guid>https://dev.to/lunastudiokits/build-a-spanish-whatsapp-booking-landing-page-with-plain-html-css-and-javascript-2dm4</guid>
      <description>&lt;p&gt;Many independent service businesses already use WhatsApp to confirm appointments. The missing piece is often a small, clear landing page that answers the obvious questions before the first message: what is offered, how much it costs, and what a visitor should do next.&lt;/p&gt;

&lt;p&gt;I built a dependency-free Spanish booking-page pattern around that handoff.&lt;/p&gt;

&lt;h2&gt;
  
  
  The booking flow
&lt;/h2&gt;

&lt;p&gt;A useful booking page does not need a heavy scheduling stack to start doing its job. Its core flow can be simple:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Show a small set of services with understandable prices and durations.&lt;/li&gt;
&lt;li&gt;Put a clear call to action on every relevant section.&lt;/li&gt;
&lt;li&gt;Open WhatsApp with enough context that the owner does not have to ask the same first question again.&lt;/li&gt;
&lt;li&gt;Keep the page fast and editable.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The key implementation detail is generating the WhatsApp link from a service-specific message:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;phone&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;56900000000&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;querySelectorAll&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;.whatsapp-link&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;forEach&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;link&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;link&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;dataset&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;link&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;href&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`https://wa.me/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;phone&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;?text=&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nf"&gt;encodeURIComponent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That lets a CTA such as “Reserve a hair ritual” arrive as a message like “Hola, quiero reservar el Ritual de cabello.” It is a small interaction, but it removes friction for both the customer and the business.&lt;/p&gt;

&lt;h2&gt;
  
  
  Design choices that help
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mobile-first layout:&lt;/strong&gt; appointment links are frequently opened from a phone.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Visible prices and durations:&lt;/strong&gt; clearer expectations usually mean better-quality enquiries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Short FAQs:&lt;/strong&gt; rescheduling, location, and confirmation are common blockers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Semantic HTML:&lt;/strong&gt; headings, buttons, and disclosure details work without a framework.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No fake live contact details:&lt;/strong&gt; the phone number, copy, price, and social links are clearly marked for replacement.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Live demo
&lt;/h2&gt;

&lt;p&gt;You can inspect the working beauty-studio demo here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codepen.io/editor/lunastudiokits26/pen/019fbc94-46b0-7d18-b53a-f9ed72546c6d" rel="noopener noreferrer"&gt;WhatsApp Booking Landing Kit — Interactive Demo&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Editable bundle
&lt;/h2&gt;

&lt;p&gt;I also made the complete editable source available as a paid digital kit. It now includes three standalone Spanish variants for a beauty or wellbeing studio, therapeutic consultation, and photography or events business. Each has responsive HTML, CSS, JavaScript, service-specific booking messages, a personalization checklist, a WhatsApp message library, and a deployment guide:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://lunastudio380.gumroad.com/l/whatsapp-booking-landing-kit" rel="noopener noreferrer"&gt;WhatsApp Booking Landing Kit — 3 Spanish Templates&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The demo and the kit were created with AI assistance and should be reviewed and adapted before real business details are published. I would love to know what details you consider essential in a service-business booking flow.&lt;/p&gt;

</description>
      <category>html</category>
      <category>css</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
