Jan 12, 2019
Berlin, Germany
Apr 15, 2019   |  By Tim Nolet
This is a short follow up to last week's story on Stripe Billing as a reader on Hackernews commented that it seemed we didn't handle VAT. We do, but I just left it out of the story. For those not familiar with handling EU VAT for SaaS companies: It's a bit of counter intuitive jungle. At least that's what some dedicated SaaS startups make you believe. Also, Stripe does not handle it at all. They give you a { taxRate: null } field for you to fill.
Apr 8, 2019   |  By Tim Nolet
When I started Checkly, all the typical SaaS things around billing, credit cards and prorating confused the hell out of me. I understood them from an intellectual point of view, but not really from an implementation point of view.
Mar 31, 2019   |  By Tim Nolet
If you run a SaaS, you probably want to show your users when they are almost running out of widgets. Or that they can get some cool feature on a more expensive plan. Or, in other words, how can you be nice and commercial in dealing with plan limits. Last week we already looked at how we manage plans & features for Checkly. That write up was very back end focused, so this week I wanted to dive deeper into how we actually show this to our users in a friendly way.
Mar 24, 2019   |  By Tim Nolet
How do you deal with what a user can do on their account in a SaaS app? Can Jane on the "Starter" plan create another widget when she is near the limit of her plan? What if she's a trial user?
Mar 17, 2019   |  By Tim Nolet
This is a run down on the basic multi-tenant SaaS data model underlying Checkly. Users, accounts, plans, that type of stuff. When building this, I found it surprisingly hard to find any solid info in the gazillions of developer and startup blogs; most where just to vague on the implementation details.
Oct 2, 2018   |  By Checkly
Use Puppeteer Recorder to fill out forms with inputs, drop downs, radio buttons, check boxes etc.
Aug 14, 2018   |  By Checkly
Puppeteer recorder is a Chrome extension that records your browser interactions and generates a Puppeteer script.