{
  "id": 9590312,
  "title": "How I built a portfolio with real data: 4 APIs in one week",
  "url": "https://urgent.news/2026/09/24/como-construi-un-portafolio-con-datos-reales-4-apis-en-una-semana",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-24T16:58:20.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/joshuaterrones/como-construi-un-portafolio-con-datos-reales-4-apis-en-una-semana-a"
  },
  "original_language": "es",
  "account": "A developer has upgraded their portfolio website to display real data and automate updates. They used GitHub's GraphQL API to showcase pinned projects and REST API for a complete project list, implementing 24-hour caching to avoid rate limits. The developer also integrated Hackatime to track coding hours, Sanity as a headless CMS for the blog, and Resend for the contact form, learning the importance of caching, troubleshooting CORS errors, and the benefits of automation. The new setup allows for seamless content updates and interaction with visitors.",
  "summary": "Durante meses tuve un portafolio bonito pero vacío. Los proyectos decían \"Proyecto 01, Proyecto 02, Proyecto 03\", las horas de código decían \"000h\" y el formulario de contacto no enviaba nada. Un esqueleto precioso que no le decía nada a nadie. Este mes decidí cambiarlo. La meta: cero placeholders, todo con datos reales, todo automatizado. Lo que sigue es la bitácora de cómo conecté cuatro…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}