Developing
Tech stack
- •Framework: Astro (Astro's llms.txt)
- •Styling: Tailwind CSS
- •Icons: Iconify
- •Language: TypeScript
- •Package manager: pnpm
- •Deployment: Vercel
Monorepo structure
This repository contains three Astro websites:
code
websites/ ├── www/ # zlliang.me – Personal landing page (English and Chinese, with [Astro's i18n support](https://docs.astro.build/guides/internationalization/)) ├── tech/ # tech.zlliang.me – Tech learning and research (English) └── days/ # days.zlliang.me – Daily life and reflections (Chinese) scripts/ # Helper scripts for dev, build, and content authoring (pnpm dev, pnpm build, pnpm new, pnpm ship)
Commands
From the repository root:
bash
pnpm install # Install all dependencies pnpm dev <site> # Start dev server (www: 3001, tech: 3002, days: 3003) pnpm build <site> # Build for production
Where <site> is one of: www, tech, days.
Conventions
- •Path alias: Use
@/*forsrc/*imports within each site - •Components: Use PascalCase for
.astrofiles - •Content: Organized by
[year]/[month]/[day]/[slug].md - •Styling: Tailwind utilities; global styles in
src/styles/main.css - •Git commits: Follow Conventional Commits; for content authoring, use
docs:type with the relevant title in the message
Misc
- •Use
lodash-esanddate-fnsfor utilities - •Custom rehype plugins go in
src/utils/rehype.tson each site - •Always verify production builds