Zero Bilisibility
Now that the LLM craze has not just ruined the GPU and RAM markets, it has now moved on to hard drives. Not content with just consuming physical resources, it also seems to be eating everyone's brains.
I run a local meetup where people come to work on their side projects. At one point this week, I pulled my head out of the physics simulation I was coding for my personal site (my personal site obviously needs a physics simulation) and realized every single group was talking about LLMs. No one was actually talking about their side projects.
I'm there to build cool shit, not discuss the optimal ways to get LLMs to build hypothetical cool shit for me. It's disappointing to see these tools eating up so much of the oxygen in the room when we could be discussing something more enriching.1
Both Super Good and the broader Solidus core team are currently putting some thought into how to improve the state of the Solidus ecosystem.
Solidus powers hundreds of millions, if not billions of dollars in eCommerce sales per year.2 Despite that, the onboarding experience can be a bit confusing, and bitrot often causes onboarding hurdles to pop up that don't get addressed immediately, because spend almost all our time working on existing stores, not spinning new ones up.
That onboarding experience is critical. It's important that when people try out Solidus, they're not just able to get a store running quickly, but also succeed in navigating the extension ecosystem. It can be tricky to understand the role of extensions, which ones are maintained, and how to get started with them.
These issues aren't obvious to those of us who have been working with Solidus for a long time. We know which extensions to use. We can tell if an extension is maintained and probably know the person maintaining it. We have context that new users don't have.
There are a few conversations happening behind the scenes that I want to summarize here for the sake of visibility and transparency.
Monorepo
Solidus is already a monorepo, kind of. The root of the solidusio/solidus GitHub repo contains the meta-gem, and the various other gems that make up the core of Solidus are in subdirectories.
We're discussing moving the officially supported extensions (like the main payment extensions) into the project. This will make it easier to keep them up to date with and make it clear to users which projects are actively maintained by the core team.
Extension CI
There's some ongoing work to create a unified version support matrix and CI setup that we'll then share across the extension ecosystem. This will help us keep the version support story across all the extensions consistent without having to update individual extensions every time a new version of Solidus, Rails, or Ruby is released.
The Starter Frontend
Sofia and Alistair are working on sorting out the Starter Frontend. Besides the issues with CI, we also need to figure out the version support situation for the project.
Because it's a project that you run once when you set up your project, we don't need to maintain backwards compatibility on it (except for the purposes of core and extension test suites).
This means we need to maintain branches that support all supported versions of Solidus/Ruby/Rails, but real users only ever interact with the latest. Nobody chooses and old version of Solidus when they start a new store. This means we can come up with more suitable version matrix for the project.
Database Explosion
The current version matrixes used across the ecosystem are too damn big. We can trim them down. Running the test suite on SQLite for every version of Rails and Ruby is pointless. While we shouldn't break SQLite compatibility, no one actually runs eCommerce site on SQLite in production.3
Realistically, we rarely experience issues with database compatibility and those issues are always fixed on main. We should focus on database compatibility for main itself and trim down the matrixes for historical versions.
Summary
These are all ongoing conversations with the Solidus team. If you have thoughts or questions, let me know. (You can just respond to this email.) Nothing is set in stone and much of this will take time to implement.
Solidus continues to be a great platform that people are building really cool businesses with, and we're here to make sure the platform continues to serve both its longstanding and new users.
I totally support artists boycotting streaming platforms. Streaming platforms, even the ones that are less evil than Spotify, are harming music. Anyway, today's pick isn't on Apple Music. Not sure about the other platforms.
Here's what I know about Scythe:
- They look pretty young.
- This is their debut record.
- They shred.
If you like thrashy death metal, you will enjoy this. It's a tight record with no weak spots, though the drums are particularly excellent. I'm looking forward to future records from these guys and in the meantime I'll be spinning this one more than a few times.
-
For the record, this wasn't meant to be a shot at anyone at the meetup. The conversations did shift to towards topics I was more interested in. It was only for a moment that everyone was talking LLMs. And regardless, other attendees aren't responsible for discussing anything other than what interests them. ↩
-
Being an open-source platform, we have no way to pin down the real number. My napkin math says it's north of a billion based on the stores I know of, but I have no way of estimating the stores I don't know of. The New England Patriots pro shop was on Solidus for a while before Fanatics took over the whole NFL pro shop space and nobody in the community had any idea. ↩
-
I'm fully aware SQLite in production has been a hot topic over the last few years. It's a really cool approach, but Solidus applications are too write heavy for it to be sensible for anything but the smallest stores. ↩