Alejo Castillo

Frontend-focused Fullstack Developer · remote-friendly (AR, UTC-3)

Next.js, TypeScript, and careful failure modes.

Mostly Next.js, TypeScript, and Vercel. I spend time on typed APIs, timeouts/retries, and CI so broken paths don't become blank screens. Open to remote fullstack roles.

Alejo Castillo profile photo

About me

Self-taught, frontend-focused junior fullstack developer in La Plata. I build with Next.js (App Router), TypeScript, and Vercel: auth, data, and what happens when the happy path fails. I work in English and Spanish, and I'm studying Russian.

Live product

Saravá. A usable cultural center site in production: Clerk admin CMS, Neon/Prisma, and Vercel Blob. Client organizers publish real content there today.

Projects

  • AI Story Generator: Vercel AI SDK streaming, RAG on Neon/pgvector, rate limits, and a small eval set.
  • mini-ecommerce: Clerk, Redis/Prisma, Sentry, Vitest and Playwright in CI.

I optimize for clarity, typed contracts, and recoverable failures.

Skills

Reliability & State

  • Sentry
  • HTTP resilience
  • State management
  • Loading/error UI

Projects

AI Story Generator main page

AI Story Generator

Problem: Story generator with streaming RAG, a small agent loop, guardrails, and evals.

Outcome: Streaming AI with retrieval grounding: tool-calling agent, typed outputs, guardrails, evals, and observability.

Stack: Vercel AI SDK · pgvector · Neon · TypeScript

Read more
mini-ecommerce main page

mini-ecommerce

Problem: Storefront with auth, timed-out HTTP calls, and checkout covered by CI.

Outcome: 45/45 tests after Prisma migration; checkout race fixed; Playwright E2E in CI.

Stack: Next.js · Clerk · TypeScript · Playwright

Read more
Mini Job Board main page

Mini Job Board

Problem: Vanilla job board: filter/sort module you can unit-test, filters stored in the URL.

Outcome: Interaction-heavy job board with tested filter logic, multi-page flows, and CI-backed quality gates.

Stack: HTML · CSS · Vanilla JS · Playwright

Read more
Saravá Espacio Cultural site

Saravá: Espacio Cultural

Problem: Client cultural hub that outgrew JSON-in-Git, needs authenticated publishing, media uploads, and community comments without a second greenfield rebuild.

Outcome: Shipped a Vercel-hosted CMS for posts, novels, events, and branding, plus reader comments on posts, radio, and podcast, and a featured-only adaptive hero.

Stack: Next.js · TypeScript · Clerk · Neon/Prisma · Vercel Blob · Vercel

Read more
ExportOps dashboard: category tope, 12-month runway, and recategorization countdown

ExportOps: Freelancer Export Cockpit

Problem: Monotributistas who get paid in USD see calculators and invoicers, but nothing simple joins ledger + BNA conversion + 12-month runway vs category ceiling before Jan/Jul recategorization.

Outcome: Auth ledger with BNA ARS conversion, 12-month runway vs monotributo ceiling, and 80/95% alerts.

Stack: Next.js · TypeScript · Clerk · Neon/Prisma · Vercel

Read more

Recent milestones

  • AI Story Generator

    Added streaming responses, RAG context retrieval, and automated evaluation checks.

  • mini-ecommerce

    Migrated to Prisma + Neon, fixed a checkout race, and added Playwright E2E plus Sentry.

  • Saravá CMS

    Shipped authenticated publishing, media uploads, and Vercel deployment for the client site.

Engineering Practices

Patterns that show up across the repos: tests, CI on PRs, auth and secrets handled carefully, and enough docs to reopen a project later.

Testing

  • Vitest unit tests on pure logic and React components
  • CartContext integration tests on checkout flows
  • Playwright E2E across all four featured repos

CI / Delivery

  • GitHub Actions: lint, type-check, test, build on every PR
  • Vercel previews + production; GitHub Pages for static sites

Auth & Security

  • Clerk OIDC sign-in with session-aware middleware
  • Protected routes and per-user order scoping
  • Secrets hygiene: .env.example, gitignored keys, no creds in client bundles

Observability & Docs

  • Sentry, structured logger.ts, and React error boundaries
  • Definition of Done and PR templates in repo docs

Open Source

  • Contributed to JustinBeckwith/linkinator. Skip rules were getting ignored across HTTP redirects. I opened a fix with regression tests. Justin rewrote it inside the request pipeline and merged that instead, citing the analysis and coverage (PR #846).
  • Contributed to vercel/ai. Working on better docs for v6 tool error handling (draft PR #16869).

How I use AI in development

I use AI for scaffolding and drafts. Changes still go through typecheck, tests, and a manual pass before merge.

  • Workflow: boilerplate, refactors, and docs drafts; I edit before anything lands in main.
  • In product: AI Story Generator moved from a thin LLM call to streaming + RAG on Neon pgvector, with Zod checks, eval graders, and a local fallback when providers fail.
  • Quality: CI (lint, type-check, tests, E2E where it matters) catches regressions either way.
  • Ownership: architecture and review stay with me; the tool is just faster typing.

Contact

Open to full-time, contract, or collaboration. Remote-friendly from La Plata, Argentina (UTC-3). Email is the fastest way to reach me.

alejoworkstuff@gmail.com