Hello World
Goals
When I was noodling over building this site I had a couple things in mind from my last decade of experience in building products and web development. Starting back in 2018 when I was really getting into web development and React was 'the thing,' I was building everything in React. Nowadays not so much, and this blog is a testimate to my experience and really pushing myself to learn new things. The goals were simple:
- ⚡ Blazing Fast
- 🔧 Customizable
- 🌴 Green
- 👨💻 Support Code
- 0️⃣ CLS
- 💯 Lighthouse Score
- 🙅♂️ No AI
Blazing Fast
The first goal was to build a site that loaded lightning fast site and also had a great developer experience (DX) that I enjoyed working on. I was tired of the long rebuild times of Next.js and other large frameworks and just wanted soemthing simple that would reflect changes in realtime.
Customizable
I wanted somethng that was easy to use but also customizable. If you have ever used a no-code platform and then got to the point you wished you could just add a couple loops and functions instead of building a hacky workaround... you will know what I'm talking about.
I had a couple thoughts of systems I could use, but each came with their own drawbacks.
- Platforms such as Medium and HackerNoon are your pretty standard, no frills, blogging platforms where you can just write and post and it will look good, but outside of that don't expect to be able to customize the overall look and feel of the site.
- Static Site Generators like Gatsby and Hugo provide what is basically a turnkey solution with all of the bells and whistles like React templating, GraphQL, REST, plugins, theming. However they are highly complicated which is a learning curve in themselves, and then may take a bit more infrastructure to build and deploy.
- Frameworks like Next.js, SvelteKit, and Nuxt provide a great starting point and an open canvas, but give almost too much freedom when trying to build something simple. I wanted to write and host content, not build another heavily componentized web app that was going to be pulling tons of data and required complex user actions.
When I stumbled on 11ty, I was kind of like this is it! The templates are in vanilla html/css with minimal javascript, you write in markdown, and it builds to a super simple file file structure that doesn't need any type of complicated configuration to serve.
Green
Latley I've been thinking about my overall impact on the world and what that means in the age of AI. I know that just myself I am a drop in the bucket in the scheme of things, but thinking about the staggering amount of energy used when making any type of Google search, with the sometimes usless AI generated answers no one asked for, how can I keep my carbon footprint small while still generating increased value to myself and the world.
My thinking was that the development, build and hosting process should be as simple as possible and over its lifetime should use minimal electricity. I wanted this to be efficient across the entire lifecycle.
- Development: Fast and low CPU requirements when editing
- Building: Fast and minimal server needed for builds
- Hosting: Serverless hosting with easy to process files
I did a little benchmark to test 11ty myself, and was blown away by the performance of a fresh app. While this was not exhaustive, 11ty was ~56% faster over the few categories I tested.
| Framework | Dev Cold Start | Hot Reload | Build |
|---|---|---|---|
| 11ty | 0.33s | 0.07s | 0.26s |
| SevelteKit | 0.75s | 0.22s | 1.41s |
| Next.js | 2.58* | 0.42s | 2.52s |
*Next.js server was ready in 0.64s, but then took another 1.94s to compile and load the first page.
Support Markdown Syntax Highlighting
I wanted to be able to add simple code snippets inside of markdown using a syntax highliter
- Install the syntax highlighting plugin https://www.11ty.dev/docs/plugins/syntaxhighlight/
- Add a prism theme https://github.com/PrismJS/prism-themes?tab=readme-ov-file
- Profit!
function foo() {
console.log('yes this is bar');
}
0 CLS
If you have ever taken over a project that had major CLS issues... you know what I'm talking about. It usually stems from cheap development where the goal is to get features out as fast as possible for low cost with no regard to building a good product. Out of the box 11ty makes this issue go away because there is no client side code to load, so the initial render is it! While I know its possible to get 0 CLS with other frameworks, I like the simpler approach of 11ty were there is no complicated server or javascript bundles and everything compiles down to the most basic html + css files.
Perfect Lightning Score
Because this was going to be a new greenfield project, super simple, and with absolutely no bloat there was no reason to not achieve a perfect lighthouse/pagespeed score. While this can be achieved in any framework, I feel like 11ty was the most straightforward without needing to go down a performance rabbit hole to figure out why a page or component was potentially slow.
No AI
As developers we are always being baraged with the next new thing and the current flavor is AI for everything, and that can get exhausting. This site is a back to the roots of web development for me. Just a focus on native web components, minimal javascript, no servers, and no AI for writing.
AI Reflections (2026-01-05)
Originally when I set out to main this blog the plan was to use no AI because I thought the output was still slop and a waste of time and I can continue to brush up on my core programming skills. Latley though I'm starting to change my mind. When Claude Code was released in May, I was still feeling kind of 'meh.' I didn't really like the style of code it was outputting and anything larger than a simple feature had the look and feel of unmaintanable slop.
Over the second half of 2025 I would occasionally test it out for various features, overall being unimpressed... that was until around early December. After testing both Sonnet 4.5 and Opus 4.5 for larger and larger features, its feeling less like slop and most of my comments are nits that I'm fine either telling Claude to fix, fix myself, or just ignore.
I'm not sure what changed, either the models, or the underlying tool calls, but its coding at a much higher level than I have experienced in the past, and it makes me feel more confident in its output for larger features. While the goal of this blog is still to be very minimal and all the writing will be without AI, anything related to styling, new features, and page customizations will probably be assisted by AI so I can focus on other more important tasks.
One thing I have found myself doing more and more is having random ideas at random times during the day, asking Claude what he thinks and how it would be implemented, and then being able to quickly implement a whole new feature the following day. Its feeling less and less like an anchor, and more like a force multiplier.