A static website for MicroHAMS, built with Astro.
npm install
npm run devThe dev server URL will be shown in the terminal (typically http://localhost:4321).
├── src/
│ ├── content/ # Markdown content collections
│ │ ├── articles/ # Technical articles and guides
│ │ ├── docs/ # Reference documentation
│ │ ├── events/ # Club events and meetings
│ │ ├── pages/ # Static pages (about)
│ │ └── config.ts # Content schemas
│ ├── components/ # Astro components
│ ├── layouts/ # Page layouts
│ ├── pages/ # Route files
│ ├── styles/ # CSS (ITCSS architecture)
│ └── site.config.ts # Site configuration (venues, meetings)
├── playwright/ # E2E tests
├── scripts/ # Build and validation scripts
└── public/ # Static assets
| Command | Description |
|---|---|
npm run dev |
Development server with HMR |
npm run build |
Build static site to dist/ |
npm run preview |
Preview production build locally |
| Command | Description |
|---|---|
npm test |
Unit tests in watch mode (Vitest) |
npm run test:run |
Unit tests single run |
E2E Tests (optional):
Playwright is optional and not installed by default. The test commands will guide you through setup if needed:
| Command | Description |
|---|---|
npm run test:e2e |
E2E tests (auto-installs browsers if needed) |
npm run test:e2e:ui |
E2E tests with interactive UI |
npm run test:e2e:update |
Update E2E snapshots |
| Command | Description |
|---|---|
npm run lint |
Check for lint errors |
npm run lint:fix |
Auto-fix lint errors |
npm run type-check |
TypeScript + Astro validation |
| Command | Description |
|---|---|
npm run verify |
Check package versions + security audit |
npm run validate |
Design system + accessibility checks |
npm run ci |
Local validation (lint, types, unit tests, build) |
Pre-configured via Husky:
- pre-commit: Runs lint-staged (ESLint + Prettier) and
astro check - pre-push: Runs
pre-push:fastvalidation
Docker provides a consistent environment for CI and E2E testing, useful when:
- Local Playwright browser installation fails or behaves differently
- You want to match the exact CI environment locally
- Running on a machine without Node.js installed
| Command | Description |
|---|---|
npm run docker:build |
Build the Docker image |
npm run docker:ci |
Run full CI pipeline in container |
npm run docker:unit |
Run unit tests in container |
npm run docker:e2e |
Run E2E tests in container (Playwright pre-installed) |
npm run docker:dev |
Start dev server in container |
First-time setup:
npm run docker:build
npm run docker:ciConfiguration is in .docker/.
For detailed content guidelines, schema documentation, and examples, see:
The contributing guide includes comprehensive information on:
- Creating articles, events, and documentation
- Content schemas and required fields
- Venue and meeting configuration
- Auto-generated schema documentation
- Fork the repository
- Create a feature branch
- Make changes
- Run
npm run cito validate - Submit a pull request
Push to main triggers GitHub Actions deployment to GitHub Pages.
Site: https://microhams.com