{"id":48686946,"url":"https://github.com/vruizz22/landing-arvi","last_synced_at":"2026-04-11T04:17:18.361Z","repository":{"id":311766602,"uuid":"1044925579","full_name":"vruizz22/landing-arvi","owner":"vruizz22","description":"Landing page de ARVI construida con Astro y Tailwind CSS; sitio estático rápido y accesible, con CI/CD en GitHub Actions y despliegue en AWS (S3 + CloudFront).","archived":false,"fork":false,"pushed_at":"2026-03-25T20:04:57.000Z","size":37110,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-03-26T19:40:26.852Z","etag":null,"topics":["a11y","accessibility","amazon-s3-bucket","astro","astrojs","aws","ci-cd","cloudfront","github-actions","jamstack","landing-page","responsive-design","seo","serverless","static-site","tailwindcss","web-performance"],"latest_commit_sha":null,"homepage":"https://arvi.cl","language":"Astro","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vruizz22.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"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}},"created_at":"2025-08-26T12:01:01.000Z","updated_at":"2026-03-25T19:10:16.000Z","dependencies_parsed_at":"2025-08-26T16:15:31.975Z","dependency_job_id":"cae65793-c0ef-4af5-a771-dec6b96634fe","html_url":"https://github.com/vruizz22/landing-arvi","commit_stats":null,"previous_names":["vruizz22/landing-arvi"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vruizz22/landing-arvi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vruizz22%2Flanding-arvi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vruizz22%2Flanding-arvi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vruizz22%2Flanding-arvi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vruizz22%2Flanding-arvi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vruizz22","download_url":"https://codeload.github.com/vruizz22/landing-arvi/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vruizz22%2Flanding-arvi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31668247,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T17:19:37.612Z","status":"online","status_checked_at":"2026-04-11T02:00:05.776Z","response_time":54,"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":["a11y","accessibility","amazon-s3-bucket","astro","astrojs","aws","ci-cd","cloudfront","github-actions","jamstack","landing-page","responsive-design","seo","serverless","static-site","tailwindcss","web-performance"],"created_at":"2026-04-11T04:17:14.712Z","updated_at":"2026-04-11T04:17:18.337Z","avatar_url":"https://github.com/vruizz22.png","language":"Astro","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Landing ARVI\n\nSitio de presentación de ARVI, enfocado en eventos, juegos mecánicos y soluciones eco-sustentables. Construido con Astro 5 y Tailwind CSS 4, con despliegue automatizado a AWS S3 + CloudFront.\n\n- Sitio: \u003chttps://arvi.cl\u003e\n- Rama principal de despliegue: master\n- Rama de desarrollo: develop\n\n## Indice\n\n- [Landing ARVI](#landing-arvi)\n  - [Indice](#indice)\n  - [Tecnologías](#tecnologías)\n  - [Estructura del proyecto](#estructura-del-proyecto)\n  - [Variables de entorno (Instagram)](#variables-de-entorno-instagram)\n  - [Scripts](#scripts)\n  - [Estilo de código](#estilo-de-código)\n  - [Configuración y contenido](#configuración-y-contenido)\n  - [Despliegue (CI/CD)](#despliegue-cicd)\n  - [Requisitos](#requisitos)\n  - [Cómo contribuir](#cómo-contribuir)\n  - [Roadmap sugerido](#roadmap-sugerido)\n  - [Licencia](#licencia)\n  - [Créditos](#créditos)\n  - [🧞 Commands](#-commands)\n\n## Tecnologías\n\n- Astro 5\n- Tailwind CSS 4 (con @tailwindcss/vite)\n- Iconos con astro-icon (Iconify)\n- ESLint + TypeScript-ESLint + eslint-plugin-astro\n- Prettier + plugins (Astro, Tailwind)\n- GitHub Actions (OIDC) → AWS S3 + CloudFront\n- Sitemap automático (@astrojs/sitemap)\n\n## Estructura del proyecto\n\n```\n/\n├─ .github/workflows/deploy.yml   # CI/CD a AWS S3 + CloudFront (push a master)\n├─ public/                        # Assets estáticos públicos (favicons, imágenes, robots.txt)\n├─ src/\n│  ├─ assets/                     # Imágenes y estáticos usados por Astro\n│  ├─ components/\n│  │  ├─ InstagramFeed.astro\n│  │  └─ FAQ.astro                # Placeholder\n│  ├─ layouts/\n│  │  └─ Layout.astro             # Layout principal\n│  ├─ pages/\n│  │  └─ index.astro              # Home\n│  ├─ sections/                   # Secciones de la Home\n│  └─ styles/                     # Estilos globales/utilidades\n├─ astro.config.mjs               # Site, Tailwind (Vite), Iconify, Sitemap\n├─ tailwind.config.mjs\n├─ eslint.config.js\n├─ package.json\n├─ pnpm-lock.yaml\n└─ tsconfig.json\n```\n\n## Variables de entorno (Instagram)\n\nPara consumir Instagram Graph API en build-time (SSG), configura estas variables:\n\n```\nINSTAGRAM_USER_ID=TU_INSTAGRAM_BUSINESS_USER_ID\nINSTAGRAM_ACCESS_TOKEN=TU_LONG_LIVED_INSTAGRAM_ACCESS_TOKEN\n```\n\nEn local:\n\n- Copia `.env.example` a `.env`\n- Ejecuta `npm run dev` o `npm run build`\n\nEn GitHub Actions:\n\n- Agrega en Repository Secrets:\n  - `INSTAGRAM_USER_ID`\n  - `INSTAGRAM_ACCESS_TOKEN`\n\n## Scripts\n\nDesde package.json:\n\n- dev: servidor de desarrollo\n- build: build de producción a ./dist\n- preview: previsualizar el build localmente\n- astro: CLI de Astro\n- lint: ejecutar ESLint\n- format: aplicar Prettier\n- format:check: comprobar formato sin escribir\n\nEjemplos:\n\n```\npnpm install\npnpm dev\npnpm build\n```\n\nCon npm:\n\n```\nnpm install\nnpm run dev\nnpm run build\n```\n\n## Estilo de código\n\n- ESLint y Prettier están configurados.\n- Recomendado ejecutar:\n  - pnpm lint\n  - pnpm format:check\n\n## Configuración y contenido\n\n- Configuración del sitio: astro.config.mjs (site: \u003chttps://arvi.cl\u003e, integraciones).\n- Tailwind: tailwind.config.mjs (tema, colores, fuentes y plugin de animaciones).\n- Layout y metadatos: src/layouts/Layout.astro.\n- Home: src/pages/index.astro.\n- Componentes:\n  - InstagramFeed.astro: feed dinámico de Instagram en build-time.\n  - FAQ.astro: definido como placeholder.\n- Secciones: src/sections/ contiene los bloques de la Home.\n- Imágenes:\n  - Colócalas en public/ (sirve tal cual) o en src/assets/ (import desde componentes).\n  - Optimiza peso y usa formatos modernos (WebP/AVIF) cuando sea posible.\n\n## Despliegue (CI/CD)\n\nEl despliegue se ejecuta automáticamente al hacer push a la rama master.\n\n- Pipeline: .github/workflows/deploy.yml\n- Pasos:\n  1) Build del sitio (Node 20)\n  2) Sincronización a S3:\n     - Assets (cache largo, 1 año)\n     - HTML (cache corto, 60s)\n  3) Subida de sitemaps y robots.txt con content-type correcto\n  4) Invalidación de CloudFront\n- Requisitos (Secrets del repositorio):\n  - AWS_REGION\n  - S3_BUCKET\n  - CLOUDFRONT_DISTRIBUTION_ID\n  - INSTAGRAM_USER_ID\n  - INSTAGRAM_ACCESS_TOKEN\n- Autenticación: OIDC asumiendo el role arn:aws:iam::084414214145:role/GitHubActionsDeployRole\n\nFlujo recomendado:\n\n- Trabajo en develop\n- Merge a master para disparar el deploy\n\n## Requisitos\n\n- Node.js 20+\n- PNPM (recomendado; el repo incluye pnpm-lock.yaml)\n- Alternativa: npm o yarn\n\n## Cómo contribuir\n\n- Branches:\n  - feature/nombre-corto, fix/bug-descriptivo, chore/config-x, docs/readme, etc.\n- Commits (Conventional Commits):\n  - feat, fix, docs, style, refactor, perf, test, chore, ci\n  - Ej.: feat(home): agrega carrusel de Instagram\n- PRs:\n  - Un objetivo por PR\n  - Descripción clara y capturas si aplica\n  - Pasar lint y format antes de enviar\n\n## Roadmap sugerido\n\n- Completar contenido y comportamiento de FAQ.\n- Añadir tests básicos.\n- Mejorar accesibilidad (aria, focus en modales, contraste).\n- Automatizar optimización de imágenes.\n- Unificar y documentar favicons/og-images.\n- Añadir pre-commit hooks (lint-staged, husky).\n\n## Licencia\n\nEste proyecto está bajo la licencia **GNU General Public License v3.0**. Consulta el archivo `LICENSE` para más detalles.\n\n## Créditos\n\n- Framework: Astro\n- Estilos: Tailwind CSS\n- Iconos: Iconify (astro-icon)\n\n## 🧞 Commands\n\nAll commands are run from the root of the project, from a terminal:\n\n| Command                   | Action                                           |\n| :------------------------ | :----------------------------------------------- |\n| `pnpm install`             | Installs dependencies                            |\n| `pnpm dev`             | Starts local dev server at `localhost:4321`      |\n| `pnpm build`           | Build your production site to `./dist/`          |\n| `pnpm preview`         | Preview your build locally, before deploying     |\n| `pnpm astro ...`       | Run CLI commands like `astro add`, `astro check` |\n| `pnpm astro -- --help` | Get help using the Astro CLI                     |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvruizz22%2Flanding-arvi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvruizz22%2Flanding-arvi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvruizz22%2Flanding-arvi/lists"}