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.
| 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 |
Frontend (Next.js) → API (Route Handlers / Server Actions) → PostgreSQL (Prisma)
app/(site)): SSG/ISR, optimizado para velocidad y SEO.app/(admin)): SSR protegido (auth en fase posterior), CRUD de contenido.revalidateTag).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)
| 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 |
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.
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