{"id":51849801,"url":"https://github.com/brayandiazc/portfolio-template-basic","last_synced_at":"2026-07-23T17:03:54.501Z","repository":{"id":263166930,"uuid":"889549704","full_name":"brayandiazc/portfolio-template-basic","owner":"brayandiazc","description":"Plantilla de portafolio personal estático (HTML, CSS y JavaScript, sin frameworks). Tema claro/oscuro y proyectos cargados en vivo desde la API de GitHub.","archived":false,"fork":false,"pushed_at":"2026-07-03T05:03:59.000Z","size":1102,"stargazers_count":5,"open_issues_count":0,"forks_count":7,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-07-03T06:27:55.364Z","etag":null,"topics":["css","dark-mode","github-api","github-pages","html","javascript","portfolio","portfolio-template","static-site","template","vanilla-javascript"],"latest_commit_sha":null,"homepage":"https://brayandiazc.github.io/portfolio-template-basic/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brayandiazc.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"brayandiazc"}},"created_at":"2024-11-16T16:01:51.000Z","updated_at":"2026-07-03T05:04:03.000Z","dependencies_parsed_at":"2024-11-16T17:29:32.563Z","dependency_job_id":"d594a09a-0348-4498-a780-9578959cb198","html_url":"https://github.com/brayandiazc/portfolio-template-basic","commit_stats":null,"previous_names":["brayandiazc/template-portafolio","brayandiazc/portfolio-template-basic"],"tags_count":1,"template":true,"template_full_name":null,"purl":"pkg:github/brayandiazc/portfolio-template-basic","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brayandiazc%2Fportfolio-template-basic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brayandiazc%2Fportfolio-template-basic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brayandiazc%2Fportfolio-template-basic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brayandiazc%2Fportfolio-template-basic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brayandiazc","download_url":"https://codeload.github.com/brayandiazc/portfolio-template-basic/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brayandiazc%2Fportfolio-template-basic/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35809508,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-23T02:00:06.683Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["css","dark-mode","github-api","github-pages","html","javascript","portfolio","portfolio-template","static-site","template","vanilla-javascript"],"created_at":"2026-07-23T17:03:53.731Z","updated_at":"2026-07-23T17:03:54.495Z","avatar_url":"https://github.com/brayandiazc.png","language":"HTML","funding_links":["https://github.com/sponsors/brayandiazc"],"categories":[],"sub_categories":[],"readme":"# Plantilla Portafolio Básico\n\nPortafolio personal en una sola página, **estático y sin framework**: solo HTML5,\nCSS3 (con design tokens propios) y JavaScript. Muestra tu perfil por secciones y\ncarga tus repositorios en vivo desde la API pública de GitHub, con **tema claro y\noscuro** siguiendo el estilo gráfico de [brayandiazc.com](https://brayandiazc.com).\n\n![License](https://img.shields.io/badge/license-MIT-blue)\n![Stack](https://img.shields.io/badge/stack-HTML%20%C2%B7%20CSS%20%C2%B7%20JS-006cac)\n\n## Tabla de Contenidos\n\n- [Descripción](#descripción)\n- [Características](#características)\n- [Stack Tecnológico](#stack-tecnológico)\n- [Estructura del Proyecto](#estructura-del-proyecto)\n- [Instalación y uso](#instalación-y-uso)\n- [Configuración](#configuración)\n- [Cómo se separan proyectos y repositorios](#cómo-se-separan-proyectos-y-repositorios)\n- [Tema y diseño](#tema-y-diseño)\n- [Deployment](#deployment)\n- [Documentación](#documentación)\n- [Contribución](#contribución)\n- [Roadmap](#roadmap)\n- [Autores](#autores)\n- [Licencia](#licencia)\n\n## Descripción\n\nEsta plantilla es una portada profesional lista para publicar en GitHub Pages.\nEstá pensada para clonarse, cambiar tu usuario de GitHub y tus datos, y tener un\nportafolio funcional sin build ni backend. Tiene **dos secciones de trabajo**:\n**Proyectos** (curados a mano) y **Repositorios** (traídos de tu GitHub).\n\n## Características\n\n- ✅ Diseño responsivo, **sin frameworks CSS** (Bootstrap fue reemplazado por CSS propio)\n- ✅ **Tema claro/oscuro** con conmutador y persistencia (`localStorage`), sin parpadeo\n- ✅ Secciones bien separadas: perfil, sobre mí, experiencia, educación, habilidades\n- ✅ **Proyectos**: lista curada a mano en `assets/js/projects.js` (título, descripción, enlaces)\n- ✅ **Repositorios**: tus repos de GitHub con más ⭐ estrellas, cargados en vivo\n- ✅ Datos estructurados JSON-LD para SEO\n- ✅ Cero dependencias que instalar\n\n## Stack Tecnológico\n\n- [HTML5](https://developer.mozilla.org/es/docs/Web/HTML)\n- [CSS3](https://developer.mozilla.org/es/docs/Web/CSS) con variables/design tokens propios\n- JavaScript (ES modules, `fetch`) — sin dependencias\n- [GitHub REST API](https://docs.github.com/en/rest) (pública, sin token)\n- Tipografía [Google Sans Code](https://fonts.google.com/)\n- [GitHub Pages](https://pages.github.com/) para el deploy\n\nDetalle completo en [`docs/architecture/stack.md`](docs/architecture/stack.md).\n\n## Estructura del Proyecto\n\n```bash\nportfolio-template-basic/\n├── assets/\n│   ├── css/styles.css   # tema y estilos (design tokens de brayandiazc.com)\n│   ├── js/app.js        # render de secciones, repos de GitHub y tema\n│   └── js/projects.js   # ← tu lista de proyectos (edítala aquí)\n├── docs/                # documentación (arquitectura, convenciones, decisiones…)\n├── index.html           # única página del sitio\n└── README.md\n```\n\n## Instalación y uso\n\nClona el repositorio y ábrelo con cualquier servidor estático:\n\n```bash\ngit clone https://github.com/brayandiazc/portfolio-template-basic.git\ncd portfolio-template-basic\n\n# Opción A: abrir directamente\nopen index.html\n\n# Opción B: servidor estático local\npython3 -m http.server 8000\n# → http://localhost:8000\n```\n\nNo hay dependencias que instalar ni paso de build.\n\n## Configuración\n\n**1. Tus proyectos** — edita la lista en [`assets/js/projects.js`](assets/js/projects.js):\n\n```js\nexport const PROJECTS = [\n  {\n    title: \"Task Manager API\",\n    description: \"API REST para gestionar tareas, con auth JWT.\",\n    tags: [\"Node.js\", \"Express\", \"PostgreSQL\"],\n    demoUrl: \"https://example.com/task-manager\", // opcional\n    repoUrl: \"https://github.com/tu-usuario/task-manager\", // opcional\n  },\n  // …añade los tuyos\n];\n```\n\n**2. Tus repositorios y datos** — ajusta el objeto `CONFIG` al inicio de\n[`assets/js/app.js`](assets/js/app.js) y reemplaza `[Tu Nombre]`, la foto, redes y\ntextos en `index.html`:\n\n```js\nconst CONFIG = {\n  githubUsername: \"brayandiazc\", // ← tu usuario de GitHub\n  exclude: [\"brayandiazc\"], // repos a ocultar (p. ej. el repo de perfil)\n  hideForks: true, // ocultar forks\n  minStars: 1, // solo repos con al menos N estrellas (0 = todos)\n  maxRepos: 12, // máximo de repos a mostrar (0 = sin límite)\n  maxTopics: 4, // topics a mostrar por card\n};\n```\n\n## Cómo se separan proyectos y repositorios\n\nSon dos secciones con orígenes distintos, a propósito:\n\n1. **Proyectos** → **curados a mano** en `assets/js/projects.js`. Aquí pones lo que\n   quieras destacar con su descripción y enlaces (demo y/o código), sin depender de\n   GitHub. Ideal para trabajos que no son un repo público o que quieres presentar mejor.\n2. **Repositorios** → traídos **en vivo** de la API pública de GitHub\n   (`/users/{usuario}/repos`), filtrados a los que tienen **estrellas** y ordenados de\n   más a menos. Se ocultan forks y archivados. Todo configurable en `CONFIG`.\n\n\u003e **¿Y los repos _pineados_?** La API REST pública (sin token) no expone los repos\n\u003e fijados de un perfil — eso solo está en la API GraphQL, que requiere autenticación y\n\u003e no puede incrustarse de forma segura en un sitio estático. Por eso el orden por\n\u003e estrellas es la mejor aproximación sin backend. Si quieres pineados exactos,\n\u003e necesitarías un pequeño proxy con token o generar la lista en tiempo de build.\n\nLa API pública tiene límite de 60 peticiones/hora por IP sin token, de sobra para un portafolio.\n\n## Tema y diseño\n\nLos colores provienen de los design tokens de brayandiazc.com:\n\n| Token  | Claro     | Oscuro    |\n| ------ | --------- | --------- |\n| Fondo  | `#fdfdfd` | `#212737` |\n| Texto  | `#282728` | `#eaedf3` |\n| Acento | `#006cac` | `#ff6b01` |\n| Muted  | `#e6e6e6` | `#343f60` |\n\nEl tema se controla con `data-theme=\"light|dark\"` en `\u003chtml\u003e` y se conmuta con el\nbotón ◐ de la barra superior. Más detalle en\n[`docs/conventions/design-system.md`](docs/conventions/design-system.md).\n\n## Deployment\n\nSitio estático servido por **GitHub Pages** desde `main`, disponible en\n`https://brayandiazc.github.io/portfolio-template-basic/`. Puedes añadir un dominio\npropio (opcional) con un archivo `CNAME`. Procedimiento en\n[`docs/conventions/deploy.md`](docs/conventions/deploy.md).\n\n## Documentación\n\nToda la documentación vive en [`docs/`](docs/README.md):\n\n| Documento                                                                | Responde a                     |\n| ------------------------------------------------------------------------ | ------------------------------ |\n| [`docs/architecture/architecture.md`](docs/architecture/architecture.md) | ¿Cómo está construido?         |\n| [`docs/architecture/stack.md`](docs/architecture/stack.md)               | ¿Con qué tecnologías?          |\n| [`docs/architecture/design.md`](docs/architecture/design.md)             | ¿Cómo se diseña y por qué?     |\n| [`docs/product/roadmap.md`](docs/product/roadmap.md)                     | ¿Hacia dónde va?               |\n| [`docs/decisions/`](docs/decisions/README.md)                            | ¿Por qué cada decisión?        |\n| [`docs/conventions/`](docs/conventions/README.md)                        | ¿Cómo trabajamos en este repo? |\n\n## Contribución\n\nLee la [Guía de Contribución](CONTRIBUTING.md) para conocer el flujo de trabajo,\nlos estándares de código y el formato de commits (Conventional Commits).\n\n## Roadmap\n\nVisión y próximos pasos en [`docs/product/roadmap.md`](docs/product/roadmap.md).\n\n## Autores\n\n- **Brayan Diaz C** — _Trabajo inicial_ — [@brayandiazc](https://github.com/brayandiazc)\n\n## Licencia\n\nEste proyecto está bajo la licencia [MIT](LICENSE).\n\n---\n\n⌨️ con ❤️ por [@brayandiazc](https://github.com/brayandiazc)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrayandiazc%2Fportfolio-template-basic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrayandiazc%2Fportfolio-template-basic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrayandiazc%2Fportfolio-template-basic/lists"}