src/content/projects/ as markdown files with frontmatter defining project metadata.
Projects Collection Schema
The projects collection is defined insrc/content.config.ts with the following schema:
string
required
The name of your project (e.g., “Amiccii”, “Vue Google Translate”)
array
required
An array of technologies used in the project (e.g.,
["Next.js", "Tailwind CSS", "Beehiv"])number
required
The year the project was completed (e.g.,
2025)string (URL)
Optional link to the live project website
string (URL)
Optional link to the GitHub repository
string (URL)
Optional link to Apple App Store if it’s a mobile app
string (URL)
Optional link to Google Play Store if it’s an Android app
string
Optional path to a cover image (e.g.,
/projects/amiccii.png)boolean
Optional flag to mark the project as featured on your homepage (defaults to
false)string
Optional field indicating where the project was created (e.g., “Inflection Studio”, “Open Source Software”)
Adding a New Project
1
Create a project file
Navigate to
src/content/projects/ and create a new .md file using kebab-case:2
Add project frontmatter
Start with YAML frontmatter containing all required fields and any optional ones:
3
Write project description
Below the frontmatter, describe your project in detail:
4
Preview your project
Run your development server to see the project:Projects are typically displayed on your projects page or portfolio section.
Project Types
Client Work with Live Site
For professional client projects with live websites:Open Source Projects
For open source projects with GitHub repositories:Mobile Apps
For mobile applications with app store links:Featured Projects
Use thefeatured field to highlight your best work on your homepage:
Featured projects typically appear in a prominent section on your homepage or portfolio landing page. Set
featured: true for your 3-5 best projects.Real-World Examples
Example 1: Featured Client Project
Example 1: Featured Client Project
Example 2: Open Source Library
Example 2: Open Source Library
File Organization
Projects are stored insrc/content/projects/ with this structure:
The filename becomes the URL slug. For example,
amiccii.md will be accessible at /projects/amicciiTech Stack Guidelines
When listing technologies in thetech array:
- Use official names - “Next.js” not “nextjs”, “Tailwind CSS” not “tailwind”
- Be specific - “React Native” instead of just “React” for mobile apps
- Include key technologies - Framework, language, major libraries, and notable services
- Keep it concise - Aim for 3-7 technologies per project
- Order by importance - List the most important technologies first
Good Examples
Best Practices
- Use high-quality cover images - Projects with
cover_imagestand out more - Write clear descriptions - Explain what the project does and your role
- Link to live projects - Always include
external_linkif the project is live - Showcase open source work - Include
github_linkfor public repositories - Mark your best work as featured - Use
featured: truefor portfolio highlights - Keep years accurate - The
yearfield helps organize your project timeline - Credit collaborations - Use
made_atto indicate where the project was created
Querying Projects
In your Astro components, query projects using the Content Collections API:Adding Project Images
Place project images in thepublic/projects/ directory:
Images in the
public/ directory are served at the root level, so use paths starting with / like /projects/image.png