🌿 My personal website
https://wonderfulfrog.com
The goal of this change was to speed up my CSS pipeline. Previously builds would take up to 30s because it had to rebuild the CSS for every page (I inlined the CSS). This updates the pipeline to remain somewhat the same, but offloads the busywork of computing my theme CSS (my design system in other words), and is replaced by a mostly static file (`css/global/lilypad.css`), which I can update as my design system changes. I also offloaded several of my utility classes as I know I will want to use them in other sites I design, so it made sense to move them as well. The new pipeline makes use of 11ty's bundle feature (newly included in 11ty v3), which allows me to bundle all my CSS together into one file. Since I know my core styles like `lilypad.css` will always remain the same, I decided to keep that inline. I use the `transforms` feature for bundling to run a PostCSS transform on the bundled output, which resolves any imports and minifies the final output. In order to cut down my build times even further, I removed my XML minifier - it was taking upwards of 3 seconds to minify XML to probably a small benefit to end users. |
||
---|---|---|
.forgejo/workflows | ||
config | ||
scripts | ||
src | ||
.gitignore | ||
.nvmrc | ||
_redirects | ||
eleventy.config.js | ||
jsconfig.json | ||
package-lock.json | ||
package.json | ||
README.md |
wonderfulfrog.com
Here is the source code for my website. With the exception of my content, feel free to take, remix, do whatever you want!
Content is kept under posts
and catalogue
.
Setup
This project relies on Node.js 20.11.1 (LTS at time of writing), but probably works fine with older (or newer) versions too.
Clone the repo wherever, then:
npm i
npm run dev
That's it. You'll have a dev server on http://localhost:8080. Have fun!
Notes
The following tokens need to be defined inside .env
:
DARK_VISITORS_ACCESS_TOKEN
LAST_FM_API_KEY