The single-page site for the TucsonJS meetup, built with Astro and plain CSS (no Tailwind, no React — just a couple of small inline scripts for the theme toggle).
Meetup details (next event, cadence, venue) and links (Luma, Discord, GitHub, Code of Conduct) are hand-edited in src/data/site.ts — there's no CMS or live Luma embed. Update that file before each meetup.
/
├── .github/
│ └── workflows/
│ └── deploy.yml # GitHub Pages deployment
├── public/
│ ├── favicon.png
│ └── og-image.png
├── src/
│ ├── assets/
│ │ └── brand/ # Logo and sticker artwork
│ ├── components/
│ │ ├── Header.astro
│ │ ├── Hero.astro
│ │ ├── NextEvent.astro
│ │ ├── About.astro
│ │ ├── CodeOfConduct.astro
│ │ ├── Community.astro
│ │ ├── Sponsors.astro
│ │ ├── Footer.astro
│ │ └── ThemeToggle.astro
│ ├── data/
│ │ └── site.ts # Editable event/link/copy config
│ ├── layouts/
│ │ └── Layout.astro
│ ├── pages/
│ │ └── index.astro
│ └── styles/
│ └── global.css # Color tokens (light/dark) + base styles
├── .prettierrc # Prettier configuration
├── eslint.config.js # ESLint configuration
├── astro.config.mjs # Astro configuration
└── package.json
- Node.js >= 18.20.8 (required for Astro)
- npm
-
Clone the repository:
git clone <your-repo-url> cd tucsonjs-website
-
Install dependencies:
npm install
-
Start the development server:
npm run dev
| Command | Action |
|---|---|
npm run dev |
Starts local dev server at localhost:4321 |
npm run build |
Build your production site to ./dist/ |
npm run preview |
Preview your build locally, before deploying |
npm run lint |
Run ESLint on JavaScript/TypeScript files |
npm run lint:fix |
Run ESLint and fix auto-fixable issues |
npm run format |
Format code with Prettier |
npm run format:check |
Check if code is formatted correctly |
npm run check |
Run both linting and format checking |
This project is configured to automatically deploy to GitHub Pages when you push to the main branch.
- Push your code to a GitHub repository
- Go to your repository settings
- Navigate to "Pages" section
- Set source to "GitHub Actions"
- The workflow will automatically deploy your site
The site will be available at: https://<your-username>.github.io/tucsonjs-website
If you want to deploy manually:
npm run build
# Upload the contents of ./dist/ to your hosting providerThis project includes:
- ESLint: Code linting for JavaScript/TypeScript files
- Prettier: Code formatting with Astro support
- GitHub Actions: Automated deployment to GitHub Pages
.prettierrc: Prettier configuration with the Astro plugineslint.config.js: ESLint configuration for TypeScript and Astro.github/workflows/deploy.yml: GitHub Actions workflow for deployment
Feel free to check our documentation or jump into our Discord server.