Learn how to add projects, blog posts, work experiences, and books to your portfolio
The portfolio template uses Astro’s content collections to manage your projects, blog posts, work experiences, and books. All content is written in MDX format with frontmatter metadata.
Content is organized in the src/content/ directory:
src/content/├── projects/ # Project showcases├── posts/ # Blog posts├── experiences/ # Work experience├── books/ # Book reviews├── config.ts # Content schemas└── profileData.ts # Personal information
---slug: "my-awesome-project"title: "My Awesome Project"description: "A revolutionary app that changes everything"startDate: 2025-01-15image: { url: "/projects/awesome.png", alt: "My Awesome Project" }tags: ["React", "TypeScript", "Tailwind CSS"]---# My Awesome ProjectThis project solves a critical problem in the industry by...## Key Features- Feature 1: Does something amazing- Feature 2: Improves workflow by 200%- Feature 3: User-friendly interface## Technical ImplementationBuilt with modern web technologies including React, TypeScript, and deployed on Vercel.## Results- 10,000+ active users- 95% positive feedback- Featured on Product Hunt
---slug: "portfolio"title: "Portfolio"description: "My portfolio website. You are viewing this only."startDate: 2025-03-16image: { url: "/portfolio.png", alt: "Portfolio" }tags: ["Astro", "Shadcn UI", "Tailwind CSS"]---# PortfolioThis is my portfolio website built with Astro. It showcases my projects and skills.
Keep project descriptions concise (1-2 sentences) for the card view. Use the MDX content for detailed explanations.
---slug: "my-first-post"title: "Getting Started with Astro"description: "Learn how to build blazing-fast websites with Astro"startDate: 2025-03-04image: { url: "/blog/astro-guide.png", alt: "Astro Guide" }tags: ["Astro", "Web Development", "Tutorial"]---# Getting Started with AstroAstro is a modern web framework that delivers lightning-fast performance...## Why Astro?Astro stands out because of its unique approach to building websites:1. **Zero JavaScript by default**: Only ship JS when needed2. **Island Architecture**: Interactive components load independently3. **Framework agnostic**: Use React, Vue, Svelte, or vanilla JS## Your First Astro Project```bashnpm create astro@latest
This command creates a new Astro project with everything you need to get started.
---slug: "atomic-habits"title: "Atomic Habits"author: "James Clear"readYear: 2024tags: ["Self-Help", "Productivity"]---A practical guide to building good habits and breaking bad ones. The book's coreidea is that small changes compound over time to produce remarkable results.**Key Takeaways:**- Focus on systems, not goals- Make habits obvious, attractive, easy, and satisfying- The 1% improvement philosophy**Rating:** 5/5 - Highly recommend for anyone looking to improve themselves.
---slug: "kirin"title: "The Wings of the Kirin"author: "Keigo Higashino"readYear: 2022tags: ["Honkaku"]---Very honkaku, the last one I read I believe gave me this level of satisfactionwas "Journey Under the Midnight Sun", and surprisingly that more than 10 years ago.
MDX allows you to use JSX components in your markdown:
# Regular MarkdownThis is a paragraph with **bold** and *italic* text.## JSX Components<div className="bg-primary text-primary-foreground p-4 rounded-lg"> This is a custom styled component!</div>## Images## Code Blocks```typescriptconst greeting = "Hello, World!";console.log(greeting);
## ValidationAstro validates your content against the schemas defined in `src/content/config.ts`. If you have validation errors:<Steps> <Step title="Check the error message"> Astro provides detailed error messages indicating which field is invalid. </Step> <Step title="Verify required fields"> Ensure all required fields are present in the frontmatter. </Step> <Step title="Check data types"> Dates should be in YYYY-MM-DD format, numbers should not be quoted. </Step> <Step title="Test locally"> Run `npm run dev` to see validation errors during development. </Step></Steps><Warning> Content validation happens at build time. Always test locally before deploying to catch any schema violations.</Warning>## Next Steps<CardGroup cols={2}> <Card title="Styling" icon="brush" href="/customization/styling"> Learn how to style your content with Tailwind and Shadcn UI </Card> <Card title="Configuration" icon="sliders" href="/customization/configuration"> Configure site settings and metadata </Card></CardGroup>