wonderfulfrog.com/src/posts/2020-09-13-whats-next.md
2024-02-26 16:28:23 -08:00

48 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Whats Next?
excerpt: From one framework to another.
tags: ["nextjs", "gatsbyjs", "tailwind"]
---
This site is now powered by NextJS. This is the site rebuild I have been talking about for some time, but it didnt turn out the way I was planning.
## Why NextJS?
Short answer: because I wanted to learn it.
Long answer: I wasnt completely satisfied with the GatsbyJS ecosystem. It lead me to learn GraphQL and a little bit of Webpack, but it felt largely like a black box to me.
More recently though I read about [some troubling details][gatsby-contractor] a contractor faced while working for GatsbyJS. I was not at all impressed with how GatsbyJS handled this. Their CEOs [empty apology in an open letter][gatsby-open-letter] reeks of “techbro culture” to me. The whole situation is a real mess. Given that Ive personally been unsatisfied with the ecosystem, this seemed like a good time to ditch GatsbyJS in favor of something else. But what...?
For a while I toyed with the idea of making it myself, but that seemed like too much work for how little I need. Im not that interested in tweaking every aspect of my build process. I like to find opinionated tools that align with my goals instead of making my own.
_Aside: An opinionated tool in my case is a framework or library that has opted to make some choices or “sensible defaults” that align with how I would potentially use it. I dont need to spend time reconfiguring everything to work how I want it to._
I tried to find some lightweight frameworks that read Markdown (or MDX) files and create HTML files from them. After reading [this post][gatsby-vs-next], I was convinced that I should try out NextJS. More importantly the post told me how NextJS worked. It made total sense to me:
- Read the files we want
- Use remark to convert them to HTML
- Build pages from that output
Done. Simple. No need to add GraphQL. Right from the get-go everything made sense to me, which I cant necessarily say for GatsbyJS.
## What about Tailwind or Theme UI?
I previously stated that I was planning on using [TailwindCSS][tailwind] and then later [Theme UI][theme-ui] to help style my site. I ended up flitting between the two for some time before deciding that they were too heavy-handed and too complex for what I needed. It also felt like I ended up fighting with the default style, trying to remove style I didnt like. This sounds like an opinionated tool that doesnt align with my goals. I opted to instead do my styling by hand. I only use a small set of the standard HTML elements, so I neednt worry about making sure every single element is styled properly. Instead I opted to:
- Set the font to something I like (in this case all system defaults)
- Set some CSS variables with a color scheme I designed
- Gradually style every element using my current content as a test
- Add some font scaling
Called it done there.
Now that I have the basic framework down, I plan to flex my developer muscles and slowly introduce some of my own character and add delight into my site. I want to make it a fun place to visit.
As much fun as a website can be, anyway. 😄
[gatsby-contractor]: https://clacified.com/tech-science/news/nat-alison-testimonial-about-gatsby
[gatsby-open-letter]: https://www.gatsbyjs.com/blog/open-letter-to-gatsby-community
[gatsby-vs-next]: https://jaredpalmer.com/gatsby-vs-nextjs
[tailwind]: https://tailwindcss.com
[theme-ui]: https://theme-ui.com