Life Update: Controlled Chaos and March

There's a particular type of tiredness that isn't about sleep. You can get eight hours (I don't, but theoretically) and still feel like you've been carrying something heavy for weeks. That's roughly where I've been lately. Not miserable, not burned out in any dramatic sense – just a bit worn around the edges. Which, honestly, is probably the most accurate description of early 2026 I can give.

So. Life update. Let's do this properly.

The College Situation

I came back to college last week after a fortnight off, running on about two hours of sleep. Not ideal. The wolf chronotype does not respect academic timetables, and I am still fighting that particular battle with my own circadian rhythm on a near-daily basis.

The fortnight off wasn't entirely restful, to be honest. I spent most of it at my desk, which is either admirable dedication or a warning sign depending on your perspective (I choose to believe it's the former, for my own mental health). But there was also a gut punch in amongst the productivity: I got back my cybersecurity grade. One mark below a pass. I sat that exam during a period I'm not going to go into detail about here, except to say that sitting it at all was more of an achievement than the result suggests. The college may request a remark. We'll see.

I know grades aren't everything. I know employers in tech care more about portfolios than percentages, and I know my portfolio is, objectively, not nothing – I've got published npm packages, a running self-hosted PDS, multiple open-source tools, and a frankly ridiculous number of website iterations. I know all of this. And yet. There's still a small, unhelpful part of my brain that treats a near-pass like a personal indictment, and I'm doing my level best to tell that part of my brain to pack it in.

It doesn't help that I've been somewhat scatterbrained lately. I've probably got AuDHD, if I'm honest with myself (and my recent hyperfocus sprints followed by complete inability to focus on anything that isn't self-directed really aren't doing much to contradict that theory).

What I've Actually Been Building

On the other hand – and this is the part where I try to remember that I have, in fact, been doing things – the output from the past few weeks has been genuinely substantial. I've released eleven versions of ewancroft.uk. Eleven. I've stopped being surprised by that number.

v11.0.0 came with a proper cleanup and three new npm packages: @ewanc26/ui, @ewanc26/atproto, and @ewanc26/utils, all consolidated out of a codebase that was getting unwieldy. The pkgs monorepo now also includes @ewanc26/noise and @ewanc26/noise-avatar – the noise one is a deterministic value-noise generator I pulled out of the avatar package, and it's now doing double duty as a fallback image engine on my site. Zero dependencies, works anywhere with a Uint8ClampedArray. I'm quietly pleased with that one.

Malachite has also had a significant few days. It's been consolidated into the monorepo, published as its own npm package, and the web interface now ingests it properly rather than pointing at raw source. v0.11.0 brought did:web support for both CLI and web. v0.12.0 landed OAuth login for the CLI with browser-based sessions stored locally. The CAR sync issue with OAuth agents is fixed. It's getting to the point where I'd actually recommend other people use it, which is a strange feeling.

@ewanc26/pds-landing hit v2.0.5 and is live on npm – that one took four hours of my life that I will not get back, but it's done and it works.

Oh, and moonstone exists now. I announced it quietly on Bluesky: it's my own custom ATProto PDS implementation. I wouldn't recommend deploying it for anything serious yet. Just – it exists. I felt like people should know.

Commissions

This is new, and a bit terrifying to say out loud: commissions are properly open.

Via Ko-fi , I'm available for poetry, short stories, and SvelteKit web development. I've been writing poetry for years and doing web work for almost as long, so it's not exactly a departure from what I already do – it's more that I've finally decided to make it official. I set up the listings, sorted pricing, and even integrated a Ko-fi supporters display on my website using @ewanc26/supporters and webhooks, which was satisfying in a very nerdy way.

I nearly had my first commission before the listings were even properly up – someone in the developer community expressed interest in a website, but it wasn't quite the right fit, and that was fine. These things happen. The fact that it nearly happened at all was encouraging enough.

My older brother might be commissioning me for a website too, which would be both a professional milestone and a source of specific sibling-dynamic stress I won't go into here.

Infrastructure and the Joy of Things That Now Work

I've been spending time making my self-hosted infrastructure less likely to collapse in interesting ways. Vaultwarden is set up and working properly. Time Machine backups are now running weekly to my server, slowly. I have a GoToSocial ActivityPub account as a backup plan – just in case, as I said on Bluesky – because I don't particularly trust any single platform to exist forever, including the one I've built most of my tooling around.

Speaking of which: I bridged with ap.brid.gy, so I should technically be reachable as @ewancroft.uk@bsky.brid.gy from Fediverse clients now. Whether that works in practice is a question I'll answer when someone actually tries.

What I've Been Watching

I've been logging things on Popfeed lately, which has made me more conscious of what I'm actually consuming rather than just passively absorbing it and moving on. Worth a brief rundown.

Severance finally got watched in January – 8/10, lived up to the reputation. Then Pluribus (9/10), which I'd not heard many people talk about but genuinely enjoyed. Zootopia 2 in late January, also a 9. February brought Constellation (Season 1, 8/10), which starts confusingly and then resolves into something properly interesting – the whole liminality angle, the superposition of being simultaneously dead and alive, works better than it has any right to. And Mr. Robot (8/10), which I'd been meaning to watch properly for ages and finally got round to in February.

Mid-January also brought Dark Matter on Apple TV (based on the Blake Crouch novel) – I only mentioned it on Bluesky recently, but I watched it a couple of months back and it's still rattling around in my head. That's the sign of something good, I think. The kind of fiction that makes you lie awake going "but what if though." The most I've engaged with something that wasn't werewolf-adjacent in a while, and it reminded me that occasionally branching out is worth doing.

The General State of Things

I'm 20. I'm at college on two hours of sleep, building things nobody asked for, writing poetry, and slowly making peace with the idea that my brain works on a different schedule to most institutions. March is here, which means Ostara is coming up – a fortnight away as of earlier this week – and that always does something vaguely positive for my mood, the shift from winter into something that at least gestures towards light.

I'm pondering a Mac upgrade – the M4 Max Mac Studio, or perhaps waiting for an M5 MacBook Pro. I'll probably talk myself out of it and carry on with what I have.

There are things I'm still figuring out. The grade thing will nag at me for a while. The commissions situation is new enough to be a bit nerve-wracking. The question of how much employers care about portfolio versus grades is, apparently, the kind of thing I've started asking on Bluesky at eleven in the evening, which suggests it's taking up more headspace than I'd like.

But the projects are moving. The tools work. The packages are published and – somewhat inexplicably – getting downloaded.

That's something, isn't it.

If you want to commission something – poetry, a short story, or a website – you can find the listings on Ko-fi . And if you're just here for the rambling: welcome back.