Modern portfolio website built with VitePress, showcasing mobile development projects and open source work.
- π¨ Modern Design: Clean, professional design with responsive layout
- π± Portfolio Showcase: Display projects with screenshots and detailed information
- π GitHub Integration: Automatically fetch project data from GitHub repositories
- π Fast & Static: Static site generation for optimal performance
- π― SEO Optimized: Built-in SEO features with VitePress
- π¦ Fastlane Support: Automatically integrate app metadata from Fastlane
.
βββ docs/
β βββ .vitepress/
β β βββ config.ts # VitePress configuration
β β βββ theme/ # Custom theme
β β β βββ index.ts # Theme entry
β β β βββ custom.css # Custom styles
β β βββ components/ # Vue components
β β β βββ PortfolioGrid.vue
β β βββ data/ # Data files
β β β βββ portfolio.ts # Portfolio projects data
β β βββ utils/ # Utility functions
β β βββ github-loader.ts
β βββ public/ # Static assets
β β βββ img/ # Images
β βββ portfolio/ # Portfolio pages
β β βββ index.md # Portfolio index
β β βββ ecairn.md # Project pages
β β βββ ...
β βββ index.md # Home page
β βββ about.md # About page
β βββ opensource.md # Open source work
β βββ contact.md # Contact page
βββ package.json
βββ README.md
- Node.js 18+
- npm or yarn
# Install dependencies
npm install# Start dev server
npm run docs:dev
# Server will be available at http://localhost:5173# Build for production
npm run docs:build
# Preview production build
npm run docs:previewEdit docs/.vitepress/data/portfolio.ts:
{
id: 'project-id',
title: 'Project Name',
subtitle: 'Platform',
description: 'Project description',
thumbnail: '/img/portfolio/project/thumb.png',
images: ['/img/portfolio/project/screenshot.png'],
date: 'January 2024',
client: 'Technology Used',
category: 'Application Development',
tags: ['Tag1', 'Tag2']
}For projects hosted on GitHub with Fastlane metadata:
{
id: 'project-id',
title: 'Project Name',
subtitle: 'Open Source Project',
description: 'Fallback description',
thumbnail: '/img/portfolio/project/icon.png',
date: 'Ongoing',
client: 'Open Source',
category: 'Open Source Development',
tags: ['NativeScript', 'Open Source'],
github: {
repo: 'owner/repository',
fastlanePath: 'fastlane/metadata/en-US' // Optional
}
}The website will automatically fetch:
- Repository stars, forks, and metadata
- Fastlane metadata (name, description, keywords)
- Screenshots from Fastlane metadata
- Latest release information
The site can automatically fetch app metadata from Fastlane directories:
your-repo/
βββ fastlane/
βββ metadata/
βββ en-US/
βββ name.txt
βββ subtitle.txt
βββ description.txt
βββ keywords.txt
βββ screenshots/
βββ screenshot1.png
βββ screenshot2.png
To avoid GitHub API rate limits in production:
- Create a GitHub Personal Access Token
- Add to your build environment:
export GITHUB_TOKEN="your_token_here"
Edit docs/.vitepress/theme/custom.css:
:root {
--vp-c-brand-1: #42C0ED; /* Primary brand color */
--vp-c-brand-2: #16afe6; /* Secondary brand color */
}Edit docs/.vitepress/config.ts:
nav: [
{ text: 'Home', link: '/' },
{ text: 'About', link: '/about' },
{ text: 'Portfolio', link: '/portfolio/' },
// Add more items...
]The repository includes a GitHub Actions workflow (.github/workflows/deploy.yml) that automatically deploys to GitHub Pages when you push to the main branch.
Setup Steps:
- Go to your repository Settings β Pages
- Set Source to "GitHub Actions"
- Push to main branch - the site will deploy automatically
# Build the site
npm run docs:build
# The built files will be in /dist directory
# Upload to your hosting providerCreate a new markdown file in docs/:
# Page Title
Your content here...VitePress will automatically generate routes based on file structure.
- VitePress: Static site generator
- Vue 3: Component framework
- TypeScript: Type-safe development
- Octokit: GitHub API integration
- GitHub Actions: CI/CD
This is a personal portfolio site, but suggestions and feedback are welcome!
Copyright Β© 2024 Akylas
For questions or issues:
- Open an issue on GitHub
- Contact via GitHub profile
- Live Site: https://akylas.github.io
- GitHub: https://github.com/farfromrefug
- Company: Akylas