Skip to main content
Projects showcase your work and technical skills. They’re stored in src/content/projects/ as markdown files with frontmatter defining project metadata.

Projects Collection Schema

The projects collection is defined in src/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)
Optional link to the live project website
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)
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:
Use the featured 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

File Organization

Projects are stored in src/content/projects/ with this structure:
The filename becomes the URL slug. For example, amiccii.md will be accessible at /projects/amiccii

Tech Stack Guidelines

When listing technologies in the tech array:
  1. Use official names - “Next.js” not “nextjs”, “Tailwind CSS” not “tailwind”
  2. Be specific - “React Native” instead of just “React” for mobile apps
  3. Include key technologies - Framework, language, major libraries, and notable services
  4. Keep it concise - Aim for 3-7 technologies per project
  5. Order by importance - List the most important technologies first

Good Examples

Best Practices

  1. Use high-quality cover images - Projects with cover_image stand out more
  2. Write clear descriptions - Explain what the project does and your role
  3. Link to live projects - Always include external_link if the project is live
  4. Showcase open source work - Include github_link for public repositories
  5. Mark your best work as featured - Use featured: true for portfolio highlights
  6. Keep years accurate - The year field helps organize your project timeline
  7. Credit collaborations - Use made_at to 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 the public/projects/ directory:
Then reference them in your frontmatter:
Images in the public/ directory are served at the root level, so use paths starting with / like /projects/image.png