Vincent Ritter

← back to projects

tinylytics

analytics for small websites

tinylytics is designed for small websites, like personal blogs or side projects. It's ephemeral in nature, easy to use, and gives you just the right amount of data, without fuss whilst keeping things fun (like an old school hit counter on your site).

Project posts JSON/RSS Feed...

Made a few tweaks to tinylytics today, namely around performance of the list view when you have loads of sites with many hits. I'm monitoring how that looks in practice (so let me know).

Also, when you change your timezone, it'll attempt to set the next site report send time accordingly.

Installing Ruby 3.2.2 to the Tinylytics server and running some upgrades. Might affect uptime for a few minutes.

Tinylytics is gonna smash through 1 million combined page hits soon... and I'm gonna miss it as I have to go now haha. WOOOOOO!

Most likely will hit 1 MILLION page hits across all sites on tinylytics this week. Just want to say a HUGE thank you to all that use it ✌️❤️ You're all fantastic!

If anyone is using tinylytics and you wrote some nice words, or bad, please let me know. I'd love to add some testimonials to the homepage at some stage. I know it's still early days, but would love to hear from you: hello@tinylytics.app.

If you have email stats enabled for your sites on tinylytics, it'll now use your timezone when calculating the next Monday at 09:00 AM. This will not work tomorrow, but will work for the next Monday, unless you disable and enable it again in your site settings.

Slowly starting a changelog for tinylytics too. Only did November so far and will make sure to populate the other months as I go.

Fixed an interesting issue where a "hit" was saved, on tinylytics, which then would run a little background process to update the lifetime country flag list as it was "created". Funny enough though, the hit was not yet fully created, so it failed at times... depending how quick things were 🤷‍♂️

Approaching 70 paid subscribers on tinylytics. Thank you to all that support my work, it really means a lot to me 🙇‍♂️✌️❤️

Just a nitpick little thing, now you can clear the path filter, on tinylytics, but keep the rest of custom filtering intact. I got frustrated that I alway had to reset the whole filter.

You can now set your timezone in tinylytics, in account settings. As default all data is shown in UTC, but I know folks want to see their data relevant to their day. Still a little experimental but I think it works A-OK. Email reports still send at the same time, something I'll work on soon.

Just added section quick links to the site hits page on tinylytics. They sit below the graph and you can quickly jump between sections that interest you, for example countries. It'll stick to the top of the page when you scroll. Great if you have 7,000 or more paths. Thank you Jason ✌️❤️

New payment provider for Tinylytics

Before I get into this post, if you have an active subscription and have subscribed before today, please don't worry, nothing changes right now, eventually you will be moved to the new payment provider automatically (see end of post).

OK, now let's do this.

I moved tinylytics away from using Paddle as the payment provider. The short story is that I had a very unpleasant experience getting set up, despite incredible promises. On top of this, except that they swim in investor money (which worries me), their support is abysmal with an "account manager" that even talked to me "camera to camera"... and never replies.

Even though tinylytics went through a "approval" process and it was accepted, when the first payout was due, with no communication on their part, I learned that I need to basically explain what my business is and what the website does (even though it says so). I had to investigate because there was no payout for nearly 2 months. It was like having to explain the difference between a circle and a square.

It was incredibly frustrating for me, because it took over 2 weeks to get resolved because emails were just not replied to, and I even told them that I need to make plans to cancel, and refund, all current subscriptions in that period because I didn't want to hold money that would never make it.

I see Paddle everywhere but I've had such a sour taste in my mouth since.

Right now, there are no issues with payouts, but I already dread the day I have to email them.

On top of this, the integration and their API documentation is lacklustre at best. I did make a mistake of using an off the shelf payment management framework for Ruby on Rails — which comes highly recommended and supports different payment providers like Paddle. For speed, I thought, this is the way.

Since then I had so many little paper cut issues with handling payments, specifically because Paddle has some weird ways of handling subscriptions, and minor issues with incorrect data being set, that I was even more fuelled to move away and correct my mistake and just handle the whole implementation by myself.

So, last weekend, I did... and it launched today.

Enter Lemon Squeezy 🍋

They say it's all in the name. Lemon Squeezy. I knew these guys existed even before I went with Paddle, but again... I was dumb enough to go with supported providers for the above mentioned framework.

A few weeks ago I emailed them, and they got back to me... and even approved my projects there and then. Just genuine easy going. So it was a good start.

Lemon Squeezy is a Merchant of Record, which means they handle all that nitty gritty paperwork around local taxes and paying VAT to the correct authorities... because, at the end of the day, I don't want to do that because it's such a massive headache.

As I was working through integrating their payment flow this weekend, I came across a few wishlist items and also some minor bugs... they answered within 24 hours and even implemented some changes just a few days after. Now we're talking!

Their support has been great, and it's exactly what I need. Their documentation is also ace!

On top, they're run by a small team and they're independent, growing from their users only. Another few ticks in my boxes.

Whilst their fees are a tad more than at Paddle, but not much, I am happy to support them on their journey.

What's changed, what's next

I rewrote the whole payment flow and now it even includes confetti (that's when I was sure this was worth all the effort). You'll just have to subscribe to see them, if you didn't yet haha. I like a little bit of fun like that and I am happy Lemon Squeezy includes this little eye candy.

That allows several things that were not possible before with Paddle:

  • I can easily troubleshoot any problems that might arise. In fact, I don't think there will be problems anymore — now that I have complete control and overview (technically). This was a bit of a chore with over the top abstraction of the above framework.
  • You can one-click cancel your subscription with no weird flow.
  • You can one-click resubscribe if you did cancel and you're before the last day of the expiry date.
  • You have a dedicated customer portal that allows you to change your card details, billing details, grab past invoices and even change your subscription status, including allowing you to switch between the monthly and yearly plan (I can easily include the switching within the billing page also).
  • There's also a much better overview on the billing page which card is being charged and when the next payment will come through. Usual stuff... that wasn't there (mostly my fault with using the off the shelf solution).

I mean this is just scratching the surface right now and there are many new cool things I could do now, with ease!

Knowing that I can support an awesome independent business is also a big bonus point for me.

There are still minor things that are missing and some very minor edge cases but I know some of this is coming soon and also getting tweaked, so it'll just get meaningful better over time... not really an issue once you're subscribed 😋 (Just some UI and UX kinda things actually).

What about existing subscriptions?

Good question. There is no change to existing subscriptions right now. You'll continue to be charged by Paddle and you'll still be able to do the usual things on the billing page, like cancel and update your card.

Lemon Squeezy offer a migration from Paddle, and I am in talks to make that happen at some stage. That time is not set in stone, but will probably happen next year. It should be automatic and I would communicate this to everyone applicable beforehand.

If you're getting close to your renewal date, I invite you to get in touch so you can move over already (if you want to — I know it's a pain).

Closing thoughts

I wanted to keep this low profile, but because it's such a significant change, I thought it better to let everyone know just in case, which I doubt, if things break.

Why not "just" use Stripe?

Stripe are great. In fact both Lemon Squeeze and Paddle sit on top of it. However, Stripe only handles payments and not the nitty gritty paperwork that's needed to stay compliant for tax reasons throughout the world (especially Europe). I don't want to do accounting, I only want to create and ship great little projects. Tax is already a headache for me.

Thanks for reading, onto better times ✌️❤️

I tweaked the way the embed script loads for tinylytics. I can see a few problems where you update a theme or plugin on Micro.blog and it'll wipe the ID from your settings.

If that happens, it'll call this URL: `/embed/.js`. That's wrong and you should obviously make sure to use your correct site id after updating, but now it'll try and find your site from the inbound data.

It's not perfect though... Over the weekend I'll implemented an email that goes out once it tries and load your site this way so you can make sure to correct this.

Further I might limit this, to the amount of times it loads the script this way before disabling the script load. Hence the email reminder to check the settings.

If you've recently updated your Micro.blog theme or plugin that uses Tinylytics, please make sure your embed code still has your site specific ID. I can see a few requests with blank embed codes 😋