Crear Páginas Web con Lógica de NegocioBeta

0%
Bloque Estratégico

Módulo 01

De una página web a una aplicación de negocio

1.5hNext.jsSupabaseNode.jsGitHub

Qué diferencia un sitio informativo de una aplicación con lógica de negocio, las 3 capas de toda app web, el stack del curso y el setup del proyecto ReservaYa.

Recursos descargables

Plantilla de Arquitectura de tu App de Negocio

Plantilla para convertir un negocio real en un plano de aplicación: reglas en formato si-entonces, datos a guardar, roles y checklist de setup

Markdown
En este módulo
01
¿Cuándo necesitas lógica de negocio en tu web? La diferencia entre una vitrina digital y una máquina que trabaja por ti

Julián tiene una barbería en Medellín con 4 sillas y 2 barberos. Su página web es bonita: fotos, dirección, horarios y un botón de WhatsApp. Pero cada cita se agenda por chat, uno por uno. Julián pierde 2 horas al día respondiendo "¿tienes turno mañana?", y un 20% de los clientes que reservan no llegan — sin pagar nada, no les cuesta cancelar.

Su competencia al frente tiene una web donde el cliente elige barbero, ve la disponibilidad real, paga un anticipo de $10.000 COP con Nequi y recibe recordatorio automático por WhatsApp. Cero chats. Casi cero inasistencias.

La diferencia no es el diseño. Es que la segunda web tiene lógica de negocio: reglas del negocio convertidas en software que funciona solo.

1.1. Sitio informativo vs. aplicación web

Un sitio informativo muestra contenido: quién eres, qué haces, cómo contactarte. Es una vitrina. Una aplicación web además hace cosas: registra usuarios, guarda datos, cobra dinero, envía notificaciones y toma decisiones según reglas que tú defines.

Qué es la lógica de negocio

La lógica de negocio son las reglas de tu negocio escritas en código: "una cita requiere anticipo del 20%", "no se puede reservar la misma silla dos veces a la misma hora", "si el cliente cancela con menos de 2 horas, pierde el anticipo". El software las aplica siempre, sin cansancio y sin excepciones olvidadas.

1.2. Señales de que tu negocio necesita una aplicación

Síntoma en el negocioLógica de negocio que lo resuelve
Agendas citas una por una por WhatsAppSistema de reservas con disponibilidad en tiempo real
Clientes que reservan y no lleganAnticipo obligatorio con pasarela de pagos
Tomas pedidos por teléfono y se pierdenFormulario de pedidos que guarda en base de datos
No sabes cuánto vendiste este mesRegistro automático de transacciones y reportes
Solo tú puedes atender consultas de preciosCatálogo con precios y stock actualizados
Olvidas confirmar o recordar citasNotificaciones automáticas por email y WhatsApp
Regla práctica

Si una tarea repetitiva de tu negocio sigue un patrón de "si pasa X, entonces hago Y", es candidata a convertirse en lógica de negocio. Cada regla automatizada son horas de trabajo manual que recuperas cada semana.

02
Arquitectura de una aplicación web moderna Las 3 capas que componen toda app — y qué vive en cada una

Toda aplicación web, desde un sistema de reservas hasta Rappi, se organiza en tres capas. Entenderlas te permite saber dónde va cada pieza de código que escribas en este curso.

1. Frontend
Lo que el usuario ve y toca: páginas, formularios, botones. Vive en: el navegador
2. Backend
Donde viven las reglas: valida, decide, cobra, autoriza. Vive en: el servidor
3. Base de datos
La memoria del negocio: usuarios, citas, pagos, historial. Vive en: PostgreSQL

2.1. El viaje de una reserva: de clic a confirmación

Sigamos qué pasa cuando un cliente reserva una cita en la app que vamos a construir:

  1. El navegador muestra el formulario (frontend)

    El cliente elige servicio, barbero, fecha y hora. JavaScript valida en el momento que no falte ningún campo.

  2. El servidor recibe la solicitud (backend)

    Aquí se aplican las reglas: ¿ese horario sigue libre? ¿el servicio existe? ¿el precio es el correcto? El frontend puede mentir; el backend nunca confía en él.

  3. La base de datos guarda la cita

    Se inserta el registro con estado pendiente_pago. Una restricción de la base de datos impide dos citas en la misma silla a la misma hora.

  4. La respuesta vuelve al navegador

    El cliente ve la pantalla de pago del anticipo. Todo el viaje tomó menos de un segundo.

⚙ La regla de oro de la seguridad

Todo lo que corre en el navegador (frontend) puede ser leído y modificado por el usuario. Por eso la lógica de negocio crítica siempre vive en el backend: precios, validaciones, permisos y pagos se verifican en el servidor, aunque el frontend ya los haya validado antes.

Esta regla la vas a ver aplicada en cada módulo del curso.

03
El stack del curso: Next.js, Supabase y Wompi Herramientas profesionales, con plan gratuito, usadas por empresas reales

Elegimos un stack que cumple tres condiciones: se usa en empresas reales de Latinoamérica, tiene plan gratuito suficiente para completar el curso, y una sola persona puede manejarlo de punta a punta.

Frontend + Backend
Next.js
Qué hace: Framework de React que une frontend y backend en un solo proyecto
Por qué: Server Actions y API Routes te dan backend sin montar un servidor aparte
Alternativa: Remix, SvelteKit (mismos conceptos)
Costo: Gratis (open source)
Base de datos + Auth
Supabase
Qué hace: PostgreSQL administrado + autenticación + APIs automáticas
Por qué: Resuelve base de datos y login sin escribir un backend completo
Alternativa: Firebase (NoSQL), Neon + Auth.js
Costo: Plan gratuito (2 proyectos, 500 MB)
Pagos
Wompi
Qué hace: Pasarela de pagos colombiana: tarjetas, PSE, Nequi, Bancolombia
Por qué: Métodos de pago que tus clientes latinoamericanos realmente usan
Alternativa: Mercado Pago, PayU, Stripe (módulo 4)
Costo: Sin mensualidad; comisión por transacción
¿Y si mi país no usa Wompi?

Wompi es fuerte en Colombia. En el módulo 4 comparamos las pasarelas de toda la región (Mercado Pago, PayU, Stripe) y el patrón de integración que aprenderás es el mismo para todas: checkout → webhook → estado del pago. Cambiar de pasarela es cambiar detalles, no arquitectura.

3.1. Requisitos previos

  • Antes de continuar, verifica que tienes:
  • Bases de HTML, CSS y JavaScript (variables, funciones, arrays, objetos)
  • Node.js 18 o superior instalado (node --version para verificar)
  • Visual Studio Code (o tu editor preferido)
  • Una cuenta de GitHub (gratuita) — la usaremos para Supabase y el deploy
04
El proyecto que vamos a construir: ReservaYa Setup del proyecto que crecerá contigo durante los 6 módulos

ReservaYa es un sistema de reservas y pagos para "Don Barbas", la barbería de Julián en Medellín. Es el hilo conductor del curso: cada módulo le agrega una capacidad real, y al terminar tendrás una aplicación completa funcionando en producción — que puedes adaptar a restaurantes, consultorios, canchas sintéticas o cualquier negocio que agende y cobre.

M1 · Setup
Proyecto Next.js + Supabase corriendo en tu máquina
M2 · Usuarios
Registro, login y panel de administración protegido
M3 · Datos
Servicios, barberos y citas con CRUD completo
M4 · Pagos
Anticipo de la reserva cobrado con Wompi
M5 · Avisos
Confirmación por email y recordatorio por WhatsApp
M6 · Live
Desplegado en producción con dominio propio y HTTPS

4.1. Crear el proyecto Next.js

Abre la terminal en la carpeta donde guardas tus proyectos y ejecuta:

# Crea el proyecto con TypeScript, Tailwind y App Router
npx create-next-app@latest reservaya --typescript --tailwind --app --eslint

# Entra a la carpeta y arranca el servidor de desarrollo
cd reservaya
npm run dev

Abre http://localhost:3000 en el navegador. Si ves la página de bienvenida de Next.js, tu entorno funciona.

4.2. Crear el proyecto en Supabase

  1. Crea la cuenta

    Entra a supabase.com, inicia sesión con GitHub y crea una organización gratuita.

  2. Crea el proyecto "reservaya"

    Elige la región más cercana (São Paulo para Sudamérica) y guarda la contraseña de la base de datos en un lugar seguro.

  3. Copia las credenciales

    En Settings → API encontrarás la Project URL y la clave anon public. Las usaremos ahora mismo.

4.3. Conectar Next.js con Supabase

Instala el cliente oficial y crea el archivo de variables de entorno:

# Instala los paquetes de Supabase para Next.js
npm install @supabase/supabase-js @supabase/ssr

Crea el archivo .env.local en la raíz del proyecto (nunca se sube al repositorio):

# .env.local — credenciales de desarrollo
NEXT_PUBLIC_SUPABASE_URL=https://TU-PROYECTO.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=TU-CLAVE-ANON-PUBLIC

Y crea el cliente que usará toda la aplicación, en lib/supabase/client.ts:

// lib/supabase/client.ts
// Cliente de Supabase para componentes que corren en el navegador
import { createBrowserClient } from "@supabase/ssr";

export function createClient() {
  return createBrowserClient(
    process.env.NEXT_PUBLIC_SUPABASE_URL!,      // URL de tu proyecto
    process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!  // clave pública (segura de exponer)
  );
}

4.4. La página inicial de ReservaYa

Reemplaza el contenido de app/page.tsx con la landing de la barbería:

// app/page.tsx — página pública de Don Barbas
export default function Home() {
  return (
    <main className="min-h-screen bg-zinc-950 text-white">
      <section className="max-w-3xl mx-auto px-6 py-24 text-center">
        <p className="text-amber-500 font-semibold tracking-wide">
          BARBERÍA DON BARBAS · MEDELLÍN
        </p>
        <h1 className="text-5xl font-black mt-4">
          Reserva tu corte en 30 segundos
        </h1>
        <p className="text-zinc-400 mt-4">
          Elige tu barbero, paga el anticipo y llega sin filas.
        </p>
        {/* Este botón cobrará vida en el módulo 3 */}
        <a
          href="/reservar"
          className="inline-block mt-8 bg-amber-500 text-zinc-950
                     font-bold px-8 py-3 rounded-xl"
        >
          Reservar ahora
        </a>
      </section>
    </main>
  );
}
✗ Errores comunes en esta etapa
  • Subir .env.local al repositorio. Solución: verifica que .gitignore incluye .env* (create-next-app lo hace por defecto). Las claves filtradas se explotan en minutos.
  • Usar una versión vieja de Node.js. Solución: Next.js 14+ requiere Node 18.17 o superior. Verifica con node --version y actualiza desde nodejs.org.
  • Empezar a diseñar antes de entender el flujo del negocio. Solución: primero define las reglas (qué se reserva, qué se cobra, qué pasa si cancelan) y después construye pantallas.
✏ Ejercicio: las reglas de tu negocio

Piensa en un negocio real que conozcas (el tuyo, el de un familiar, el de tu barrio): una tienda, un restaurante, un consultorio, una academia. Responde por escrito:

  1. ¿Qué tarea repetitiva consume más tiempo cada semana? → _______________
  2. Escribe 3 reglas del negocio en formato "si pasa X, entonces Y". Ejemplo: "si el cliente no paga anticipo, la cita no se confirma".
  3. ¿Qué datos necesita guardar ese negocio? (clientes, productos, citas, pedidos…) → _______________

Guarda estas respuestas: en el módulo 3 las convertirás en tablas de base de datos. Descarga la plantilla de arquitectura en los recursos de este módulo para hacerlo de forma guiada.

4.5. Mini-proyecto del módulo

🔨
ReservaYa · Entrega 1

Al cerrar este módulo debes tener: el proyecto reservaya corriendo en localhost:3000 con la landing de Don Barbas, un proyecto de Supabase creado y conectado vía .env.local, y el código subido a un repositorio de GitHub. Ese repositorio es el que desplegaremos en el módulo 6.

✓ Lo que aprendiste en este módulo
  • Lógica de negocio = las reglas de tu negocio escritas en código: se aplican siempre, sin excepciones olvidadas.
  • Toda app tiene 3 capas: frontend (lo que se ve), backend (las reglas) y base de datos (la memoria). Lo crítico siempre se valida en el backend.
  • El stack del curso — Next.js + Supabase + Wompi — es profesional, gratuito para aprender y usado por negocios reales en Latinoamérica.
  • ReservaYa ya existe: tienes el proyecto corriendo, conectado a Supabase y versionado en GitHub. Cada módulo le agregará una capacidad de negocio.