Este proyecto todavía no está traducido a este idioma — se muestra la versión original.
The site you are reading. Bilingual, content-driven, and with nothing written into the code.
The public site renders everything from the API: the biography, the hero metrics, the areas of each branch, the technology list, the architecture diagram, the contact links, the blog and these project pages. It is built with Next.js 16 and React 19 on the App Router, bilingual English/Spanish through next-intl with a locale segment in every URL, and it revalidates against the API every sixty seconds instead of being rebuilt every time a post changes. Post bodies are Markdown, rendered with react-markdown.
A portfolio that needs a deploy to fix a typo stops being updated after the second month. The failure is not technical: it is that the cost of a small correction is higher than the embarrassment of leaving it there.
No content lives in the repository. Every string a visitor reads comes from the database through the API and is edited from the CMS, and incremental revalidation puts the change on the public site about a minute later without a build. The code owns the layout; the database owns the words.
Prerendering against your own API makes the build depend on the API being up, and that is a feature rather than a nuisance: if the API is down the build fails instead of publishing an empty site. The local start script had to learn the same order, starting the API before compiling the site.