Vincent Ritter

📰 Blog

Posts about whatever is on my mind at the time regarding my projects and perhaps some specific topics. Can be updates, release notes and others.

Posts Follow me...

Weeklog — June 23rd, 2024

Yep, it's a little later than usual, and I have to be honest, it's been a busy week with the school holidays starting — so we had to sort a lot of things and be places. That meant slow progress on everything.

Scribbles

Yesterday I looked at the server bill, because it was larger than I expected. That caused me to look at options, which brought me to the new Hetzner plans with a CX32. That's a saving of around 60% from my previous plan. There were some issues with bringing up custom domains, which is an issue I had the last time I upgraded — I'm trying to figure out what the issue is and I think it's Caddy or some process being bogged down. Sorry for any downtime (I hate downtime).

Shortly after the upgrade I wasn't happy with the speed of the sites and things did seem rather slow — so I looked at the Puma config and made changes here. Specifically I enabled the web concurrency setting and added a config of 4. And it's working super nicely now... I even think it's better than the more powerful server.

OK, enough technical stuff 😵‍💫

Earlier in the week I added the ability to add custom CSS to your blogs. If you're interested, here is Juha's blog with some custom CSS at work (it's still a work in progress — but it's awesome already). It's super simple and should work for most that are comfortable with working with CSS. There are some extra classes scattered across pages to help you target specific areas — you can see some of these here. Head on over to your blog settings and go to "Change Appearance".

I have been asked for adding more simple customisation for non-technical folks — that's going to come and I'll work on slowly adding some options over the course of the summer holidays.

I should add some proper blog posts explaining this...

Apart from that, and some bug fixes, that's all I had time for.

Shoutouts

Wait... what? Yes, shoutouts. Still going strong and working nicely. It's difficult for me to make too many changes here, although I have a few ideas that are still brewing in my mind.

The bigger thing I'd like to do here is to change the domain name. Don't worry, the old one still works of course, including all embeds.

Instead of using the .lol extension, I am moving shoutouts to .page instead and is now the default domain that I link to. Here it is: shoutouts.page.

You may notice that the CDN and Embed code now use this domain instead of .lol. So if you want to update your embed code, you're more than welcome to — not necessary though.

There are more things I need to do with the domain switch, like using the correct emails etc. Taking it slow though.

One day I'll redirect the .lol domain to .page — but that is still far off.

Using the .page domain should perhaps give you an idea what I'd like to do... one day 😋

Other stuff

That's all I had time for during the week. There was also some client work that I had to work through which I have to prioritise.

There were some issues with sending out emails from my custom domains, so some emails went out way later than they should have done — I did email everyone from my personal address though... so there might have been duplicate replies. Of note, I use ForwardEmail that I send from in HEY. It's pretty good and I am happy with my set up.

Now that the summer holidays have started I need to be a little bit wiser with my time and will allocate 4 hours each morning for work so that we can enjoy the afternoon out as a family.

Hoping to give Sublime Feed a nice push over the course of the next few weeks also.

These weeklogs have been interesting and gave me much greater focus on just my work and then reflect on it — it's different and, being honest, it's been a little bit hard because there is seemingly withdrawal symptoms from not "micro" posting on my blog. It's still a new way of doing things and I'm finding it hard. Hopefully another few weeks will settle this though and I look forward to when this is normal. I often find myself trying to look for stuff to do because I have the urge to write something small, but I stop myself.

Another problem (not really a problem) is the feedback loop (comments, likes, etc) — I think for me that's the biggest thing that I need to get used to (or the lack of). Although, I've been getting more email than usual and I love that. I love to write longer form and think about it more.

Anyway, let's see how it goes. The minimalist in me prefers this way. I actually look forward sitting down and focusing on these and reflecting back on what I have achieved.

Thanks for reading.

— Vincent

Weeklog — June 14th, 2024

Welcome back to another weekly log of everything I've been up to. Last week was my first attempt at this, so let's see if I get better at it. Know that I changed my mind on dating these, and will just use the date I wrote it. The truth is, is that the weekend happens, and I sometimes just work on stuff — plus I think it can be confusing. So here you go.

Anyway, quiet week, but let's go.

Sublime Feed

Thank you to all that have emailed me over the past week. Unexpectedly my post was also featured in the latest Short Ruby Newsletter! Thank you Lucian, that really mean a lot to me ✌️❤️

I've been behind on responding to everyone. Know that I am on the case, with a few more to go.

Your feedback has been amazing to date and I'm going to continue with dev in a week or so.

Right now the biggest problem is fetching feeds and parsing. I switched to using feedjira and that has a few issues that I need to work around. I did write my own custom parser before dropping in feedjira, and I think I might go back to it again — it just gives me a lot of more flexibility. Need to think about this more.

Oh and I fixed an issue that would cause the feed fetching to consume 150% of CPU power — now it's just humming at around a constant 20%. My change was easy, because as usual I was a little too liberal with background jobs. Initially I had a background job for each feed, which I still do, but when posts were returned I started another job to handle those posts (per feed) — and that just caused mayhem... and actually the reason I also ran out of space (because it logged all the "items").

On top of that I changed the fetch interval to every 10 minutes, with a random 5 - 100 second delay between fetches. That works super great and I'm pretty happy.

Another thing I have been thinking about is hosting. Right now I use Hatchbox for deployments, and it's been fantastic! I use it for all my projects. However I am thinking of final giving Kamal a try. Let's see.

Scribbles

Not much here this week except fixing some dark mode stuff... and... the ability to add your categories, as navigation, to your homepage. I think it works pretty well and you can see it in action on the Updates blog. It's a Nitpick setting and can be enabled on the homepage and archive page.

On top of that I also added the ability to show expanded posts on the category page, instead of the previews. That's a category by category setting.

The reason for these changes are that I wanted to simplify a few things, as per my last weeklog, and just wanted an easy way to have it under one roof (like you can see in the updates blog).

Hope you enjoy it.

I have been asked many times for custom CSS support. This is going to make it into Scribbles in the next 2 weeks. I don't yet know how well it'll work with Tailwind (the CSS framework I use), but I'm sure it'll be OK. Watch this space.

Tinylytics

Well, we've passed the 1 year anniversary last week 🥳 I want to thank everyone from the bottom of my heart that has been using it (including if you gave it a try and it wasn't for you). It's slowly approaching 5 million combined recorded page hits across all sites. Mind blowing awesome!

There are so many things I'd like to do, and have been taking it slow — that's on purpose. I've been reading a post as of late on what would make a great analytics tool especially for smaller sites — so that's something I'd like to think about.

Whilst not hitting the spot right now, I did add the ability to filter by a "source" (for subscribers) — so you can find which hits came from which source, for example now I can dig through hits that appeared thanks to the Short Ruby Newsletter (which had a source attached). Hope that's useful to some of you. I'll probably add referrers soon.

As always I have a multitude of things floating in my head and hope to eventually get to them.

Thank you again to all that use it, and also to those that have subscribed (present and past). It means a lot!

Oh and before I move on, I also consolidated the changelog to the main updates blog, just like I did with Scribbles.

Micro.blog

I mainly just curated discover and will take a break now. Hope you enjoyed it this week and last.

I finally have a pull request in for some admin changes we've been making so our lives are a little easier.

Let's see what I pick up next — I'd like to work on some minor layout things for the front facing part of MB, although I should be concentrating on some app stuff soon and get these updated.

Other stuff

Ah yes, this again. So I tried getting Gluon to work, but still hit build issues. So will perhaps try again next week, who knows. Also, if you used my Status app, know that the beta has expired. Not yet sure what to do with it or if I keep working on it — I don't want to say too much, but I felt a little alienated at Apple's developer conference this week, so I need to think about some stuff (don't read too much into this though, just a personal feeling really).

Still thinking about some other projects and what to do with them, although now that the personal apps are taking a back seat, it's two things less to think about. I have plans to move another project of mine to a friend (codebase only with NO user data of course) — something I need to spend some time on.

Anyway, looking forward to working on Sublime Feed soon again (within the next 2 weeks).

Thanks for reading and all your nice messages.

✌️❤️

Weeklog — June 3rd, 2024

This is something I always wanted to try, but never was quite sure how to do it. Earlier this year I started sharing a little bit too much on my projects with screenshots and general stuff I was working on — and that felt a little bit too much.

Let's see how it goes. I'm going to try and go project by project and give a few points per paragraph. This was something I wanted to try last week but we had a mini escape over the weekend due to some school holidays so I missed a lot.

And what about the date? The week starts for me on a Monday, and it's about this week. Seems fitting. I was thinking of using the week number, but that can be confusing.

Micro.blog

Kimberly, Manton and me have been steadily curating the Discover timeline this week. I'm really happy with the admin changes for curating we've been doing over the last few months — it's a massive improvement over the past year.

There is more work to do of course and looking forward to working on that this month.

We did have a bit of downtime again. Manton is travelling... and the servers just know it for some reason. These happened during bedtime (5 - 6 AM) for me, so I'm happy that Manton was able to take care of everything.

I already miss Jean. She is a beacon in the community and I'll miss her. Many of the admin changes have been made to take into account the wishes she had — it's already so much better. Thank you Jean ❤️

Gluon

Ah yes, my little app project... that had a great start but seems to be on the sidelines.

Last week I was trying to build the app locally after some updates but encountered issues — that's normal. However I didn't have any energy to go further. What I did do is try and start a new project from scratch, which had no problems with running — I don't know yet what is going to be next.

I did try and make changes to push notifications and upgraded some stuff in the process — that seems to have broken something with encryption. If you're missing replies, you can go to the Mentions tab, tap the bell icon and "re-activate". Hopefully that'll do the trick.

It's Pride Month and many of you are celebrating LGBTQ+ and inclusion and diversity, I featured the Micro.blog category on the Explore page over the weekend. You can pin it to your Discover timeline by long pressing on it and you'll get a little pin on it. If you're creating a new post, it'll pick up 🏳️‍🌈 and 🏳️‍⚧️. It'll be at the top of the timeline, if pinned, and is automtically updated.

In a future version I'd like to surface the emojis in the editor so you can quickly access them.

I'm planning on also adding WWDC over the weekend. Some of the developers like to follow this. That one will pick up posts with 🤯 or WWDC — although it seems that feed hasn't seen any action in a while (4 years).

There is an issue with Cloudflare heavily caching the Explore feed for some reason, so it might take a few tries to get it to show up. I'm going to replace this logic as it doesn't work... and use Bunny.net for caching those feeds (I do that for all the other feeds already).

No other plans for Gluon right now — still going to try and get it to run here so I can get a new TestFlight out soon and fix the bug with Explore (needs a query string to more aggressively bust the cache).

Scribbles

I fixed a few issues with categories not hiding when they're set as inactive.

Apart from that I've been planning some sort of short code picker thing — nothing concrete yet.

One thing, for the technical crowd (or if you have interest), is that I had Litestack installed on the project since day one. My plan was to always offer a self-hosted version of Scribbles. However as a multi-tenant app I encountered some weird issues with some background processes, especially around images.

So now I removed that and am using solid_queue together with Redis. I haven't yet seen any continued issues — so fingers crossed.

There are a few dark mode bugs I found that I didn't tackle yet, so I'll work on that at some stage — maybe next week.

Sublime Feed

Earlier this week I blogged about my feed reader. I really love the simplicity of it all and it's been a joy to use privately. There is much for me to do and I'm going to take it super slow actually.

Thank you to all that have sent me an email about it. I do know there are bugs and some feeds don't work (yet!) — I'll get around to it next week.

I did have some extended downtime as the server ran out of space — I didn't fully investigate but it was the log of the background process, it logged the responses of the feed as I am firing off another background process for each feed so it looks like the while feed object is logged. For now I upgraded the server with more space and oomph. Everything seems A-OK, although I can see it creeping up again.

That also made me change the time interval of fetching feeds. Instead of every 1 minute it's now 5 minutes. I do need to think of some other way of doing this... although it works pretty well. Even fetching every 10 minutes should be enough.

As I said in my article it's just a moment in time.

Other stuff

Tinylytics is humming along nicely and has been stable. No updates here yet except that it has a temporary new logo (well, it's been there for a while), which will be replaced by another new and way better logo — if I can get my feedback over. I also moved the changelog over to Scribbles.

Talking about changelogs and stuff — I feel everything is a little bit too spread out in terms of content, so I am planning to maybe consolidate some of these blogs and changelogs into one and separate them out with categories. Probably a good idea.

Podcast — I recorded last week. It's not time yet. I'll work on it again in July perhaps. No rush.

I do feel a little spread out in terms of projects, and I need to think about some stuff and how to go forward.

Thanks for reading.

A moment of pause on the Fediverse

Update: Note that my fediverse address has been deleted and I am no longer discoverable there. Check out my feeds page to find ways to follow me (RSS or others).

I’m going to take a break from the Fediverse for a while. I’m going to try and go down the RSS only route for some time and see how it goes.

I’m incredibly inspired by Manuel and Amit.

Please have a look at my feeds page and pick up one that suits you. If you don’t have a feed reader, please get in touch and I can give you access to Sublime Feed. You can read about it here. Of course you can just visit my site and read here.

I’m also planning to restart my podcast. Suggest you subscribe. I will most likely share some project related stuff and small updates on those in a changelog style.

I probably will be back at some stage. I am done for now.

My interest lies in building software... so please follow along — this may just have a negative impact on everything I do — I have to be OK with that.

Here is to building, and blogging first (even if it's just for myself).

Please also feel free to email me at any time if you want to converse (in private).

✌️❤️

An introduction to Sublime Feed

It's my birthday this week (apparently I am turning 38 on the 8th according to my calendar reminder — I never know my exact age), and June is generally an awesome month, and so I am planning a few things to kick things off.

Today I am giving you a small breakdown of Sublime Feed, my feed reader I am building, what it does and doesn’t.

Let me just say this is how I personally want a feed reader to work and look, which means it's absolutely bare minimum right now... no bells and whistles. Just a feed of posts that automatically get fetched (no manual refresh button), no unread count (just a nice little "hey, this is new since the last time") and a love for the web — that means, for now, all posts you see will always link to the respective website.

I really love the web, well... most of it anyway (minus the ads and whatever cookie things), and seeing each personalty of each site really brings it home for me (especially if they are personal ones). I totally get the appeal of having a dedicated reader view, and that is something I will work on — but not today.

Exposing you to the real website also invites exploration, and I think as a default this is what I always want to have — yes, many reader apps have taught us otherwise — I am here to say that it’s OK. Some apps do this so very well and have real good taste.

I’ve been using Sublime Feed for the past week, and I am really happy with the way it already changed my habit of reading. If you want to have a feel for it there is the Scribbles Explore feed that displays posts in a very similar way — hey, I gotta copy where I can.

I’ll say this now. It’s not for everyone, and it never will be.

The Feed (My Feed)

So this is your very own, minimal, feed. It displays posts for all your subscriptions that you have, with an easy to see accent colour (which you can of course customise). Right now there are no favicons or website icons that you can override — I’m gonna work on that soon.

The motivation for accent colours and allowing you to override things is that it’s a personal experience for you. Your reading habit is yours and I think it’s nice to be able to tend ones garden.

"My Feed" shows a maximum of 50 posts per page, with up to 500 total posts. It’s all paged. If you want to read anything beyond the 500 you can always go to each respective feed and go crazy.

Here is my "subscription" page for the Scribbles Explore feed:

It gives you a quick overview of options enabled (more on that in a moment), and when it was last fetched. The fetching happens automatically.

Subscriptions

I had a hard time with naming this... because what is a "subscription"? Well, it’s just a feed, right? Yes... but it’s a feed you’re subscribing to... so I don’t know, maybe the wrong name, but that’s what I went with for now.

You subscription list is sorted by the latest you have added — I’m gonna add more filter options at some stage. Don’t forget I am only 1 week into developing this.

There is also an option to pin feeds/subscriptions (see what I mean?) to the top, donated by the paperclip icon (again, probably the wrong icon here). Pinned feeds also have their own dedicated "Pinned Feed" section, similar to "My Feed" — it’s just all the posts for all pinned subscriptions.

The idea is also allow a quick access to your favourite feeds from within the little menu (the logo has a dropdown like Scribbles).

I also wanted a bit of playfulness here, so I added some hover animations... so things just pop — here is Kev’s site jumping out at you as I hover over it:

Each subscription shows the last post date (again, not the best icon). Originally I had the time when the feed was last checked, but that felt a bit too much... and again FOMO inducing, so I got rid of it. Just know everything happens in the background.

It would be nice if I sorted that list A-Z or by last post date.

Anyway, one week in and that’s where I’m at for now.

Each subscription can be edited, minus the feed URL. You can add a name that suits you because sometimes I can get it wrong, the feed has incomplete data, or you want something that works for you. Then there is the accent colour of course. I went to each website and picked out the most prominent colour and added those as and when I added them — again I am tending to my own garden. Right now, when you add a new feed, it’ll choose an accent at random. I may offer a "suggested" accent for popular feeds.

On top, I am planning to surface a favicon and also allow you to upload your very own image at some stage this month. No idea when.

Then we have some extra options. Something that will hopefully set this apart from other readers.

First: You can surface author data, for feeds that have multiple authors and it’ll show next to the "subscription" name on the feed timeline.

Then there is an option to hide posts from your feed (My Feed) for a specific subscription... and this is what I actually really wanted for myself. I would love to follow a blog, but not have it show up in my general reading routine. This is for various reasons. There is a similar option in Gluon where I can "Pin" a user profile without actually following. Great for feeds that are more dynamic and have a lot going on. Or they can be on a subject you want to keep an eye on without wanting to have it show during your normal reading time.

And of course, you can pin a feed which then pushes it to the top of your subscription list and also appears in the dedicated feed.

One thing I want to add soon is have an option to get an email when a specific feed posts, for example Hypercritical. That’s one I want to read each time John posts, and I don’t want to miss it because I took a few weeks off from an otherwise busy feed.

Some tidbits

Of course everything is very basic right now. There are many feeds that I did not yet try and will probably fail. Posts that only contain an image with no post title or any other content don’t yet work.

There is a simple marker that shows your last read position — it’s updated every 15 minutes as you view the site and eventually disappears. I didn’t want to do anything too clever, just have a small indicator where the last latest post was. Because you loaded the feed page, it’ll know what the top most post was, and it goes from there — there will be ways to make this work better... but it works for my needs right now.

Feeds are automatically fetched in the background. When you add a new feed, it checks if it already exists in a global table, if so, you should immediately see some posts — if it’s new, it’ll go ahead and fetch posts within a few seconds. It’s then kept up to date every minute or so — something I will keep an eye on to see how it works out with more feeds.

I haven’t thought about "private" feeds yet that require some sort of login. And I probably won’t. I also don’t know about Podcast feeds, I need to experiment with that... it would be nice if I could surface a little player on the post itself.

As I said earlier, the post links straight to the website. I do store the text of the post so I could potentially use it for more than just a little preview. That will come and I have some great ideas already.

I have also worked on a "Mute" list last night, but decided to scrap it for now and will work on it on another weekend. The mute list just allows you to add words, which in turn filters out those posts in your feeds. Great when you agree 80% with the posts, but don’t like some of the other hot topics.

There is also no concept of "unread". I don’t need that in my life... and I know some of you do. I think having an unread count isn’t healthy. Each time you load up your feed it’s a snapshot of this very moment in time and you can just pick and choose. I think it’s easy enough to remember the post you just read and move onto the other.

I also understand that a lot of people don’t need another "service" for their reading needs — that’s OK too.

So...

... well, considering it’s all super basic and things are surely going to break... and that you have been warned... and that you understand that I won’t be able to cater to everyone just yet... you can email me here to get a registration link. Just don’t send me an empty email (makes me sad).

Sublime Feed will be paid, but not that soon — there are things I want to get in before I open it up. I am not sure about the timeline, but know it will be the same $5/month like everything else I do. I am still working out the details on how that looks, maybe a trial period or 10 free feeds — I really don’t know.

I would of course appreciate any bugs you encounter with adding feeds so I can make sure that I handle a diverse set of feeds — crazy how different each feed can be!

I don’t think I’ll be able to respond today with invites, but know it will land in your inbox by next week.

Worked on a rudimentary "last post" marker for Sublime Feed. If you've visited the feed page, it'll try and get the latest post that was at the top and set that in memory (using Kredis) — that is then used for subsequent requests so the marker stays at the same spot for 15 minutes.

Hmm, so my web app for Sublime Feed is nice. Need to figure out how to refresh the post list when you open it though — maybe through a service working perhaps. I can see myself doing an app for this though.

Standalone web "app" for Sublime Feed — gonna give this a test over the weekend as we're away. Love it a lot already! Best thing? No pull to refresh... it just does everything for you for that moment in time.

One of the things I wanted to do for Sublime Feed is have a dedicated "pinned" feed, so you can just read all the important subscriptions you have in a separate view. There is also the ability to just hide posts in your main feed — great if you just want to dip in every-now-and-then.

A list showing a few "feeds", 2 of which are pinned and one that has a hidden icon, meaning it will be hidden from the main feed.

Further on the subscriptions in Sublime Feed, when you navigate to any of them, it will give you a list of posts and of course bring across the accent colour — it's nice. Missing favicons and your own uploaded image if you don't like it hehe (soon).

Super happy with the way the subscription page is starting to look on Sublime Feed. It's got the latest post date and also when that feed was last checked.

Micro.blog is more than a pretty good blog hosting platform. It’s the distillation of everything I know and care about for the web. I hope to be working on it for many years to come.

— Manton's updated about page. Great stuff!

Was working on a few Sublime Feed bits this morning. Bringing across accent colours that are randomly set or you can add your own for each subscription. They are also reflected in your subscription list. This is just super basic and needs way more work. Happy it's pulling feeds & updating.

Well, happy that the super duper basics of feed subscribing and background fetching works for Sublime Feed. Here is some super basic feed with Manton's and mine posts from the feeds ✌️ So much to do 😅

Just some minor tweaks to choosing a feed screen for Sublime Feed. It adds what type of feed it is and also does a better job of handling feeds that don't include the hostname (DF for example 😱) — not to mention missing titles (sigh). Anyway, good exercise. Looks nice.

I've got some basic feed fetching and subscribing logic done for Sublime Feed. Looks OK so far. It handles a feed URL and adds a subscription straight away. If it finds multiple feeds it will give you an option to choose it. I might add a "description" also if it exists. Now to grab posts... 😋

If you're using Gluon and have push notifications enabled, please know that I made a mistake many years ago... so you have to go to the app and "re-activate" for your accounts please. If not, it'll be a little quiet until I figure out some migration... but that won't be today.

So happy to see all those amazing posts on the Scribbles Explore page — some are so very personal and open! Thank you all that write on Scribbles. It gives me hope that there are really great people and content out there.

And so it begins. Server set up and running. Deploys are working... now I just gotta actually start with some useful stuff 😋

"Well, it's been a little while since I wrote an update here. The truth is, is that it's been moving pretty fast!"

Updates and a changelog on the Scribbles Blog

If anyone has noticed, last week we replaced the little profile pop-ups on Micro.blog with rewritten ones. These were done with AlpineJS under the hood, but I went ahead and replaced that with Stimulus. They work so much nicer and way easier to work with now.

Let's see if anyone notices 😋 #changelog

If you're using the awesome Pika blogging platform, and want to use Tinylytics for analytics (you really should), it's totally baked in now — including some others. Super exciting. Very thankful to Good Enough to do this in a great way! ✌️❤️

Made a few minor UI tweaks to Tinylytics. Now you can hide the Kudos and Uptime tabs on a site by site basis (subscribers only). Also tweaked the way the embed code and site id are shown when it's all working (less cluttered). Plus some other minor things that only I will notice.

I guess I made a start to my feed reader. Copied across some basics from Scribbles... and it's up and running. Just need to fill in the blanks now 🤪