Iain Cambridge

Iain Cambridge

@iain.bsky.social

1.2K followers43 following815 posts

Iain Cambridge reposted

I've finally added the audit logging I wanted in BillaBear for months. You'll be able to see what has been happening in BillaBear and by who. You'll also be able to see who made what changes to Customers, Subscriptions, and more. #buildinpublic

And I just spent 20-30 minutes trying to debug an ElasticSearch query until I realised that I needed to have my test sleep for a second so ElasticSearch could catch up.

"FOSSBilling is under active development but is currently very much beta software. This means that there may be stability or security issues and it is not yet recommended for use in active production environments!" after 5 years I guess that means it'll never be prod-ready

Cold Calling Sucks but that's why it works is such a good resource for just getting started cold calling. It helps not even starting with bad habits and it so much of it makes complete sense if you've been reading about copywriting and creating landing pages. So much overlap. #buildinpublic

Docker the tool to solve the "works on my machine" literally broke only on my machine. For some reason, a docker image got corrupted deleting it and re-fetching solved it. I spent far too much time trying to figure out what was wrong with my configuration.

I've sent a design brief off for the new marketing site for BillaBear but since I want to release 2025.01.01 on Monday I'm going to make some quick changes that hopefully improve it until the new site comes. #buildinpublic

After a few signups it's clear that the new onboarding process is a big improvement over what was there before. Before I was having people sign up and enter a card but never use the product. Now they're using the product straight away. #buildinpublic

One of the common issues with rewrites is they're often slower than what they're replacing. Production code has generally been optimized over the years and when rewriting things the optimizations are generally forgotten. This results in you're super duper new code being worse than what was there.

I wrote some "Open Source Alternatives to X" posts for SEO purposes this week. One already got a hit from Google. A small little win but I'm happy that idea kinda panned out. I was never expecting lots of traffic but it's somewhat high intent. #buildinpublic

The downside of using a swagger code generator for SDKs is that if there is a deprecation in a language you have to manually go through and solve that deprecation. But it does beat writing my own SDKs for 5 different languages. #buildinpublic

I'm a complete stats nerd. I love looking at stats to see how they are going. One of the silly pointless stats I look at is lines of code. (Helps remind me how much I've done). BillaBear's, a standalone billing system, PHP code is twice the size of my generic general-use boilerplate Parthenon.

I've been doing SEO keyword searches for the past few days. Everything I'm finding has a search volume of less than 10. That makes sense, it's not like you're searching billing daily. Seems like SEO isn't a good option for BillaBear at this time and other channels will be needed. #buildinpublic

I decided to check out the open-source alternative directories and two of them have a 6 month wait period to get listed unless you pay them. Honestly, at 6-months they're kinda hurting themselves. Their entire value proposition if you can find alternatives but if you're not listing them...

I'm improving the tax threshold system for BillaBear and making it aware of transaction thresholds and threshold types (calendar or rolling yearly). Tax sucks so much. #buildinpublic

So decided that I really am not a designer and I should try and outsource the new marketing site so I can focus on sales and readying the 2025.01 release of BillaBear. Only problem, I now need to write tech specs. #buildinpublic

Spent most of my time working on the new marketing site. Got very little actually done. Then I did 90-120 mins of coding for BillaBear. I added: Webhooks for usage warnings and tax thresholds, slack notifications for tax thresholds, and filter for if tax is being collected on country list.

It's got to the point I don't know what to integrate next. I've done * Xero Accounting * Easybill * Zendesk * Freshdesk * EmailOctopus * Mailchimp Possible options are: * Twilio notifications * Telegram notifications * Zapier

Time to build the first newsletter integration: 5 hours (included some refactoring) Time to build the second newsletter integration: 90 minutes Build it right the first time and it's easy to work with later. #buildinpublic

The basics newsletter integration is done. I started off with EmailOctopus but I'll add some more soon. You can choose the marketing list which is only added to if marketing opted in to. And the announcement list which everyone is added to since it's not for marketing. #buildinpublic

It's firework season in Berlin. Which means fireworks pretty much all day every day until New Years. Back in my day we knew to wait until it was dark outside so we could see the fireworks properly. Kids these days just wasting fireworks.

I'm really having fun just focusing on BillaBear development this week. So far I've created a basic integration framework for accounting software and customer support help desks. With support for Xero, Zendesk, and Freshdesk. Next up is newsletters with EmailOctopus and Mailchimp. #buildinpublic

I've started doing integrations for BillaBear. I swear, everytime I think "this is the worst documented API", another one comes along and is worse. My new worst-documented API is Zendesk. It's a challenge to find out what the request body for requests is meant to be.

I decided to work on integrating BillaBear with Zendesk next. They give you a 14 day trial, so there is deadline. Hopefully, it should be done in a few days. I'm getting excited it's integration time #buildinpublic

I'm going to spend the rest of this year coding and watching The Wire. The Wire is so good that I've watched it so many times that I can stop paying attention and go back to it and know what is going on and is happening. The perfect show to have on in the background.

I've completed the first accounting software integration (Xero) for BillaBear which included a basic framework for adding new ones. Now I'll build the basic framework for help desk integrations and once that's done I can just, hopefully, rapidly add more.

I've made it easier for people who are onboarding on BillaBear to know that Stripe needs to be configured before they can do certain actions. A nice small task to break up the tons of work it's taking to create an accounting integration framework.

TIL that PHPStrom struggles with 65k line classes and it'll just pretend that class doesn't exist. Even if you give it 8GB of memory to store it all in.

Iain Cambridge@iain.bsky.social

I'm starting to wonder if my computer is wanting me to stop working it's complaining that classes that do exist don't exist.