A modern, scalable tutorial website built with Astro and hosted on GitHub Pages.
- 📚 Content Collections - Organized tutorials by category
- 🎨 Modern Design - Clean, responsive interface
- 🔍 Search & Filter - Find tutorials by difficulty and topic
- 📱 Mobile-First - Optimized for all devices
- ⚡ Fast Performance - Static site generation with Astro
- 🚀 Auto-Deploy - Automatic deployment to GitHub Pages
- Astro - Static site generator
- Markdown - Content authoring
- GitHub Pages - Free hosting
- GitHub Actions - Automatic deployment
- Node.js 18+
- npm or yarn
- Clone the repository:
git clone https://github.com/MariosKif/Tutorial_Website.git
cd Tutorial_Website- Install dependencies:
npm install- Start the development server:
npm run dev- Open http://localhost:4321 in your browser.
Create a new .md file in the appropriate content collection directory:
src/content/html-tutorials/my-new-tutorial.md
---
title: "My New Tutorial"
description: "A brief description of what this tutorial covers."
difficulty: "beginner" # beginner, intermediate, advanced
readTime: "5 min read"
category: "HTML"
tags: ["basics", "elements"]
published: true
date: 2024-01-15
---
# My New Tutorial
Your tutorial content goes here...Use Markdown syntax to write your tutorial:
## Section Title
Your content here...
```html
<code example>Push your changes to GitHub, and the site will automatically rebuild and deploy!
Tutorials are organized into categories. Currently available:
- HTML -
src/content/html-tutorials/ - CSS -
src/content/css-tutorials/ - JavaScript -
src/content/javascript-tutorials/
To add more categories, create the directory and add the collection definition to src/content/config.ts.
The site automatically deploys to GitHub Pages when you push to the main branch.
npm run buildThe built files will be in the dist/ directory.
- Main styles:
public/style.css - Component styles:
src/styles/
- Base layout:
src/layouts/BaseLayout.astro - Tutorial layout:
src/layouts/TutorialLayout.astro
- Reusable components:
src/components/
The site is configured for:
- Google Analytics - Replace
GA_MEASUREMENT_IDinBaseLayout.astro - Google AdSense - Replace
ca-pub-XXXXXXXXXXinBaseLayout.astro
- Fork the repository
- Create a feature branch
- Add your tutorials
- Submit a pull request
This project is open source and available under the MIT License.