Consolidation

So, nothing written here for 2.5 months. What happened?

First, January. Nothing drastic, but I just needed time out. I did things with the family, played games, met friends, etc. No real side-project work other than keeping on top of email, twitter, etc. I wasn’t the only one. A couple of people I follow on Twitter went through a similar kind of funk. I guess having a break and having dealt with over 18 months of Covid restrictions was starting to take it’s toll for many of us.

But fortunately, in February, I started to recover my mojo. However, alongside this, Outseta removed their free plan. It’s been good for them financially, but again reminded me of platform risks – the idea that something key to your business changes the way they work.

So I spent some time looking at a new alternative, Filament Admin. It’s an open-source dashboard framework built on top of Laravel.

Now I’ve had a love-hate relationship with Laravel. I love it’s approach, it’s structure, and it’s ecosystem (the first-party packages that are available). But PHP on my laptop ran awfully. At one point whilst working on an API-based app I was getting 12-second response time when using an API client running on my laptop calling an API running on my laptop connecting to a database running – you guessed it – on my laptop.

That’s appalling. Laravel is one of the slowest app frameworks around, but it shouldn’t be that slow.

It turns out that my new laptop is a lot faster. Still not super-fast, but fast enough to develop on. And when I deploy the app to a $5 server on Digitalocean, it’s more than acceptable:

So I spent February enriching Filament Admin (which is meant as an admin layer on top of your existing web app framework, so only includes minimal authentication). The new framework I’ve got has:

  • User registration, login, logout
  • Password reminders
  • Email confirmation
  • Social media login
  • Auto-enrollment to a free plan
  • None, one, or more paid plans
  • Paddle integration
  • A database-driven pricing page for the plans and features
  • User profile management
  • Roles and permissions
  • User impersonation by admin (me!)
  • API key generation for the user

That’s pretty much all I’ll need in a SAAS framework for now. I’ve got some plans for a few other features, but I’ll add those in only when I need them, as I won’t need them on every site.

Then for each site, I create a simple(!) package which is added to the core app, and which:

A) Inserts the appropriate menu items

B) Handles the pages associated for those menu items.

C) Handles any schedules or jobs specific to the app

D) Handles any API capability for the app.

That still might be a lot of work, but it’s a lot less than replicating all the core stuff.

So now that’s done, I’m working on Notifium, my long-not-delivered project.

And this time, I’m not giving up till it’s live!

Similar Posts