Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Moving to Astro Experimental Assets #1588

Merged
merged 5 commits into from Jun 15, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
8 changes: 7 additions & 1 deletion astro.config.ts
@@ -1,4 +1,4 @@
import { defineConfig } from "astro/config";
import { defineConfig, sharpImageService } from "astro/config";

import mdx from "@astrojs/mdx";
import preact from "@astrojs/preact";
Expand All @@ -12,6 +12,12 @@ import rehypeSlug from 'rehype-slug'
export default defineConfig({
site: "https://www.joshfinnie.com/",
trailingSlash: "always",
experimental: {
assets: true,
},
image: {
service: sharpImageService(),
},
integrations: [mdx(), preact(), sitemap(), tailwind({
config: {
path: "./tailwind.config.cjs"
Expand Down
Binary file removed public/assets/blog/12weekyear.webp
Binary file not shown.
Binary file removed public/assets/blog/2017.webp
Binary file not shown.
Binary file removed public/assets/blog/2018.webp
Binary file not shown.
Binary file removed public/assets/blog/IE6-blocked.webp
Binary file not shown.
Binary file removed public/assets/blog/advent.webp
Binary file not shown.
Binary file removed public/assets/blog/arrow.webp
Binary file not shown.
Binary file removed public/assets/blog/astro.webp
Binary file not shown.
Binary file removed public/assets/blog/bad_ux.webp
Binary file not shown.
Binary file removed public/assets/blog/beerledge-2014-stats.webp
Binary file not shown.
Binary file removed public/assets/blog/bootstrap_example.webp
Binary file not shown.
Binary file removed public/assets/blog/bootstrapped-hello-react.webp
Binary file not shown.
Binary file removed public/assets/blog/cabin.webp
Binary file not shown.
Binary file removed public/assets/blog/calendar.webp
Binary file not shown.
Binary file removed public/assets/blog/chart.webp
Binary file not shown.
Binary file removed public/assets/blog/chrome.webp
Binary file not shown.
Binary file removed public/assets/blog/coffee.webp
Binary file not shown.
Binary file removed public/assets/blog/command-center.webp
Binary file not shown.
Binary file removed public/assets/blog/construction.webp
Binary file not shown.
Binary file removed public/assets/blog/cssed-jobs-component.webp
Binary file not shown.
Binary file removed public/assets/blog/filled-out-job-component.webp
Binary file not shown.
Binary file removed public/assets/blog/fish.webp
Binary file not shown.
Binary file removed public/assets/blog/fog.webp
Binary file not shown.
Binary file removed public/assets/blog/grave.webp
Binary file not shown.
Binary file removed public/assets/blog/hacktoberfest-2018.webp
Binary file not shown.
Binary file removed public/assets/blog/hacktoberfest-2019.webp
Binary file not shown.
Binary file removed public/assets/blog/hello-express.webp
Binary file not shown.
Binary file removed public/assets/blog/hello-react-component.webp
Binary file not shown.
Binary file removed public/assets/blog/hello-react.webp
Binary file not shown.
Binary file removed public/assets/blog/hello-world-react.webp
Binary file not shown.
Binary file removed public/assets/blog/hello-world.webp
Binary file not shown.
Binary file removed public/assets/blog/homepage-screenshot.webp
Binary file not shown.
Binary file removed public/assets/blog/introducing-astro.webp
Binary file not shown.
Binary file removed public/assets/blog/iterm_tmux_setup.webp
Binary file not shown.
Binary file removed public/assets/blog/jobbing.webp
Binary file not shown.
Binary file removed public/assets/blog/joshfinnie-2014-stats.webp
Binary file not shown.
Binary file removed public/assets/blog/mask.webp
Binary file not shown.
Binary file removed public/assets/blog/math.webp
Binary file not shown.
Binary file removed public/assets/blog/new-social-icons.webp
Binary file not shown.
Binary file removed public/assets/blog/old-books.webp
Binary file not shown.
Binary file removed public/assets/blog/padlock.webp
Binary file not shown.
Binary file removed public/assets/blog/python.webp
Binary file not shown.
Binary file removed public/assets/blog/reflection.webp
Binary file not shown.
Binary file removed public/assets/blog/rust-react-device-analytics.webp
Binary file not shown.
Binary file removed public/assets/blog/rust-stack.webp
Binary file not shown.
Binary file removed public/assets/blog/rusty-react-big-comp.webp
Binary file not shown.
Binary file removed public/assets/blog/rusty-react-hello-name.webp
Binary file not shown.
Binary file removed public/assets/blog/snake.webp
Binary file not shown.
Binary file removed public/assets/blog/sorting.webp
Binary file not shown.
Binary file removed public/assets/blog/stars.webp
Binary file not shown.
Binary file removed public/assets/blog/truffles.webp
Binary file not shown.
Binary file removed public/assets/blog/twitter.webp
Binary file not shown.
Binary file removed public/assets/blog/typewriter.webp
Binary file not shown.
Binary file removed public/assets/blog/web-assembly-support.webp
Binary file not shown.
Binary file removed public/assets/blog/wtf-recruiters-part-2.webp
Binary file not shown.
Binary file removed public/assets/josh.webp
Binary file not shown.
Binary file removed public/assets/projects/beerledge-settings.webp
Binary file not shown.
Binary file removed public/assets/projects/beerledge.webp
Binary file not shown.
Binary file removed public/assets/projects/cubecobra-cube-list.webp
Binary file not shown.
Binary file removed public/assets/projects/cubecobra.webp
Binary file not shown.
Binary file removed public/assets/projects/hoitmc.webp
Binary file not shown.
Binary file removed public/assets/projects/pbsorg.webp
Binary file not shown.
Binary file removed public/assets/projects/pushfile.webp
Binary file not shown.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
Binary file added src/assets/icons/angularjs.png
Binary file added src/assets/icons/aws.png
Binary file added src/assets/icons/bootstrap.png
Binary file added src/assets/icons/digital-ocean.png
Binary file added src/assets/icons/django.png
Binary file added src/assets/icons/foursquare.png
Binary file added src/assets/icons/github.png
Binary file added src/assets/icons/golang.png
Binary file added src/assets/icons/google.png
Binary file added src/assets/icons/nodejs.png
Binary file added src/assets/icons/python.png
Binary file added src/assets/icons/reactjs.png
Binary file added src/assets/icons/sass.png
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
12 changes: 7 additions & 5 deletions src/components/AlsoLike.astro
@@ -1,5 +1,5 @@
---
import { collectionEntry, getCollection } from 'astro:content';
import { CollectionEntry, getCollection } from 'astro:content';

import BlogPostPreviewLite from './BlogPostPreviewLite.astro'

Expand Down Expand Up @@ -28,7 +28,9 @@ const posts = allPosts

---

<div class="prose dark:prose-invert mt-5 p-5 rounded-lg max-w-none bg-gray-200 dark:bg-gray-900">
<h2 class="text-center">You might also enjoy?</h2>
{posts.map((post) => <BlogPostPreviewLite {post} />)}
</div>
{posts.length ?
<div class="prose dark:prose-invert mt-5 p-5 rounded-lg max-w-none bg-gray-200 dark:bg-gray-900">
<h2 class="text-center">You might also enjoy?</h2>
{posts.map((post) => <BlogPostPreviewLite {post} />)}
</div> : <></>
}
5 changes: 4 additions & 1 deletion src/components/BlogPost.astro
@@ -1,15 +1,18 @@
---
import { Image } from "astro:assets";

import AlsoLike from "./AlsoLike.astro";
import Date from "./Date.astro";
import Tag from "./Tags.astro";
import Unsplash from "./Unsplash.astro";
import HeroImage from './BlogPostHeroImage.astro';

const { title, date, tags, slug, heroImage, unsplash, unsplashURL } = Astro.props;
---

<article>
<header>
{heroImage && <img class="rounded-md" src={heroImage.replace("jpg", "webp")} alt={title} />}
<HeroImage title={title} heroImage={heroImage} />
<div id="main-content" class="flex flex-col items-center mb-10 max-w-none prose dark:prose-invert">
<h1 class="font-bold text-4xl mb-5 mt-5" set:html={title}></h1>
<Date {date} />
Expand Down
7 changes: 7 additions & 0 deletions src/components/BlogPostHeroImage.astro
@@ -0,0 +1,7 @@
---
import { Image } from 'astro:assets';

const { title, heroImage } = Astro.props;
---

{heroImage && <Image class="rounded-md" src={heroImage} alt={title} width="780" />}
4 changes: 3 additions & 1 deletion src/components/BlogPostPreview.astro
@@ -1,5 +1,7 @@
---
import { Image } from "astro:assets";
import Date from "./Date.astro";
import HeroImage from './BlogPostHeroImage.astro';

const { post } = Astro.props;
---
Expand All @@ -15,7 +17,7 @@ const { post } = Astro.props;
{post.data.heroImage ?
<>
<a href={`/blog/${post.slug}/`} title={post.data.title}>
<img src={post.data.heroImage.replace("jpg", "webp")} alt={post.data.title} class="rounded-md" />
<HeroImage title={post.data.title} heroImage={post.data.heroImage} />
</a>
</> :
<>
Expand Down
7 changes: 6 additions & 1 deletion src/components/Hero.astro
@@ -1,5 +1,10 @@
---
import { Image } from "astro:assets";

import headshot from "@assets/josh.jpg";
---
<div id="main-content" class="flex flex-col sm:flex-row my-10 items-center bg-gray-200 dark:bg-gray-900 dark:text-white p-5 shadow-lg rounded-lg">
<img class="rounded-lg flex-none w-1/4 h-1/4" src="/assets/josh.webp" alt="Josh Finnie Headshot" />
<Image class="rounded-lg flex-none w-1/4 h-1/4" src={headshot} alt="Josh Finnie Headshot" width="175" />
<div class="flex-grow">
<h1 class="font-bold text-2xl my-5 ml-5">Hello, I am Josh!</h1>
<p class="prose max-w-none ml-5 dark:prose-invert">
Expand Down
4 changes: 3 additions & 1 deletion src/components/ProjectHero.astro
@@ -1,9 +1,11 @@
---
import { Image } from "astro:assets";

const {title, heroImage, summary, technologies} = Astro.props;
---
<h1 class="font-bold text-3xl mb-10 mt-5 dark:text-white">{title}</h1>
<hr class="my-2">
{ heroImage && <img src={heroImage} alt={title} /> }
{ heroImage && <Image src={heroImage} alt={title} /> }
<p class="dark:text-white">{ summary }</p>
<div class="mt-5 flex gap-5 justify-center items-center dark:text-white">
<span class="font-bold">Technologies Used:</span>
Expand Down
Expand Up @@ -9,6 +9,9 @@ slug: "2014-in-review"
expires: false
---

import beerLedge from '@assets/blog/beerledge-2014-stats.png';
import joshFinnie from '@assets/blog/joshfinnie-2014-stats.png';

Better late than never, I wanted to give a personal 2014 Year in Review.
And what a year this has been!
I changed jobs, got married, double-downed on my open source efforts...
Expand All @@ -22,11 +25,11 @@ I hope this becomes a place for reflection in the upcoming years, so here it goe
- 1 new wife. I was finally able to marry the woman of my dreams after 10 years of being together and 4 years of engagement! Woot!
- Pretty good adoption of [BeerLedge](https://www.beerledge.com). Even though I am hoping for 2015 to be the breakout year for BeerLedge, I was excited by the improvements it was.

<img width="100%" loading="lazy" src="/assets/blog/beerledge-2014-stats.png" alt="beerledge.com analytics stats" />
<img src={beerLedge.src} alt="beerledge.com analytics stats" />

- Similarly good adoption of this site. My [goal](/blog/new-years-resolutions-for-2015-and-2014-review/) is to blog a lot more, so hopefully that number goes up drastically!

<img width="100%" loading="lazy" src="/assets/blog/joshfinnie-2014-stats.png" alt="joshfinnie.com analytics stats" />
<img src={joshFinnie.src} alt="joshfinnie.com analytics stats" />

- I had about 750 commits to open-source projects in 2014 with another 400 commits to private repos on GitHub.
- I gave [5 talks](/talks/) in 2014.
Expand Down
2 changes: 1 addition & 1 deletion src/content/blog/a-command-line-application-in-rust.md
Expand Up @@ -6,7 +6,7 @@ tags:
- "command-line"
- "tutorial"
slug: "a-command-line-application-in-rust"
heroImage: "/assets/blog/command-center.jpg"
heroImage: "@assets/blog/command-center.jpg"
unsplash: "Ugi K."
unsplashURL: "wizzyfx"
description: "In this blog post we start from scratch and write a full command-line application written in Rust. We use Clap for argument parsing, and Reqwest for hitting the API."
Expand Down
Expand Up @@ -8,11 +8,12 @@ tags:
slug: "banning-ie6"
expires: true
---

<img width="100%" loading="lazy" src="/assets/blog/IE6-blocked.png" alt="IE6 is blocked" />
import ie6Blocked from '@assets/blog/IE6-blocked.png';

I really don’t understand why people have decided that I am not allowed to see their website. Sure, I understand that IE6 is overly out-of-date, but there has to be a reason that I am running it. For example, my office has not upgraded yet; so because of that I am not allowed to see your site?

<img src={ie6Blocked.src} alt="IE6 is blocked" />

Given the fact that IE in general has a lot of little hacks required to make a website look good, I come to your websites with an understanding that my view of your website might not be ideal. I even understand that I might not have all the functionality that I should given how IE reacts to javascript and your beautiful ajax-y stuff. But I like content. I don’t run javascript; I don’t run flash. But you don’t have a problem with that. Just that I run IE6.

Stop with this trend of blocking IE6 and allow people, who most likely understand that they are running an out-of-date browser but can’t do anything about it, to read the content that you worked so hard to write! Please?
2 changes: 1 addition & 1 deletion src/content/blog/basic-python-dockerfile.md
Expand Up @@ -7,7 +7,7 @@ tags:
- "open-source"
- "tutorial"
slug: "my-basic-python-dockerfile"
heroImage: "/assets/blog/python.jpg"
heroImage: "@assets/blog/python.jpg"
expires: true
unsplash: "Marius Masalar"
unsplashURL: "marius"
Expand Down
Expand Up @@ -7,16 +7,18 @@ tags:
- "book-review"
- "self-help"
slug: "book-review-the-12-week-year"
heroImage: "/assets/blog/calendar.jpg"
heroImage: "@assets/blog/calendar.jpg"
unsplash: "Debby Hudson"
unsplashURL: "hudsoncrafted"
---

import bookCover from '@assets/blog/12weekyear.jpg'

As October approachs I usually start thinking of my New Year resolutions. However, a few months ago I read [The 12 Week Year](https://www.goodreads.com/book/show/10009377-the-12-week-year) and it changed my thoughts on resolutions. Below are some of my thoughts on this book and how I plan on integrating the lessons learned.

## Review

<img src="/assets/blog/12weekyear.jpg" alt="The 12 Week Year" class="mx-auto"/>
<img src={bookCover.src} alt="The 12 Week Year" class="mx-auto"/>

The 12 Week Year is a mindset change where one seeks quarterly goal setting as a solution to the drawbacks of annual resolutions. It’s right there in the title. Take your annual New Year resolutions and break them down into 4 “12 week years” to give a larger sense of urgency to your goals. I have had my fair share of failures among my New Year resolutions, so this book spoke to my issues! When you break your goals down to 12 weeks, you don’t have the ability to become complacent with your goals. Time is short; you need to constantly work on completing your goals in the given 12 weeks. We’ve all been there, we set our New Year resolutions and then forget about them until October. You race to complete some of them, but also realize that many of those resolutions were scoped impossibly large. You have destined yourself for failure. But when you scope your goals to 12 weeks, every passing day creates a sense of urgency to complete what you’ve set out to do.

Expand Down
2 changes: 1 addition & 1 deletion src/content/blog/chrome-extensions-i-use-in-2022.md
Expand Up @@ -6,7 +6,7 @@ tags:
- "extensions"
- "setup"
slug: "chrome-extensions-i-use-in-2022"
heroImage: "/assets/blog/chrome.webp"
heroImage: "@assets/blog/chrome.jpg"
unsplash: "Lucian Alexe"
unsplashURL: "lucian_alexe"
description: "Showing off my top Chrome extensions for 2022."
Expand Down
2 changes: 1 addition & 1 deletion src/content/blog/creating-a-also-enjoy-component.md
Expand Up @@ -7,7 +7,7 @@ tags:
- "tutorial"
- "web-development"
slug: "creating-a-similar-posts-component-in-astrojs"
heroImage: "/assets/blog/reflection.jpg"
heroImage: "@assets/blog/reflection.jpg"
unsplash: "Tim Stief"
unsplashURL: "timstief"
description: "This blog post shares my Astro.js component to share similar posts to readers. It's nice, simple and gives an extra layer of discoverability to my readers!"
Expand Down
Expand Up @@ -7,7 +7,7 @@ tags:
- "web design"
- "lesson"
slug: "current-thoughts-on-mobile-website-support"
heroImage: "/assets/blog/chart.jpg"
heroImage: "@assets/blog/chart.jpg"
unsplash: "Jess Bailey"
unsplashURL: "jessbaileydesigns"
description: "I recently had a viral blog post and I wanted to share a surprising discovery of the current state of mobile website support! Over the course of the month, nearly 50% of my visitors were using a mobile browswer of some sort. What does this mean for me going forward?"
Expand Down
Expand Up @@ -10,6 +10,9 @@ slug: "font-awesome-is-awesome"
expires: true
---

import homepageScreenshot from '@assets/blog/homepage-screenshot.png';
import newSocialIcons from '@assets/blog/new-social-icons.png';

## Help a Programmer Out

I do not call myself a designer by any stretch of the imagination. And this site is a testiment to that fact. However, I do try and make it somewhat pretty and with [Twitter Bootstrap](http://getbootstrap.com/) it is easier than ever. Today I made a little change to my site using another awesome library, [Font Awesome](http://fontawesome.io/). From my understanding, this is a iconic font designed for Bootstrap. Perfect.
Expand All @@ -18,7 +21,7 @@ I do not call myself a designer by any stretch of the imagination. And this site

The change is small, but using Font Awesome I was able to get rid of the 8 images that were used on my homepage.

<img width="100%" loading="lazy" src="/assets/blog/homepage-screenshot.png" alt="Fontawesome test screenshot" />
<img src={homepageScreenshot.src} alt="Fontawesome test screenshot" />

The four awesome social network icons were provided by [Neil Orange Peel](http://www.neilorangepeel.com/free-social-icons/), but with images comes a lot of weight to your network connection. Each icon has two states, its normal state and a hover state. This means that there are 8 images for this simple visual representation.

Expand Down Expand Up @@ -71,7 +74,7 @@ This gives me all the power granted with using Font Awesome. Reading through the

This code gives me a very nice copy of the icons I was using before:

<img width="100%" loading="lazy" src="/assets/blog/new-social-icons.png" alt="Fontawesom social icon example" />
<img src={newSocialIcons.src} alt="Fontawesom social icon example" />

They are very similar to what I had, except of course the different icons for [Github](http://github.com). This is unfortunate since I kind of really enjoyed Niel Orange Peel's version better than Font Awesome's version. Oh well.

Expand Down
Expand Up @@ -6,7 +6,7 @@ tags:
- "docker"
- "tutorial"
slug: "getting-truffle-and-ganache-working-with-docker"
heroImage: "/assets/blog/truffles.jpg"
heroImage: "@assets/blog/truffles.jpg"
unsplash: "Jessica Loaiza"
unsplashURL: "jessicaloaizar"
description: "I recently had an issue installing Truffle locally on my computer. There was an issue with my version of Node.js or NPM... Instead of messing up or polluting my global NPM installs further, I took to Docker to get Truffle and Ganache working for me. This post details that journey."
Expand Down
2 changes: 1 addition & 1 deletion src/content/blog/hacktoberfest-is-awesome.md
Expand Up @@ -6,7 +6,7 @@ tags:
- "hacktoberfest"
- "coding"
slug: "hacktoberfest-is-awesome-2"
heroImage: "/assets/blog/hacktoberfest-2019.jpg"
heroImage: "@assets/blog/hacktoberfest-2019.jpg"
expires: false
---

Expand Down
2 changes: 1 addition & 1 deletion src/content/blog/i_am_still_here.md
Expand Up @@ -6,7 +6,7 @@ tags:
- "update"
slug: "still-here"
expires: true
heroImage: "/assets/blog/fog.jpg"
heroImage: "@assets/blog/fog.jpg"
unsplash: "Nicholas Kampouris"
---

Expand Down
2 changes: 1 addition & 1 deletion src/content/blog/isort-setup.md
Expand Up @@ -7,7 +7,7 @@ tags:
- "coding"
- "code-review"
slug: "my-basic-isort-configuration"
heroImage: "/assets/blog/sorting.jpg"
heroImage: "@assets/blog/sorting.jpg"
expires: true
unsplash: "Sophie Elvis"
unsplashURL: "thetechomaid"
Expand Down
7 changes: 3 additions & 4 deletions src/content/blog/job-search-journey.mdx
Expand Up @@ -7,13 +7,13 @@ tags:
- "news"
- "recruiters"
slug: "my-2023-job-search-journey"
heroImage: "/assets/blog/jobbing.jpg"
heroImage: "@assets/blog/jobbing.jpg"
unsplash: "Andrew Neel"
unsplashURL: "andrewtneel"
description: "A brief review of my job search journey in the 2023 market. I applied to over 150 jobs and it was exhausting!"
---

import sankey from './svg/job-sankey.svg';
import sankey from '@assets/svg/job-sankey.svg';

The job market for software engineers in 2023 will be one to remember.
Not only are we witnessing a record number of large software companies like Google and Facebook laying off tens of percentages of their staff, but we are also witnessing a drying up of access to monetary resources, leading startups to experience slow growth or downsize.
Expand Down Expand Up @@ -147,8 +147,7 @@ I am still getting some rejections trickling in, so the "Never Heard Anything" c

### My Journey Visually

<img src={sankey} />

<img src={sankey.src} alt="Sankey diagram of job search journey" />

## An Aside

Expand Down
2 changes: 1 addition & 1 deletion src/content/blog/latex-through-docker.md
Expand Up @@ -9,7 +9,7 @@ tags:
- "tutorial"
- "projects"
slug: "latex-through-docker"
heroImage: "/assets/blog/math.jpg"
heroImage: "@assets/blog/math.jpg"
expires: true
unsplash: "Roman Mager"
unsplashURL: "roman_lazygeek"
Expand Down
2 changes: 1 addition & 1 deletion src/content/blog/leaving-twitter-for-mastodon.md
Expand Up @@ -7,7 +7,7 @@ tags:
- "twitter"
- "mastodon"
slug: "leaving-twitter-for-mastodon"
heroImage: "/assets/blog/twitter.jpg"
heroImage: "@assets/blog/twitter.jpg"
unsplash: "Gauravdeep Singh Bansal"
unsplashURL: "gauravdsb"
description: "Twitter has had a rough couple of weeks since Elon Musk took over. I feel like it is time this tweeter flew the coop and found a new place to build a community. This post talks briefly about what Mastodon is and how I set myself up for success."
Expand Down
Expand Up @@ -7,7 +7,7 @@ tags:
- "fish shell"
- "starship"
slug: "moving-from-oh-my-zsh-to-starship-and-fish-shell"
heroImage: "/assets/blog/fish.jpg"
heroImage: "@assets/blog/fish.jpg"
unsplash: "Milos Prelevic"
unsplashURL: "prelevicm"
description: "I changed my prompt configurator from Oh-My-Zsh to Starship.rs and with that changed my shell to Fish. This blog post tells the story of my upgrade and the pitfalls and benefits of moving to Fish Shell."
Expand Down
Expand Up @@ -6,12 +6,14 @@ tags:
- "react.js"
- "tutorial"
slug: "my-2020-react-startup-process"
heroImage: "/assets/blog/typewriter.jpg"
heroImage: "@assets/blog/typewriter.jpg"
expires: true
unsplash: "RetroSuppy"
unsplashURL: "retrosupply"
---

import helloWorld from '@assets/blog/hello-world.png';

Over the past couple of years I have narrowed my frontend workflow to React with Typescript. There are a lot of frameworks that are fighting for the top spot of one's frontend workflow. In the end, I am most comfortable with React for rapid development so it is the one I will focus on here. In this blog post I will walk through my 2020 React workflow. This post will help you get up and running with the same setup that I am currently using.

## Installing React with Typescript
Expand All @@ -26,7 +28,7 @@ $ npm start

This is a screenshot of what see with when we visit http://localhost:3000 after running the above commands.

<img width="100%" loading='lazy' src='/assets/blog/hello-world.png' alt="React's Hello World!" />
<img src={helloWorld.src} alt="React's Hello World!" />

## Installing ESLint/Prettier

Expand Down
2 changes: 1 addition & 1 deletion src/content/blog/my-2021-books-in-review.md
Expand Up @@ -6,7 +6,7 @@ tags:
- "books"
- "book-review"
slug: "my-2021-books-in-review"
heroImage: "/assets/blog/old-books.jpg"
heroImage: "@assets/blog/old-books.jpg"
unsplash: "Chris Lawton"
unsplashURL: "chrislawton"
description: "This is a review of the books I read in 2021 and which ones I'd recommend giving a try."
Expand Down
2 changes: 1 addition & 1 deletion src/content/blog/my-switch-from-gatsby-to-astro.md
Expand Up @@ -10,7 +10,7 @@ tags:
slug: "my-switch-from-gatsby-to-astro"
unsplashURL: denisdegioanni
unsplash: Denis Degioanni
heroImage: "/assets/blog/stars.jpg"
heroImage: "@assets/blog/stars.jpg"
---

A while ago I switched from using [Pelican](https://blog.getpelican.com/) (a static site generator written in Python) to [Gatsby](https://www.gatsbyjs.com/). I was drawn to the up-and-coming technology Gatsby promised. I also thought it was a good time to refresh my site with updated CSS and user experience. The conversion to Gatsby was a success. The documentation built by the Gatsby team was top-notch and I loved my experience with it. Yet, there was always an underlying feeling that the infrastructure was complex and overweight. Earlier this year, we had a team lunch-and-learn on [Astro](https://astro.build/), and the pitch spoke to me.
Expand Down
2 changes: 1 addition & 1 deletion src/content/blog/my_coffee_setup.md
Expand Up @@ -6,7 +6,7 @@ tags:
- "non-tech"
- "setup"
slug: "my-coffee-setup"
heroImage: "/assets/blog/coffee.jpg"
heroImage: "@assets/blog/coffee.jpg"
expires: false
unsplash: "Mike Kenneally"
---
Expand Down
Expand Up @@ -7,7 +7,7 @@ tags:
- "open-source"
- "programming"
slug: "new-years-resolutions-for-2017-and-2016-review"
heroImage: "/assets/blog/2017.jpg"
heroImage: "@assets/blog/2017.jpg"
expires: false
unsplash: "freestock.org"
---
Expand Down