Giter Club home page Giter Club logo

egghead-personal-blog-astro's Introduction

Build a Full Stack Blog with Astro

๐Ÿ‘‹ Welcome

Welcome to the "Build a Full Stack Blog with Astro" course! ๐Ÿ‘Œ

In this course we're going to learn Astro by building a fully functional personal blog which we can actually use as our personal developer portfolio at the end. We're going to learn about:

  • routing,
  • styling,
  • shared layouts,
  • Astro Islands,
  • assets,
  • content collections,
  • pagination,
  • SEO,
  • generating a sitemap,
  • generating an RSS feed,
  • deploying Astro on Vercel,
  • deploying Astro on fly.io,
  • dockerizing Astro,
  • automatic deployments with GitHub Actions,
  • using databases,
  • creating custom API Endpoints,
  • and even dynamically generating OG images for social sharing!

Whew! That's a lot! I really hope you like this course, and have fun learning ๐Ÿ’–

๐Ÿค  Instructor

My name is Lazar Nikolov and I'm a full stack developer from North Macedonia ๐Ÿ‡ฒ๐Ÿ‡ฐ, based in Canada ๐Ÿ‡จ๐Ÿ‡ฆ!

My first interaction with programming was back in 2011, while I was still in high school. I was learning HTML and CSS on my own, sometimes during the classes (don't tell my teachers ๐Ÿคซ). Throughout my career I've been developing mobile apps, TV apps, desktop apps, but I've found my sweet spot as a Full-stack Engineer working with the React ecosystem.

I'm a super friendly guy, so if you have any questions, or just want to talk to me, the best place to reach me is on Twitter at @NikolovLazar.

๐ŸŽฏ Goal

After finishing this course, you'll have both basic and advanced skills to build awesome websites using Astro.

๐Ÿš… Skills

You are going learn how to architecture our front-end using pages, layouts, and components, which is a skill you can apply in every front-end project in your future.

If you haven't worked with TypeScript before, that's another skill that you'll learn and also apply in other frameworks and technologies.

You'll also learn how SEO, sitemaps and RSS feeds work, how to generate dynamic OG images, how to use Docker to dockerize websites and deploy them on any cloud platform that supports containers, and how to setup DrizzleORM with an SQLite database.

These are all generic skills that you can apply in other frameworks aside from Astro.

๐Ÿšง Prerequisites

Before starting this course, you should be comfortable working with HTML, CSS, TypeScript, and understand basic Web Dev concepts.

Here are some egghead.io courses that can bring you up to speed:

๐Ÿ’ฝ Local Setup

Make sure you have Node.js, and Visual Studio Code installed on your machine.

Each lesson is its own branch in this repo. To get started, run npm install at the root (this installs all of the dependencies) and then npm run dev to start the local development server.

๐Ÿ”ข Lessons list

  • Lesson 01 - Intro: Build a Full Stack Blog with Astro
  • Lesson 02 - Create an Astro Project and Set up the Dev Environment
  • Lesson 03 - Style Astro Pages with Many Different Options
  • Lesson 04 - Create an Astro Component for Links
  • Lesson 05 - Render Images to Pages with Astros Static Serving and Static Assets
  • Lesson 06 - Create Astro Content Collections with Zod for a Typesafe Blog
  • Lesson 07 - Render an Astro Blog Post Page with getStaticPaths
  • Lesson 08 - Implement Pagination in a Dynamic Astro Index Page with getStaticPaths and paginate
  • Lesson 09 - Create Static Pages in Astro Using File Based Routing
  • Lesson 10 - Create and Apply a Layout to Astro Pages
  • Lesson 11 - Implement SEO in an Astro Website with astro-seo
  • Lesson 12 - Generate a Sitemap in Astro with the sitemap Integration
  • Lesson 13 - Generate an RSS Feed for an Astro Blog with @astrojs/rss
  • Lesson 14 - Deploy a Static Astro Site on Vercel
  • Lesson 15 - Milestone Recap: Build a Full Stack Blog with Astro
  • Lesson 16 - Add Interactive React Components to a Static Astro Page with Astro Islands
  • Lesson 17 - Refactor a React Astro Island to Vanilla JS to Ship Less JavaScript
  • Lesson 18 - Create a fly.io Account and Prepare a Project for Deployment
  • Lesson 19 - Dockerize a Server-side Rendered (SSR) Astro Blog and Deploy to Fly.io
  • Lesson 20 - Create a GitHub Action Configuration to Automatic Deploy an Astro Blog
  • Lesson 21 - Implement Drizzle ORM for Development and Deploy to a Fly.io Volume
  • Lesson 22 - Create Astro API Endpoints to Get and Update Database Records using Drizzle ORM
  • Lesson 23 - Implement Dynamic OG Image Generation with Astro API Routes and Satori

โค๏ธ Contributors

PRs are always welcome. If you find a typo, or have any ideas on how to improve the content, feel free to submit a PR. Let's make learning Astro better for everyone!

egghead-personal-blog-astro's People

Contributors

astrobot-houston avatar nikolovlazar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

egghead-personal-blog-astro's Issues

Question for github workflow for PR review

Hi,

Thanks for the great tutorial. I have a question during the lesson and I am not sure where I can ask, so I am leaving it in the issues. In Create a GitHub Action Configuration to Automatic Deploy an Astro Blog page at the end, you said like this:

[8:56] If you'd also like to define a preview deployment for every PR before it gets merged, fly dot IO has already created a different action for that. To use this action, duplicate the fly dot YAML file in your GitHub workflows directory, change its trigger to pull requests instead of push and use the super fly slash fly PR review apps action in place of the last command in the deploy step.

If you duplicate fly.yml file, what should be the new preview workflow file name? Can it be any name like fly_preview.yml or should it be fly.yml and remove push workflow?

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.