Portfolio bilingüe (ES / EN) de Emanuel Cejas — Senior Product Engineer.
Construido con Astro 5 + Tailwind v4 + i18n nativo + JSON-LD Schema.org. Live en emanuelcejas.vercel.app.
Senior Product Engineer construyendo SaaS verticales y agentes IA end-to-end. Seis años codeando, autodidacta. Top 200 de ~3.000 builders en el hackathon Kaszek × Anthropic 2025.
Disponible para FT remoto USD desde Buenos Aires (UTC−3).
- Portfolio: emanuelcejas.vercel.app
- Email: emanuel.cejas.ar@gmail.com
- LinkedIn: linkedin.com/in/emanuel-cejas
| Proyecto | Stack | Repo |
|---|---|---|
| Sesión — Co-supervisor clínico IA para psicólogos. Construido en 5 días durante el hackathon Kaszek × Anthropic. $0.14 USD por paciente/mes en producción. | SvelteKit · NestJS · Postgres + pgvector · Claude Opus + Sonnet | github.com/emawritz/sesion |
| share-sharvis / JARVIS — Multi-Agent Mission Control. Orquestación de agentes Claude Code sobre múltiples máquinas. | Tauri 2 · Rust · Svelte 5 · Tailscale | github.com/emawritz/share-sharvis |
Productos en producción con clientes pagos (LocalCenter, balanza-agent) están en repos privados por compromiso con los clientes. Disponible para compartir snippets de arquitectura específicos si querés profundizar.
- Framework: Astro 5 (SSG)
- Estilos: Tailwind v4 + design tokens propios
- i18n: routing nativo Astro (ES default, EN bajo
/en/) - SEO: JSON-LD Schema.org (Person, WebSite, FAQPage, CollectionPage), sitemap autogenerado con hreflang, OG banner programático en build
- Performance: AVIF + WebP responsive, LCP preload, fonts subset
- Deploy: Vercel con auto-deploy en push a main
src/
├── components/ # secciones del portfolio (Hero, Work, Process, About, ...)
├── i18n/ # dictionary.ts con todo el contenido bilingüe
├── layouts/ # Layout.astro con SEO + JSON-LD slots
├── pages/ # / (ES), /en/ (EN), /proyectos y /en/projects (archivos)
├── styles/ # global.css con design tokens
└── ...
public/
├── og/ # OG banners generados (1200x630)
├── portrait-*.avif/.webp/.jpg # retrato responsive
└── robots.txt + sitemap-index.xml
scripts/
└── generate-assets.mjs # genera AVIF, WebP, OG banner via sharp
pnpm install
pnpm dev # localhost:4321
pnpm build # build estático en dist/
pnpm preview # preview del buildnode scripts/generate-assets.mjs
# Genera AVIF + WebP + OG banner desde public/portrait-source.jpg- Astro sobre Next.js: SSG puro, JS inicial mínimo, ideal para portfolio. No necesito server runtime — todo es estático.
- Dictionary centralizado: todo el contenido (ES + EN) vive en
src/i18n/dictionary.ts. Una sola fuente de verdad, fácil de mantener. - JSON-LD inyectado por página: cada página define sus schemas vía slot
en
Layout.astro. Sin runtime overhead. - Sharp en build, no a runtime: AVIF / WebP / OG se generan UNA vez pre-deploy. Vercel sirve el resultado estático.
- i18n con routing nativo: ES default sin prefijo (
/), EN bajo/en/. Sitemap genera hreflang automáticamente.
El código es propietario. El portfolio se puede usar de referencia, pero no copiar contenido (textos, fotos, datos).
Para colaboraciones o consultas: emanuel.cejas.ar@gmail.com