2024-11-11 06:23:00
As we get closer to the Christmas holidays, I wanted to clear the deck and tune in where I want to focus on the most.
There are many projects I’d like to work on and I feel that sometimes my lines are spread a little too thin — or in other words, I’d like to work on everything at the same time. However, this is one area in my character flaw that I won’t change. Because it works for me — even if at times it feels I am neglecting a project. It’s far from it and everything I work on is always in my head, twirling around in that background process.
This has been my biggest focus for the past 2 weeks. I really want to get Sublime Feed ready for launch. On what date? Perhaps end of November — so let’s see.
It’s been a super busy time with getting features in here that I wanted for launch and it’s best you just go ahead and check out the last 2 weeks worth of changes on the updates blog.
To summarise though:
Phew! Good fun!
In addition to this, it’s my first project where I started using Kamal Deploy. Sublime Feed runs on Rails 8 and it’s absolutely fantastic!
I’ve got to be honest, I was super nervous just getting started with Kamal... I was never one for Docker, and avoided it like there was no tomorrow. It’s healthy to keep an open mind though!
I was up until the very early morning to get this all sorted and deployed, and it was totally worth it. The thing was... to... just... start.
Of course there were some headaches, and things to learn. And that’s why I love what I do. Because when someone gives you the answer to everything, it’s no longer fun. Learning by your own means by absorbing information from around you is the best feeling in the world, even when the going goes tough.
I’m motivated to move over my other projects too, with some minor exceptions like Scribbles.
Hopefully I can keep the momentum and fully focus on Sublime Feed until the end of the year and really get it launched. Looking forward to it.
I do need to announce pricing — and I am a little conflicted on it at the moment.
Just a quick note that I sent out the "Sublime Ads is shutting down" emails. I’m targeting November 22nd, 2024 for a "soft" shutdown and then finally remove it from backups in the new year. I’ve mentioned this enough times now.
OK, that’s it for me this week. There are many things I want to reveal, but going to keep it close to the chest for now until I have something to show — I am excited...
And yeah, I think calling these "Update" is better suited than a "Weeklog".
Thanks for reading.
— Vincent
2024-10-25 16:41:00
It’s been a long time since I felt like I was making a dent with my work. I don’t want to tie that to getting an external keyboard for my now failed laptop keyboard. It’s really been driving me nuts for the past year or so, especially when the Touch Bar also gave up. 2 weeks ago around 25% of the buttons stopped working (or randomly working). That really is terrible and not so great engineering.
New ways of typing have been formed since then and, you know, I am too stubborn. I try and will myself through the bad times, it’s just how I operate — no matter how low things get, I still work through it. However, I think the years of working through this ultimately left me in a bit of a declining state of mind.
I love it when my tools just work. It’s the tools that enable me to do what I love. Code. So, greener pastures, healing to do. I am loving the new perspective of having an external keyboard and monitor (even if the screen is only at a 2K resolution — working through it 😅). Should have done this earlier 🤷♂️
So, onto projects, and I gotta tell you, there is just too much for me to write here at the moment. It would probably take me all day. I will bring back the regular posts hopefully starting next week (just hope I am productive 🤣) with project by project breakdowns.
For now though, I invite you to just go through the update blogs on each of my personal projects:
Over on Micro.blog we shipped an image modal/lightbox for the timelines, and I think it looks and works great. Manton has a post about it here. Some tweaks to deploy to it that I spotted last night. It’s great to be working on the Web App a little again — I’ve been super consumed with the apps (MB & Strata) over the past few months (totally worth it!).
I’ve been planning a few things that I’d like to start. That’s all I am saying. Both, yes... both, are more for personal exploration. The domain name for one of them renewed just last week, so it reminded me to have a look at that again. The other project is just a personal thing, which will lead to cool things for Sublime Feed and Scribbles (especially Scribbles).
Thanks for reading.
— Vincent
2024-10-19 05:31:00
Yikes, it’s been a while since I last wrote here and gave you all an update. I want to be honest with you all... it’s been super difficult, and continues to be even now that I finally managed to put the time aside to write here.
I wanted to avoid to write anything too personal here since summer, and I think I will for once just write about things not too project related.
My laptop has been degrading over the past few years and it finally depressed me enough. I am actually typing this on a new keyboard that I bought — my laptop now inside my desk, hooked up to a screen. Heck, I even bought a new mouse.
It feels like I have to learn to type all over again. The mouse is fantastic and the keyboard is nice also (because it works). Not so great is that I have to type on a 2K monitor that has a terrible colour profile. Everything is blurry. Yet, it avoids me having to use my keyboard on my laptop — which is around a $1000 to repair. Yikes.
I love my laptop a lot. It still runs great, minus the keyboard and Touch Bar. I miss it already!
However, this whole experience of degrading hardware has left a sour taste in my mouth — especially for Apple. And you know, right now, even after many months... and if not for many years since Steve has passed away... it’s the system I use the most. It still feels right, even though there are other options out there.
Heck, I tried Ubuntu and installed Omakub on it — many things just clicked for me. There might be something there for me. However, right now, I don’t have the means to explore. In a way I am here, I have what I have, and I need to work with it. It’s not perfect. In fact, exploring other avenues, it shows me just how tightly everything is integrated with the Apple ecosystem. I’d love to get a Framework laptop, but there are things tying me to the Apple ecosystem that just don’t make it feasible right now.
I’m a minimalist at the core, even though sometimes it feels like chaos.
I miss typing on my laptop, I really do. It’s a 2018 Intel MacBook Pro and I love it a lot. It still delivers, minus the keyboard and battery — and I think this was still peak Apple. Apple make great hardware, I’m not gonna deny it.
I was super close in throwing in the towel with a lot of things. The summer certainly didn’t plan out as I wanted — even if I had super low expectations and goals.
We’re also on a new school schedule and that has really thrown a spanner into a lot of things. I am thankful that I have a choice of my work hours, even if I’ve been a little unreliable with some of my client work — however I am so grateful that over the years I have made such great relationships and that I can be open about a lot of things.
I want to thank Manton, David, Michael and Raoul for sticking with me. You know that I always go above and beyond no matter how shit my day might be. I am here for you, as always!
OK, I think I’ll keep it at that for now.
Also, want to thank you the folks asking me to return to Mastodon (ActivityPub) over the past months. Maybe one day, but that day is not today. You can find me on Micro.blog and X.
Thank you all for following me and I hope to have a better update the next time we meet here. Now that I have a keyboard that works! That screen is terrible though!
— Vincent
2024-08-31 02:40:00
Well, it's been the last week of summer holidays, school starts next week — great for the kiddo who is rather excited.
This week saw me working on getting Docker set up with the development flow for first timers — and I gotta say it works an absolute treat. Historically I avoided Docker because it brings my computer to a crawl, however I found OrbStack, thanks to the power of the people I follow — and I couldn't be happier. It just works and doesn't bog down your system.
It's been a great learning experience even if I don't understand everything that's happening — however it just works. I'll let my brain handle the background job of understanding it better.
There is more here we need to do, but feel confident we'll get there and let's see if this ultimately makes its way to production also. Funny enough, the docker set up is pretty similar to how it's run. One puzzle piece I want to figure out is to also get the static pages building locally so that everything just works (and can be tested).
Anyway, happy with the progress and the learning done! Even if it's just Manton and me working on it right now, it'll be super easy to get set up for anyone else.
Apart from that... I reworked the way push notification registration works on the Micro.blog app and hope that'll fix a few issues that some folks had. It also introduces a new "Push Permission" prompt — instead of when the app first starts, it'll only do it when you're navigating to the Mentions tab. A good quality of life improvement.
Apart from the new logo, which is fantastic and certainly anything better than I could ever come with, with Sublime Ads, I made a conscious effort to replace some of the React code snippets, that some parts use, with just a pure Turbo Frame. The effect is great and hope to make more progress on that as time progresses. The ultimate goal is to remove any React based code.
On top of that, it's a much better experience for users that can be brought across the customer portals also — excited to see where I can take that. Not to mention developer happiness.
Whilst not mentioned before, I completed the billing implementation that I took from all my other projects and adapted it to Shameless. Happy with the way it works. We're using Lemon Squeezy for handling payments.
Because of my new found love for Turbo, now that I have a somewhat grasp on it, I'm hoping to pepper this across a little bit to check for usage and update you on how you're doing with the free API usage credits you get.
More to come.
Over the weekend I introduced auto-saving... and I think it's pretty awesome. When you start writing a new post it'll start auto-saving it, so that when you loose your page, or disaster strikes, it'll be available to you in drafts. You can read more about it and watch a little video I made here.
As of today that works across new and draft posts, plus a few fixes have been made where sometimes it did the wrong thing depending on the blog settings.
There were many other little changes and bug fixes that I worked on — one of them is the functionality to stop you from posting your post if you're still uploading your image or video... that had happened a handful of times and I'm super happy to have this in there now.
There are some abstract ideas floating in my head on what to add next, so colour me excited for when my brain finishes the background process.
Thank you all that have given me feedback on auto-saving — it means a lot!
I'm having problems with Apple Development, especially Xcode — it's horrible and slow. In contrast, Android Studio just seems to work these days. Android Studio built the Strata production build in less than 10 seconds after I loaded it up yesterday. Colour me surprised! However, for no good reason and zero changes, everything just failed to load on the Apple side — no simulator, no projects.
I was so frustrated that I installed the Sequoia beta to see if it would fix anything. Upgrade went smooth. The OS is good and feels stable — I had zero interruption to web development and Android dev continues to work. Xcode beta seems to launch faster, so kudos for that. Before that it was a 30 second wait time before the little project picker came up. I'd say it's less than 10 seconds now. However, still issues remain, but happy my simulator is running now.
Anyway...
I've been feeling super inspired after listening to Lex Fridman interview Pieter Levels (@levelsio). Great episode and worth a listen. It inspired me to do the following:
Oh and I'm feeling inspired to bring more videos and "how-to's" across my projects. Nothing concrete yet though.
Thanks for reading.
— Vincent
2024-08-24 01:37:00
Finally some NEWS... not. Just an update on all things "projects". The summer holidays has really thrown a wrench into the routine of writing and shipping. I am surprised I actually got anything done. Although it's clear to me that for now client work has to be top priority during this period.
Ever since I started with Tinylytics I wanted to bring the ability to record unique hit data to everyone. There was an option that allowed you to turn this on if you were subscribed. What that did was pass back a random string of characters to the script, when it loaded, and store that in the browser temporary session storage. That worked great and I was happy with it! With that string I could track the same user (or random string) across multiple navigation visits to your site, if they kept the browser and your site open — once they closed it, the browser would then automatically delete that random string.
However, there was always that itch I wanted to scratch to make that better (because it was sometime unreliable) and also... well... remove an extra line or 3 from the script as it loaded — because why not? So I set about building a super simple way of making that happen without ever breaking privacy using the data I already had as the hit was recorded.
I already wrote about it on the Updates blog, so read it there for a longer winded explanation of what I did.
To sum it up real quick though, it'll use all the incoming data when it's recording the hit, create a special "hash" of multiple data points, and encrypt that (so you can't decrypt any of the data) using a special salt key. That salt key is automatically rotated every 12 hours and will be deleted after expiry.
It works pretty great and I'm super happy with the way it works.
That means every hit now automatically has this data available to use and if you're subscribed you can access the data. There is also a new graph that will show you the combined data. It's pretty nice.
The next thing was to explore exposing the usage data for your account. Tinylytics has a free tier, which I think is very generous and has enough features for most people. However, I never got around to actually showing this — so now you can see your usage data on your account page (or billing page).
Right now I don't really enforce the limits although have started contacting people that are way above the limit. In addition there will be a little button at the bottom of the page if you're at a limit of 98% that will ask you to upgrade.
Usage data is calculated on an average of your last 3 months — I think that's fair and also allows the occasional burst, which happens.
Right now I am unsure what the next step would be if a user doesn't want to upgrade. My plan for now is to just disable the admin interface and redirect to the billing page. Hits will continue to be recorded for some amount of time I guess. I'd like to make sure though that the hits data can always be downloaded no matter. Hmmm.
There were many little changes throughout the site and how data is loaded — especially improving responsiveness when you have a site with a lot of data. Again I am super happy with the way things are working.
I did give the homepage a little refresh too. I like it more now. More to do here, especially on wording.
What is shoutouts? Yes, very good question. Not going to lie here... but it's been sitting there humming along just nicely and making not very much money at the same time. It's pretty niche as is and the reach is low and is very specific. I love it a lot because, whilst simple, it taught me a lot.
As always I have a long list of ideas that never get any attention because I am happy with the way it works... and then I just work on something else.
Recently I switched the old domain of .lol to shoutouts.page — it's automatically redirecting and everything should be working as it should. I much prefer the .page handle because it'll work better for what I have planned.
I'm reassessing a lot of things now and would love to provide free products as best as I can — however at the end of the day I still like to make a living from my little projects.
Tinylytics makes the most in terms of a more stable income, although things have been super slow and also had to deal with some errors by my payment provider that paid me double for each subscription that used PayPal (urghhh). There are usually 2 - 3 paid sign ups a week — now it's around 1 - 3 a month (and a few cancellations also — the natural order of things). Gonna blame the summer holiday for this. Hopefully I'll make a small dent here again!
Shoutouts income barely covers the server bill, which isn't that much at all. So it's basically running at net zero. So that's a positive I guess. If I can get 1 or 2 paid sign ups a month, then that would be a good target for the next year.
Scribbles saw a decline of 60% - 80% of active users, although it's been picking up again very slowly in terms of people blogging. A lot of folks like to experiment with different blogging platforms. To this day it was the best short term success of any of my projects. Great to see so much enthusiasm around blogging. I am happy I built something that I wanted, especially that I have a very unique use case for my updates blogs. Paid sign ups are far and few between. Scribbles has been the most expensive service to run, to date, too. Great eye opener.
Saying all that, I need to concentrate where I can make the biggest dent in terms of sustainable income and fun. So I'll focus on Tinylytics and Scribbles as priority.
I haven't had any regular payouts since May...
As always I do love working on many things at once and, now that the summer holidays are nearly over, I'm hoping to get back into a more stable routine again. Working for the web gives me a lot of joy and always love to share what I'm doing.
Thanks for reading.
— Vincent