AGENTS.md — somos10e7 (Somos 10⁷)
AGENTS.md — somos10e7 (Somos 10⁷)
Static podcast landing page at https://asosab.github.io/somos10e7/. Plain HTML +
CSS + vanilla JS. No build, no framework, no npm, no Jekyll processing.
Key facts
- No tests, no linter, no CI. Do not invent commands for these.
- No build step. To preview: open
index.htmlin a browser or serve with any static server (python -m http.server).start index.htmlon Windows.
Workflow: PLAN.md first
Before editing any feature or content, read PLAN.md to understand current
state and planned work. After making changes, update PLAN.md to reflect
what was done, what changed, and any new gaps or next steps discovered.
Also add a line to CHANGELOG.md with date, category, and description.
Editing content
- Episodes: auto-generados desde
videosData.jsonfiltrando por playlist “Episodios”. Para agregar uno nuevo basta con subir el video a YouTube, agregarlo a la playlist “Episodios” y regenerarvideosData.jsonconnode js/youtube_videos.mjs. Luego actualizar la sección#ultimopara que apunte al nuevo episodio. - Interviews: auto-generados desde
videosData.jsonfiltrando por playlist “Entrevistas”. - Emprendedores: auto-generados desde
videosData.jsonfiltrando por playlist “Emprendedores”. Misma card style que entrevistas. - Team: hand-written
.equipo-cardblocks. Photos inimagen/<name>.png; fallback to initials viaonerror.
Secrets in git history (compromised, do not reuse)
- YouTube API key in
js/youtube_videos.mjs - Context7 API key in
opencode.jsonc - Firebase config (apiKey, projectId, etc.) in
index.html(Firebase module script) - If you re-run
youtube_videos.mjs, rotate the YouTube key first.
js/youtube_videos.mjs
One-shot Node script that fetches YouTube Data API v3 and writes
js/videosData.json. Consumed by the landing page to render episodes and
interviews dynamically. Requires Node 18+, npm install node-fetch. Run from
js/ as node youtube_videos.mjs.
Firebase live visitor counter
A Firestore-based counter in the last <script type="module"> of index.html.
It registers a doc per IP every 30 min and queries active visitors. The orbital
ring animation (renderizarAnillos) drives off window.usuariosActivos.
Other gotchas
back/directory contains rough drafts and working notes — ignore for production.#microssection exists in the nav and footer but is empty (placeholder).- Text color scheme is dark (
--oscuro: #0D1B2A) with crema text — all new sections should follow the same palette defined in:root. - Google Analytics (
UA-84695-6) is loaded in the second-to-last<script>. - OpenCode config in
opencode.jsoncpointsinstructionsto this file; installed skills:find-skills,frontend-design.