Marketing website for DDEV Manager, built with Astro and Tailwind CSS.
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview- Dynamic Release Data: Fetches latest release info from GitHub API at build time
- Platform Detection: Automatically highlights download for visitor's OS
- Contributors Section: Shows GitHub contributors fetched at build time
- Dark/Light Mode: Respects system preference with manual toggle
- Responsive Design: Works on all screen sizes
The site is automatically deployed to GitHub Pages via GitHub Actions:
- On push to
mainbranch - On
repository_dispatchevent (triggered by main repo on release) - Manually via
workflow_dispatch
To automatically rebuild the website when a new release is published:
- Create a Personal Access Token (PAT) with
reposcope - Add it as
WEBSITE_DEPLOY_TOKENsecret in the mainddev-managerrepo - Add the following job to
.github/workflows/release.yml:
trigger-website-rebuild:
runs-on: ubuntu-latest
needs: [publish]
steps:
- name: Trigger website rebuild
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ secrets.WEBSITE_DEPLOY_TOKEN }}
repository: DDEV-Manager/ddev-manager-site
event-type: release-publishedwebsite/
├── src/
│ ├── components/ # Astro components
│ │ ├── Header.astro
│ │ ├── Hero.astro
│ │ ├── Features.astro
│ │ ├── Downloads.astro
│ │ ├── Contributors.astro
│ │ └── Footer.astro
│ ├── layouts/
│ │ └── Layout.astro
│ ├── lib/
│ │ └── github.ts # GitHub API utilities
│ ├── pages/
│ │ └── index.astro
│ └── styles/
│ └── global.css
├── public/
│ └── images/
├── .github/
│ └── workflows/
│ └── deploy.yml
├── astro.config.mjs
├── package.json
└── tsconfig.json
- Framework: Astro 5.x
- Styling: Tailwind CSS 4.x
- Hosting: GitHub Pages
- Deployment: GitHub Actions