A modern personal website built with Astro 5 and Tailwind CSS, featuring project showcases, downloads, and social links.
- Homepage: Personal introduction with photo, bio, and social links
- Projects Page: Auto-fetched GitHub repositories with stars, descriptions, and links
- Downloads Page: Large file hosting with JSON-based manifest system
- Dark/Light Mode: Toggle with system preference detection
- Responsive Design: Mobile-first approach with Tailwind CSS
- GitHub Pages Ready: Automated deployment via GitHub Actions
- Node.js 18+ and npm
- GitHub account (for deployment)
-
Clone and Install
git clone <your-repo-url> cd colingamez-website npm install
-
Configure Your Settings Edit
/data/config.json:{ "personalInfo": { "name": "Your Name", "bio": "Your bio here...", "photo": "/avatar.jpg" }, "github": { "username": "yourgithubusername" }, "socialLinks": [ { "name": "YouTube", "url": "https://youtube.com/@yourchannel" } ] } -
Add Your Avatar Replace
/public/avatar.jpgwith your actual photo -
Start Development Server
npm run dev
Update your details in /data/config.json:
- personalInfo: Name, bio, and photo path
- github.username: Your GitHub username for repository fetching
- socialLinks: YouTube, GitHub, Twitter links
Add files to /data/downloads.json:
{
"downloads": [
{
"name": "Your File Pack",
"size": "1073741824",
"description": "Description of your file pack...",
"downloadUrl": "https://your-storage.com/file.zip",
"fileCount": 25
}
]
}File Size Format: Sizes should be in bytes (e.g., 1073741824 = 1GB)
For downloads, you'll need cloud storage. Recommended options:
- Cloudflare R2: Cost-effective with generous free tier
- Backblaze B2: Simple pricing and reliable
- AWS S3: Full-featured but more expensive
Update the downloadUrl fields in your downloads manifest with your storage URLs.
-
Repository Settings
- Go to Settings > Pages
- Source: "GitHub Actions"
-
Update Configuration In
astro.config.mjs, update:export default defineConfig({ site: 'https://yourusername.github.io', base: '/your-repo-name', });
-
Deploy Push to the
mainbranch to trigger automatic deployment
- Add your domain to
/public/CNAME - Configure DNS with your domain provider
- Update the
siteURL inastro.config.mjs
├── src/
│ ├── components/ # Reusable UI components
│ │ ├── Navbar.astro # Navigation with theme toggle
│ │ ├── Footer.astro # Footer with social links
│ │ ├── RepoCard.astro # GitHub repository display
│ │ ├── FileCard.astro # Download file display
│ │ └── ThemeToggle.astro # Dark/light mode switch
│ ├── layouts/
│ │ └── Layout.astro # Base HTML layout
│ ├── pages/
│ │ ├── index.astro # Homepage
│ │ ├── projects.astro # GitHub projects page
│ │ └── downloads.astro # Downloads page
│ └── styles/
│ └── global.css # Tailwind imports and custom styles
├── data/
│ ├── config.json # Personal info and social links
│ └── downloads.json # Downloads manifest
├── public/
│ ├── favicon.svg # Site favicon
│ └── avatar.jpg # Your profile photo
└── .github/workflows/
└── deploy.yml # GitHub Pages deployment
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run astro # Run Astro CLI commands- Upload your files to cloud storage
- Edit
/data/downloads.json - Add a new entry with file details:
{ "name": "File Name", "size": "52428800", "description": "What this file contains...", "downloadUrl": "https://storage-url/file.zip", "fileCount": 10 }
- Colors: Edit the color palette in
tailwind.config.mjs - Fonts: Update font imports in
src/styles/global.css - Components: Modify individual component files in
src/components/
Add analytics by including tracking scripts in src/layouts/Layout.astro:
- Plausible Analytics
- Google Analytics
- Umami Analytics
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
MIT License - feel free to use this template for your own projects!
- Create an issue for bugs or feature requests
- Check out the Astro documentation
- Review Tailwind CSS documentation