Astro Sites
This section documents how we build and ship static sites using Astro, powered by the ACL (Astro Creation Library) repo.
What is ACL?
The ACL repository serves two purposes:
- Project creation script — a Bash script (
scripts/create-astro-project.sh) that scaffolds a fully configured Astro project in seconds. - Shared component library — a published npm package (
@sitios-agencia-digital/acl) with reusable React components, styles, and utilities.
Architecture overview
Every Astro site we build follows the same conventions:
| Layer | Technology |
|---|---|
| Framework | Astro (latest, TypeScript strict) |
| UI | Astro components + React (islands) |
| Styling | Tailwind CSS + SCSS (custom properties) |
| Icons | Font Awesome Pro (Kit script) + Iconify |
| Content | YAML data files (front.yaml, head.yaml, config.yaml) |
| Deployment | GitHub Actions → GitHub Pages |
| Optional SDKs | S3 (@sitios-agencia-digital/sitios-build-time-sdk), MercadoLibre (@sitios-agencia-digital/meli-sdk) |
Typical workflow
1. Client meeting → Gather info & assets (see Client Onboarding)
2. Run creation script → Scaffold the project (see Project Creation)
3. Develop the site → Follow conventions (see Development Guidelines)
4. Deploy to staging → GitHub Pages default URL (see Deploy to GH Pages)
5. Iterate with client → Push to master to redeploy
6. Go to production → Attach custom domain (see Switch staging → prod)
Deployment workflow (high level)
- Staging: deploy to GitHub Pages using the default
*.github.ioURL (no custom domain yet). - Production: switch the staging site to the final domain (custom domain + HTTPS).
In this section
- Project Creation — running the script, what it installs, options
- Project Structure — generated folder layout, data files, configuration
- Development Guidelines — styling, components, content management, TypeScript rules
- Client Onboarding — first meeting checklist, Google accounts setup
- Deploy to GH Pages (staging) — CI/CD workflow, Astro config
- Switch staging → prod — custom domain, HTTPS, production config