shreyasgokhale.com
Personal portfolio site. Built with Astro 4, Tailwind CSS, TypeScript, MDX.
Quick Start
npm install
npm run dev # localhost:4321
npm run build # type-check + build + Pagefind indexContent
All content is authored in an external Obsidian vault and pulled in via git submodule. The src/content directory is a symlink to content/green/Resume/content.
content/green/Resume/content/
about/about.md # Resume summary (free-form markdown)
work/*.md # One file per job
education/*.md # One file per degree
projects/*.md # One file per project
skills/ # One file per skill category
embedded.md # category, domain, order + markdown list of skills
robotics.md
iot.md
software.md
languages/ # One file per language
english.md # language, proficiency, order
german.md
hindi.md
marathi.md
scribbles/*.md # Blog posts
subroutines/*.md # Technical writeups
gsoc/*.md # GSoC 2020 posts
now/now.md # /now page
Adding a Skill Category
Create a new .md in content/.../skills/:
---
category: "Machine Learning"
domain: "software"
order: 5
---
- TensorFlow
- PyTorchdomain controls tag colors: embedded (amber), robotics (teal), iot (blue), software (slate).
order controls display position on the resume.
Adding a Language
Create a new .md in content/.../languages/:
---
language: "French"
proficiency: "Beginner (A1)"
order: 5
---Resume Section Order
Edit RESUME_SECTIONS in src/consts.ts to reorder, add, or remove resume sections:
export const RESUME_SECTIONS: string[] = [
"summary",
"skills",
"work",
"education",
"languages",
"projects",
];Site Configuration
All site-level config lives in src/consts.ts:
| Export | Controls |
|---|---|
SITE | Name, email, description |
NAV_ITEMS | Top navigation links |
HUB_CARDS | Homepage card grid |
RESUME_SECTIONS | Resume page section order |
SOCIALS | Footer social links (with icon keys) |
Styling
- Dark mode via class strategy with
localStoragepersistence - Section personality: scribbles use serif/warm tones, subroutines use mono/cool tones (CSS custom properties in
src/styles/global.css) - Print stylesheet for A4 resume output (
@media printrules inglobal.css) - Tag domain colors defined in
src/lib/tags.ts
Path Aliases
@* maps to ./src/*. Use @components/, @lib/, @layouts/, @consts, @types.