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

feat: add year-end review #1503

Merged
merged 9 commits into from
Dec 31, 2024
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.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
130 changes: 130 additions & 0 deletions content/blog/today-is-your-day.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
---
title: Today is your day
date: '2024-12-31T13:30:00.000Z'
tags:
- new year
- resolutions
description: "Reflection isn't my strong suit. I think. But I wish it were more part of my life. So I thought I'd try to piece together ... part of ... my story in 2024."
---

What a year.

Reflection isn't my strong suit. I think. But I wish it were more part of my life. So I thought I'd try to piece together … part of … my story in 2024.

## Oh, the places you'll go!

<div>

This year, I've attended conferences or meetups in Toronto, Prague, Seattle, Amsterdam, Glasgow, Middlesbrough, Bonn, Portlaoise, Athens, New Orleans, San Francisco, London and Edinburgh. I've also enjoyed making [EdinburghJS](https://www.edinburghjs.org/) a regular part of my life.

<p><img src="/img/today-is-your-day/flighty-passport.png" alt="Flighty 'passport'" height="1572" width="1179" class="md:float-right md:w-1/2 -md:mt-1 my-2 md:ml-4"></p>

I've loved every moment of it. Not the places, so much as the _people_. The tech world is amazing - but the greatest part for me is meeting people I respect and collaborate with.

I also find that travelling can be productive. I love coding on the plane or train - it's often joyously focused - and I always notice bursts of creativity after conferences.

- **Next year, I'd like to widen the circle**.

I'd like to see more folk I don't already know. That will mean answering CFPs at conferences further afield. Recommendations welcome 🙏

</div>

## You’ll be seeing great sights!

This was the second year that I have [led Nuxt](https://nuxt.com/blog/vision-2023). It's been exhilarating to see how things have grown.

<a class="my-4" href="https://2024.stateofjs.com/en-US/libraries/meta-frameworks/">
<img src="/img/today-is-your-day/state-of-js-nuxt-positivity.png" alt="A chart of meta-framework positivity, showing Nuxt rising to #4 in 2024, from #7 in 2023." height="1104" width="2148">
</a>

We're rising in retention, positivity and awareness compared to other meta-frameworks. I don't claim credit for that - but it's a pleasure to be a part of the community that makes that possible.

This isn't a zero-sum game. Nuxt doesn't 'lose' when other frameworks do well. I want to see our community characterised by the kind of relentless kindness that (I firmly believe) will in the end lead to continued growth and success.

The [unjs project](https://github.com/unjs) is an example of our commitment to go further, together, and I'm delighted to see [other](https://analogjs.org/) [frameworks](https://start.solidjs.com/) [are](https://tanstack.com/start) joining us in building on top of [Nitro](https://nitro.build/).

I've spent most of this year focusing on improving the _stability_ and _trustworthiness_ of the Nuxt ecosystem in the run-up to the release of Nuxt v4, but I do feel a bit lost in the details.

I have managed to launch a few projects, from [Nuxt Fonts](https://github.com/nuxt/fonts), [unifont](https://github.com/unjs/unifont), [page-speed.dev](https://github.com/danielroe/page-speed.dev) to smaller ones like [oxc-walker](https://github.com/danielroe/oxc-walker), [impound](https://github.com/unjs/impound), [errx](http://github.com/unjs/errx), [zero-vue](https://github.com/danielroe/zero-vue), [nuxt-workers](https://github.com/danielroe/nuxt-workers) or [nuxt-rebundle](https://github.com/danielroe/nuxt-rebundle).

Nevertheless it feels like my idea list is full to overflowing, and I would _love_ more time to create features or launch new projects! ✨

- **Next year, I want to do more _pioneering_**.

## You’re off and away!

I _love_ coding. It's fun and my hobby. I don't have an objective to be 'active' on GitHub every day. But, as it happens, I have been.

That's a side-effect of doing something that I enjoy.

<figure class="my-4">
<a href="https://git-wrapped.com/profiles/danielroe">
<img src="/img/today-is-your-day/git-wrapped.png" alt="Git Wrapped profile for @danielroe, showing my 2024 Year in Code, with 👑 Universal Rank: Top 0.5%, ⚡️ Longest Streak: 366 days, 🏆 Total Commits: 13,020, 📅 Most Active Month: December, 📊 Most Active Day: Tuesday, ⭐ Stars Earned: 81,796, 🚀 Top Language: TypeScript, 🪐 Power Level: God Mode" height="1282" width="1536">
</a>

<figcaption class="text-xs">

the chart shows [issues, PRs, discussions and commits](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/why-are-my-contributions-not-showing-up-on-my-profile) on GitHub

</figcaption>
</figure>

I count myself incredibly fortunate to be able to make a living from being a [full-time open source maintainer](/blog/funding).

It's something I _get_ to do rather than _have_ to.

<p><img src="/img/today-is-your-day/twitch-recap.png" alt="Twitch recap titled 'Grass-Toucher of the Year', with 839 new followers, 4.27K total hours watched, 118 new subscribers, 40 streams, 7.22K total chats sent, 8 clips and the Nuxt logo as the top channel emote" height="2200" width="1760" class="md:float-right md:w-1/2 -md:mt-1 my-2 md:ml-4"></p>

That's one reason I stream maintenance, building things or talking to people. You can find me on [Algora](https://tv.algora.io/danielroe), [Twitch](https://www.twitch.tv/danielroe) or [YouTube](https://www.youtube.com/@danielroe). I think of it as 'coding with friends' and it's part of the fun.

If you've joined me on stream, sponsored me, contributed to Nuxt - or supported me in any of the many other ways people have made my life a joy this year, thank you ❤️

- **Next year, I want to continue to take joy in my work**.

## There is fun to be done!

In early 2023, arriving back from New Year holidays, I realised that I had really neglected my own health. On recommendation from [Jessica Sachs](https://jess.sh/) and [Marc Backes](https://marc.dev/), I downloaded [Noom](https://www.noom.com/), dusted off my [Oura Ring](https://ouraring.com/) and set off to look after myself a bit more.

That year I lost 15 kg - and found my way back to good health. I also discovered some things that I loved doing - like _bouldering_.

<a class="my-4" href="https://www.instagram.com/reel/DBZJ9w0tWCR/">
<img src="/img/climbing.jpg" alt="Daniel climbing a route with pink holds in a bouldering gym" height="525" width="720">
</a>

It's a lovely, inclusive community, and if you ever fancy joining me for a climb (even as a total beginner!) you'd be very welcome.

I've been bouldering just over a year (I started in September 2023), and in that time - mostly in 2024 - I've climbed in 35 gyms around the world. Blending physical fun and intellectual work has been a recipe for feeling like more of a whole person

I can't attribute it just to bouldering, but over these last two years, I've begun to discover the importance of looking after my own needs. Rather than living entirely in my head, I think it's important to enjoy physicality and being 'embodied'.

I don't entirely know what that will mean, but I want to continue to live in sync with what I need.

- **Next year, I want to continue to look after myself**.

## You’ll join the high fliers who soar to high heights

I was tremendously honoured this year to [join the ranks of GitHub Stars](https://stars.github.com/profiles/danielroe/). I loved joining others at GitHub Universe and meeting folk in San Francisco - which absolutely lived up to its reputation!

I was also mentioned by some of those filling out the State of JS 2024 survey. Thank you - it means a great deal. ❤️

<a class="my-4" href="https://2024.stateofjs.com/en-US/resources/#people">
<img src="/img/today-is-your-day/state-of-js-people.png" alt="A list of influential developers for non-video channels, showing Daniel Roe in position 12" height="1946" width="2200">
</a>

- **Next year, I don't want to stop learning and growing**.

## Bang-ups and hang-ups can happen to you

This year has brought it's own share of pain. I don't think that's unusual, but my own griefs are dear to me - at least because they are mine.

I don't particularly want to write about them here, but for me it's important that I _really feel_ these things, not set them aside.

- **Next year, I want to take time to feel the things that hurt, too**.

## And YOU are the one who’ll decide where to go

To finish with a few more words from [the poem](https://www.amazon.co.uk/PLACES-YOULL-GO_DR-SEUSS-illustrated/dp/0007413572) that's inspired the title and headings of this post:

> You have brains in your head. You have feet in your shoes. You can steer yourself any direction you choose.

I'm optimistic about the future. I don't know exactly what it will hold, of course - but let's surf the chaos together. Here's to another year of joy and love, friendship and fun! 🍻
2 changes: 1 addition & 1 deletion modules/runtime/NuxtPage.vue
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,6 @@
}
"
>
<component :is="component" />
<component :is="component" :key="route.path.includes('blog') ? route.path : undefined" />

Check warning on line 38 in modules/runtime/NuxtPage.vue

View workflow job for this annotation

GitHub Actions / test

':key' should be on a new line
</Suspense>
</template>
2 changes: 1 addition & 1 deletion modules/runtime/route-composables.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export function handleNavigationClicks (e: MouseEvent | KeyboardEvent) {
const url = parseURL(href)
if (
!('external' in anchor.dataset)
&& (!url.host || url.host === 'roe.dev')
&& (!url.host || url.host === window.location.host)
) {
return navigateTo(url.pathname)
}
Expand Down
Binary file added public/img/climbing.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/today-is-your-day/flighty-passport.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/today-is-your-day/git-wrapped.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/today-is-your-day/twitch-recap.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion test/unit/bundle.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ describe('project sizes', () => {
stats.server = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir)
expect
.soft(roundToKilobytes(stats.server.totalBytes))
.toMatchInlineSnapshot(`"444k"`)
.toMatchInlineSnapshot(`"454k"`)

const modules = await analyzeSizes('node_modules/**/*', serverDir)
expect
Expand Down
5 changes: 4 additions & 1 deletion uno.config.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
import { defineConfig, presetUno, presetIcons } from 'unocss'
import { createResolver } from 'nuxt/kit'

const resolver = createResolver(import.meta.url)

export default defineConfig({
content: {
filesystem: ['content/**/*.md'],
filesystem: [resolver.resolve('./content/**/*.md')],
},
shortcuts: [
{
Expand Down
Loading