An open API service indexing awesome lists of open source software.

https://github.com/gndx/ev0-astro-theme

EV0 Astro Theme is a free and open-source serverless blog template, built with Astro, Tailwind CSS, and TypeScript.
https://github.com/gndx/ev0-astro-theme

astrojs blog tailwindcss typescript

Last synced: about 1 year ago
JSON representation

EV0 Astro Theme is a free and open-source serverless blog template, built with Astro, Tailwind CSS, and TypeScript.

Awesome Lists containing this project

README

          

# πŸš€ EV0 Astro Theme - Blog Template

EV0 Astro Theme is a free and open-source serverless blog template, built with Astro, Tailwind CSS, and TypeScript. It serves as a starting point for creating your personal portfolio website or showcasing your projects online. The template is open-source and released under the MIT license, meaning you are free to use, modify, and distribute it for personal or commercial purposes.


EV0 Astro Theme

Built with Astro

## πŸ”₯ DEMOS

- [EV0 Astro Theme - DEMO](https://ev0.gndx.dev/)
- [GNDX - My Personal Blog (ES)](https://gndx.dev)

[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/gndx/ev0-astro-theme#NODE_VERSION=18)

## πŸ”₯ Features

- βœ… Minimal styling (Tailwind CSS)
- βœ… 100/100 Lighthouse performance
- βœ… SEO-friendly with canonical URLs and OpenGraph data
- βœ… Dark Mode
- βœ… Sitemap support
- βœ… RSS Feed support
- βœ… Markdown & MDX support
- βœ… View Transitions
- βœ… PWA-ready
- βœ… Fully responsive
- βœ… Robots.txt & Humans.txt
- βœ… TypeScript support
- βœ… Syntax highlighting
- βœ… YouTube Integration
- βœ… CLI for adding new posts

## βš“ Lighthouse Score - PWA Ready


Lighthouse Score

## πŸ‘¨πŸ»β€πŸ’» VIP Support (optional) $25
Includes personalized assistance via messages/emails, customization of up to 1 feature, assistance for implementation in your hosting and deployment, and advice for future changes. [Buy VIP Support](https://gndx.gumroad.com/l/zwaeqz).

## πŸš€ Getting Started

Clone this repository to your local machine using Git.

```scheme
git clone https://github.com/gndx/ev0-astro-theme.git your-project-name
```

| Command | Action |
| :---------------- | :------------------------------------------- |
| `npm install` | Installs dependencies |
| `npm run dev` | Starts local dev server at `localhost:4321` |
| `npm run build` | Build your production site to `./dist/` |
| `npm run preview` | Preview your build locally, before deploying |
| `npm run youtube` | Fetches the Latest YouTube Channel Videos |
| `npm run newpost` | Generate a New Blogpost Markdown Entry |

Edit the HTML files in the `src/pages` directory to add your projects, experiences, and personal information.

## πŸ“ Configuration Blog

To configure your blog, edit the `src/config/config.json` file. This file contains the following options:

```scheme
{
"site": {
"title": "EV0 Astro Theme",
"base_url": "https://ev0.gndx.dev/",
"base_path": "/",
"favicon": "/favicon.png",
"logo": "https://s3.amazonaws.com/gndx.dev/ev0-astro-logo.png",
"lang": "en",
"description": "EV0 is a free and open-source serverless blog template, built with Astro, Tailwind CSS, and TypeScript.",
"pageSize": 6
},
"features": {
"youtube": true
},
"metadata": {
"meta_author": "Oscar Barajas @gndx",
"meta_description": "EV0 is a free and open-source serverless blog template, built with Astro, Tailwind CSS, and TypeScript."
},
"author": {
"name": "Oscar Barajas Tavares @gndx",
"avatar": "https://s3.amazonaws.com/gndx.dev/gndx-astro-avatar.png",
"bio": "EV0 is a free and open-source serverless blog template, built with Astro, Tailwind CSS, and TypeScript."
}
}
```

The menu is configured in the `src/config/menu.json` file. This file contains the following options:

```scheme
[
{
"name": "Home",
"url": "/"
},
{
"name": "Blog",
"url": "/blog"
},
]
```

Social networks are configured in the `src/config/social.json` file. This file contains the following options:

```scheme
{
"name": "Instagram",
"url": "https://instagram.com/gndx"
"svg": "...."
}
```

## πŸŽ₯ YouTube Integration

To integrate your YouTube channel, you need to create a new file called `.env` in the root directory of your project. Then add the `CHANNEL_ID` and `API_KEY` to get the latest videos from your YouTube channel in `src/config/youtube.json`.

```scheme
npm run youtube
```

Your YouTube API is not used in production.

Requires an API KEY for YouTube API V3 - [Google Console](https://console.cloud.google.com/)

You can disable the youtube integration by modifying the `src/config/config.json`.

```json
"features": {
"youtube": false
},
```

## πŸ“ Adding New Posts

To add a new post, run the following command:

```scheme
npm run newpost
```

Follow the instructions and this will generate a new markdown file in the `src/content/blog` directory. Edit the file to add your post content.

## πŸ“‚ Project Structure

```
/
β”œβ”€β”€ public/
β”‚ └── favicons/
β”‚ └── fonts/
β”‚ └── blog-placeholder.jpg
β”‚ └── favicon.png
β”‚ └── humans.txt
β”œβ”€β”€ scripts/
β”‚ └── youtube.cjs
β”œβ”€β”€ src/
β”‚ β”œβ”€β”€ components/
β”‚ β”œβ”€β”€ config/
β”‚ β”œβ”€β”€ content/
β”‚ β”œβ”€β”€ layouts/
β”‚ └── pages/
β”‚ └── styles/
β”‚ └── env.d.ts
└── package.json
└── astro.config.mjs
└── tailwind.config.js
└── tsconfig.json
└── .gitignore
```

## πŸ’» Contributing

Contributions to this project are welcome. If you find a bug or have a suggestion for improvement, please open an issue or submit a pull request.



Oscar Barajas Tavares
Oscar Barajas Tavares

πŸ“–
Jhon Achata Limachi
Jhon Achata Limachi

πŸ› πŸ€”
Erasmo HernΓ‘ndez
Erasmo HernΓ‘ndez

πŸ›
Francisco Araujo
Francisco Araujo

🎨 πŸ›
Jhoandris BarΓ³n
Jhoandris BarΓ³n

πŸ›

## πŸ“ƒ License

This project is licensed under the MIT License. See the `LICENSE` file for details.

## β˜• Support

If this project helped you learn something new, or if you're feeling particularly generous, you can buy me a coffee. It's greatly appreciated! 😊 [GitHub Sponsors](https://github.com/sponsors/gndx)