2025's Site In Review

Featured image for sharing metadata for article

(Aside: I'm considering moving this into a microsite powered by Evidence, like I do with my Music In Review, where I could graph some of this data more effectively - we'll see if I get round to it by the end of the year!)

Commentary

As with last year, there's been another significant decline (~20%) in overall hits on my site.

Not that this is a bad thing generally - although I enjoy folks reading my stuff, I don't crave it (well, only a little). I do very much enjoy having folks read what I have to say, and this year I've found that although I've not written as many "viral" posts (which means fewer big spikes of views), I've found more continued readership - including being part of the "Developers Who Write" Bluesky starter pack!

And as noted in previous years:

I noticed that there was a trend downwards [...], but am putting it down to maybe a bit more around folks using things like blocklists for common analytics platforms like Matomo that I use.

We can see a few notable bumps over the year:

A screenshot of Matomo's "Visits Over Time" view for 2025, showing a big spike (up to ~30k visits) late January, and then a few comparably small bumps over the year

Although not hugely big in traffic, I had a few other posts of note:

And a couple of external posts I authored:

Looking for a new job

Something different about this year has been the looming shadow of needing to look for a job, with me looking to move on from Elastic after some changes happening near me that I wasn't particularly a fan of, and me starting to quietly look around since early February.

I took the opportunity to think about what I actually wanted, wrote up those requirements in a way that was easy to share with others and spent some time also writing about what I'd learned in the previous 2 years (give or take some lessons I couldn't share publicly), as well as continued work on Dependency Management Data and Renovate to feed into what would come next.

Increased scraping

This year I've seen a significant increase in web scraping - I know that LLMs are already trained on a lot of my content, but it seems like a significant increase in scraping - 998 page views (from the same user) in a single visit, but many bots pretending to be real users, but without fingerprinting to show they're the same user, which culminated in a very expensive AWS bill, and I'm still fighting them.

Tweaked LinkedIn crossposting

I tweaked my LinkedIn crossposting from the plain Zapier RSS syndication to a custom setup.

This is partly due to my links no longer presenting as nicely, but also so the posts themselves are a bit more actionable and searchable.

Previously, it would look like:

A post by Jamie on LinkedIn saying "Just blogged: {the post title}". Below it is the LinkedIn formatting for a URL attachment with jvt.me but it doesn't show any rich information about the post, and seems very bland

Whereas now you see:

A post by Jamie on LinkedIn saying "πŸ†• on the blog: {the post title}". Below it is the one-line description of the post, (up to) three of the post's tags cnverted to hashtags, and then a rich URL attachment, with the image sharing media and the post title in the attachment

AI disclaimer

I'm "cautiously skeptic" about LLMs/AI generally, but this year I've definitely been doing a bit more with them - partly as part of entering the job market, but also out of curiosity and seeing what I can do with them, while also being a heavy proponent of the legal/ethical risks that they bring.

This year, I've done a bit more on my blog, publishing content with AI generated content (code or prose). Before I started doing this, I made it possible for me to clarify this in metadata for myself, but also to present to users.

I believe that there should be a disclaimer when using LLM-generated or derived content, and so want to make it very clear.

I hadn't thought that I'd use a lot of it, but looking at the stats, I've got 11 posts that contain some level of LLM-generated content - whether that's the title or code (or content, but that hasn't been the case in the last year).

Single-page RSS feeds

This year I created single-page RSS feeds for my /salary and /now pages, so folks can keep on top of updates to these specific pages.

I also wired up my Salary feed to RSS Parrot so folks on the Fediverse can keep an eye, if so wanted.

Improved experience for keeping an eye on my site's analytics

For years, I've kept one of my monitors showing my site's traffic, as a way of keeping an eye on sudden spikes (i.e. has someone linked to me, or shared my post to Hacker News), but there's some information I've cared more about than Matomo can know.

This year, I built a TUI to give me a more targeted view:

This has been a fun additional side project, getting a chance to play around with Charm's Bubble Tea framework for TUIs, as well as give me much more control over what I want to keep an eye on.

Overall traffic

This yearLast year
Number of visits389052214996
Number of articles8367
Number of blogumentation articles4449

Traffic across the year

Screenshot of the Matomo "Visits over time" view showing the year's traffic

PagePageviewsUnique pageviews
Go 1.24's go tool is one of the best additions to the ecosystem in years3999537414
Viewing the Contents of a Certificate Signing Request (CSR) with OpenSSL1163311334
(my homepage)93808056
Listing the Contents of a Java Truststore63966181
Go 1.24's omitzero is another one of the best additions to the ecosystem in years52734970
How to fix Failed to load ApplicationContext in Spring (Boot) applications51394988
Viewing X.509 PEM Certificate Fingerprints with OpenSSL50024769
Managing your Go tool versions with go.mod and a tools.go49914255
/tags/39513898
/salary/38813325
https://www.jvt.me/posts/2024/04/12/use-renovate/34373248
PagePageviewsUnique pageviews
Go 1.24's go tool is one of the best additions to the ecosystem in years3999537414
Go 1.24's omitzero is another one of the best additions to the ecosystem in years52734970
Tricking oapi-codegen into working with OpenAPI 3.1 specs1028965
GopherCon UK 2025993883
Generating Go code from JSON Schema documents626584
Accessing private Go modules in a Docker container458424

Sources of traffic

SourceVisits
Search Engines90684
Websites5969
Direct Entry84663
Social Networks29963
Campaigns3706
AI assistants34
My RSS Feed1641
Other campaign sources2065
TagNumber of posts
go19
renovate16
podcast7
github6
open-source6

Written by Jamie Tanna's profile image Jamie Tanna on , and last updated on .

Content for this article is shared under the terms of the Creative Commons Attribution Non Commercial Share Alike 4.0 International, and code is shared under the Apache License 2.0.

#www.jvt.me.

This post was filed under articles.

This post is part of the series site-in-review.

Interactions with this post

Interactions with this post

Below you can find the interactions that this page has had using WebMention.

Have you written a response to this post? Let me know the URL:

Do you not have a website set up with WebMention capabilities? You can use Comment Parade.