Alexis Noe Gonzales Perez

Crypt0xDev

Portafolio profesional — Ingeniero de Software · Full Stack · Inteligencia Artificial · Ciberseguridad.

Aplicación full-stack construida con Next.js 16 (App Router) y desplegada en Vercel, con sitio público optimizado para SEO y un panel administrativo privado para gestionar todo el contenido de forma dinámica.

Stack

Capa Tecnología
Framework Next.js 16 (App Router, React 19, RSC)
Lenguaje TypeScript (estricto)
Estilos Tailwind CSS v4 + shadcn/ui (base-ui)
Tema Dark por defecto · next-themes · acento indigo
ORM / DB Prisma 7 (driver adapter pg) + PostgreSQL
Tipografía Geist Sans / Geist Mono
Hosting Vercel (Edge Network)
Gestor de paquetes pnpm

Arquitectura

Frontend (Next.js) → API (Route Handlers / Server Actions) → PostgreSQL (Prisma)

Desarrollo

pnpm install            # instala dependencias (genera Prisma Client en postinstall)
cp .env.example .env    # configura DATABASE_URL y demás variables
pnpm db:push            # aplica el schema a la base de datos
pnpm db:seed            # carga datos iniciales (perfil, proyectos prioritarios)
pnpm dev                # servidor de desarrollo (http://localhost:3000)

Scripts útiles

Script Descripción
pnpm dev Servidor de desarrollo
pnpm build Build de producción
pnpm lint ESLint
pnpm typecheck Chequeo de tipos (tsc --noEmit)
pnpm db:generate Genera Prisma Client
pnpm db:migrate Crea/aplica migraciones (dev)
pnpm db:push Sincroniza schema sin migración
pnpm db:studio Prisma Studio
pnpm db:seed Siembra datos iniciales

Despliegue

La app vive en Vercel. El dominio crypt0xdev.github.io se conserva como vanity URL: un repositorio GitHub Pages mínimo que redirige (301 + canonical) a la app real en Vercel. CI (.github/workflows/ci.yml) ejecuta lint, typecheck y build en cada push/PR a main.

Estructura

app/
  (site)/        Sitio público (home, proyectos, blog, ...)
  (admin)/admin/ Panel administrativo
components/
  ui/            Componentes shadcn/ui
  site/          Componentes del sitio público
lib/
  db.ts          Cliente Prisma singleton
  site-config.ts Configuración del sitio
  generated/     Prisma Client (generado, git-ignored)
prisma/
  schema.prisma  Modelo de datos
  seed.ts        Datos iniciales

🤖 Andamiaje generado con Claude Code