Source code for quantucf.com.
- Astro
- TypeScript
- Tailwind CSS
- pnpm
- Node.js 24 LTS
- Node.js 24, matching
.nvmrc - pnpm 11
git clone https://github.com/quantucf/website.git
cd website
nvm use
pnpm install --frozen-lockfile
pnpm dev
| Command | Purpose |
|---|---|
pnpm dev |
Start the local development server |
pnpm build |
Generate the production site in dist/ |
pnpm preview |
Preview the production build locally |
pnpm format |
Format supported files with Prettier |
pnpm format:check |
Check formatting without modifying files |
pnpm lint |
Lint the repository with ESLint |
pnpm check |
Run Astro and TypeScript diagnostics |
pnpm test |
Build the site and run the Node.js test suite |
Before opening a pull request, please run the following validation sequence:
pnpm format
pnpm lint
pnpm check
pnpm test
.
├── public/ Static assets and crawler files
├── src/
│ ├── components/ Layout, navigation, section, and UI components
│ ├── content/ Markdown content collections and templates
│ ├── data/ Site-wide links and contact information
│ ├── layouts/ Shared page shell and document metadata
│ ├── lib/ Content, event, archive, and metadata helpers
│ ├── pages/ File-based routes
│ └── styles/ Global styles and theme tokens
├── tests/ Configuration, content, unit, and output tests
├── astro.config.ts Astro and Tailwind configuration
├── src/content.config.ts Content collection schemas
└── vercel.json Vercel build configuration
Content schemas are defined in
src/content.config.ts. Use the corresponding template
when adding new content:
| Collection | Template |
|---|---|
| Events | src/content/events/.template.md |
| Officers | src/content/officers/.template.md |
| Posts | src/content/posts/.template.md |
| Projects | src/content/projects/.template.md |
| Sponsors | src/content/sponsors/.template.md |
Site-wide links and contact details are in
src/data/site-content.ts. Topic labels and event
types are defined in src/lib/content.ts and
src/lib/events.ts.
Pushing to a feature branch creates a Vercel Preview deployment. Pushing
to main deploys to production.
The Nightly Rebuild GitHub Actions workflow triggers a production rebuild at
00:17 America/New_York each day so static event listings reflect completed events.
GitHub may delay scheduled runs. The workflow can also be run manually from Actions.
In Vercel's project Git settings, create a deploy hook targeting main and save
its URL as the GitHub repository Actions secret VERCEL_DEPLOY_HOOK_URL. Treat
the URL as a credential. The schedule becomes active once the workflow is on
main. A successful workflow confirms that Vercel accepted the trigger; check
Vercel for the build and deployment result.
- Create a feature branch from
main. - Make changes based on logical units of work.
- Run the complete validation sequence.
- Commit using the Conventional Commits specification (
<type>(<scope>): <summary>). - Push the branch and open a pull request.
This project is available under the MIT License.