This repo is a personal portfolio site built with Astro 5, Tailwind CSS 4, and TypeScript. Use it as the main reference for how to work in this codebase.
- Astro β Pages and components (
.astro), minimal client JS where needed. - Tailwind β Styling via utilities; theme is in
src/styles/global.css(@themeand CSS variables). - Data β Content lives in
src/data/*.ts(e.g.experience.ts). Export interfaces and arrays; use optional fields where a value can be missing. - Assets β Images under
src/assets/; import in data or components and use.srcfor URLs.
- Styling: Use only the existing design tokens (e.g.
bg-bg-primary,text-accent,border-border-default). No new hex colors or arbitrary values. - Components: Astro components with a TypeScript
Propsinterface andconst { ... } = Astro.props. - Accessibility: Meaningful
alton images; semantic HTML; omit optional UI (e.g. location block) when the data is missing.
Detailed rules are in .cursor/rules/:
- auto-commit-push.mdc β After you change any file, you must commit and push before finishing (no
Co-authored-byline). Skip only if the user says "don't commit" or "no commit". - astro-tailwind.mdc β Astro and Tailwind usage (when editing
.astro). - data-layer.mdc β Data and content structure (when editing
src/data/). - accessibility.mdc β A11y and optional content (when editing
.astro).
bun run devβ Local dev server.bun run buildβ Production build.bun run previewβ Preview the production build.