Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

630 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Google Developer Group (GDG) ICA — Official Website

🌐 gdgica.com · 🖼️ Figma design

Static site for the GDG ICA community, built with Astro. All public content — events, speakers, team, sponsors, gallery — lives in the separate GDGXICA/gdg-ica-data repository and is pulled in at build time by the custom loaders in src/loaders/. CI clones that repo instead of fetching it over the CDN, so a build never picks up stale JSON.

Public pages: /, /events, /events/[slug], /team, /about, /sponsors, /volunteers, /gallery. There is also an authenticated admin panel under /admin/*, backed by an Express API on Cloud Functions that writes to the data repo through the GitHub API.

Stack

Getting started

Requires Node 22.15.0 and pnpm 10.11.0.

pnpm install
pnpm dev

The dev server runs at http://localhost:4321.

Commands

Command Action
pnpm dev Dev server at localhost:4321
pnpm build Production build into ./dist/
pnpm preview Preview the build
pnpm lint Run ESLint
pnpm format Format with Prettier
pnpm test Unit tests (Vitest)
pnpm test:functions Cloud Functions tests
pnpm test:rules Firestore rules against the emulator
pnpm test:all All three suites

Layout

src/
├── components/       # Astro components; react/ holds the client-side islands
├── layouts/          # Page layouts
├── loaders/          # Content loaders for gdg-ica-data
├── pages/            # File-based routing
├── lib/              # Firebase client, auth, API wrapper, permissions
└── content.config.ts # Zod schemas for the collections
functions/            # Cloud Functions API
docs/                 # Operational guides

Architecture notes, the admin permission model and the testing setup are documented in CLAUDE.md.

Deployment

GitHub Actions (.github/workflows/deploy.yml) builds and deploys to Firebase on every push to main, and on a repository_dispatch from the data repo so content updates rebuild the site.

Contributing

Branch off main, commit with Conventional Commits (feat:, fix:, docs:, style:, refactor:, test:, chore:), then open a pull request. PRs need at least one approval — keep them small and focused, and include screenshots for visual changes. Check the open issues and PRs first to avoid duplicate work.

Conventions: camelCase for variables and functions, PascalCase for components, Tailwind over custom CSS, no !important, no console.log in production code. Discuss new dependencies before adding them.

License

MIT — see LICENSE.md

Releases

Packages

Contributors

Languages