Console #182 - Interview with Alberto of Solidus - an open source eCommerce framework
Featuring Fleet, NewPipe, and Spin
🤝 Sponsor
This space is reserved for sponsors that support us to keep the newsletter going! Want to support Console? Send us a note at osh@codesee.io
🏗️ Projects
Browse through open source projects on OpenSourceHub.io, add your project to get more exposure and connect with other maintainers and contributors!
Fleet
Open-source platform for IT and security teams with thousands of computers. Designed for APIs, GitOps, webhooks, YAML, and humans.
language: Go stars: 1674 last commit: today
repo: github.com/fleetdm/fleet
site: fleetdm.com
NewPipe
A libre lightweight streaming front-end for Android. Supports YouTube, SoundCloud, etc
language: Java stars: 25859 last commit: a week
repo: github.com/TeamNewPipe/NewPipe
site: newpipe.net
Spin
Spin is the open source developer tool for building and running serverless applications powered by WebAssembly.
language: Rust stars: 4252 last commit: today
repo: github.com/fermyon/spin
site: developer.fermyon.com/spin
Solidus
Spin is the open source developer tool for building and running serverless applications powered by WebAssembly.
language: Ruby stars: 4781 last commit: 2 days
repo: github.com/solidusio/solidus
site: solidus.io
Get high quality projects and interviews like these directly in your inbox by subscribing to the free newsletter!
🎙️ Interview with Alberto of Solidus - an open source eCommerce framework
Hey Alberto! Thanks for joining us! Let us start with your background.
I’m Alberto from Chieti, a small town in the center of Italy. After I graduated in Computer Science in Rome, where I learned to code, I decided that the chaotic life wasn’t for me and I returned to my town with the goal of trying to live where a work-life balance is not a dream.
With my study-fellow Matteo Latini, living in another small city in Italy and a talented local designer Davide Di Stefano, we started Nebulab, a web development company that specializes in e-commerce and grow from 3 to some dozen of people all around the globe.
Today, I’m the CTO of the company, and I'm still very connected with the code. My favorite language and framework are Ruby and Ruby on Rails, because they maximize the productivity of small teams, which is particularly important for us to help companies of any size.
Who or what are your biggest influences as a developer?
I’d say DHH (David Heinemeier Hansson). He is the creator of Ruby and Rails, and I respect its work and consistency over the years with the open source and its love for pragmatism. I read all the books he wrote with his partner Jason Fried, and the culture we are at Nebulab is also highly inspired by their thoughts.
What’s your most controversial programming opinion?
Too many people push for using the latest trending technology before thinking about the real advantages to the health of the company they are working for. In particular, I’m generally against re-writing things instead of improving the existing ones. Most of the time, in my experience, it ends up costing more than fixing the actual problem with the current technology and, especially when it’s decided by some C-level or manager, it negatively impacts the team morale and long-term productivity.
Why was Solidus started?
It’s a long, long story; let me try to summarize it as much as I can. Solidus is a fork of Spree, a popular open-source e-commerce platform, back in the days of the first DTCs explosion. When the company behind the project was acquired, it was clear that it was about to lose its open-source nature, so Solidus was born. A big chunk of the Spree community moved to Solidus and contributed until today to what it is.
How does Solidus work?
Technically, Solidus is a Ruby on Rails Engine, which is a sort of plug-in that you can attach to any Rails application. Solidus enhances this application with the skeleton of functionalities needed to run an e-commerce store, leaving all the freedom to change it in any part as your business needs. It also provides a starter storefront, which is a ready-to-use template that any store can change with literally no limitation.
Where did the name for Solidus come from?
It comes from the ancient Roman coin (https://en.wikipedia.org/wiki/Solidus_(coin)) with a reference to the SOLID design principles (https://en.wikipedia.org/wiki/SOLID).
Is there a better name for an e-commerce platform whose target is developers? Probably, but I still love it.
What is the most challenging problem that’s been solved in Solidus, so far?
One of the problems we solved has been making some of the most important piece of the business logic code pluggable. Instead of telling people to monkey-patch existing classes to change their behavior, we made the whole behavior swappable with a configuration class. If you need that class to do extra things, you can define your own, which inherits from the original, and add what you need. Here’s an example of the exposed configuration: https://github.com/solidusio/solidus/blob/main/core/lib/spree/app_configuration.rb#L414. With that, each store can quickly build its own logic to merge orders without patches here and there.
What was the most surprising thing you learned while working on Solidus?
Well, it's the sheer diversity of needs in e-commerce. No matter how robust and flexible you build a system, there's always someone who'll throw a curveball at you with a unique requirement. It's like trying to create a one-size-fits-all glove in a world where everyone has different shaped hands. You've got your standard features, sure, but then comes along a merchant who needs something so specific, it's almost bespoke. This really drove home the point that in e-commerce, 'universal' is more a direction than a destination. It keeps you on your toes, constantly learning and innovating. And honestly, that's what makes this field so exciting.
How is Solidus currently monetized?
It’s not. Companies working with Solidus contribute to the project via GitHub. We are also collecting community donations via our Open Collective account. A group of stakeholders among community members chooses how to spend those funds, which is generally for events or support larger initiatives, like the Admin UX redesign we are currently working on.
Do you have any suggestions for someone trying to make their first contribution to an open-source project?
Don’t be afraid to make mistakes. In my experience, a common aspect of the personality of open-source enthusiasts is the will to help people. This is what happened to me at the beginning as well: by just submitting a patch and showing genuine interest in solving problems, even without the proper skill set, I saw a lot of people trying to help out with what I was missing in order to understand the codebase better and complete my contribution. Being “mentored” while solving a specific problem I was facing kinda unlocked my growth for that specific area and made me a better developer; that’s precisely what I love about the open-source community. Of course, there are also people who are not willing to help and seem annoyed when contributions are not coming precisely as expected. To mitigate that, reading and sticking to the contributing guidelines of each project will help a lot, and when it’s not enough, well, you did your part! If your patch is rejected, you most likely have something to learn anyway. Move on to the next contribution!
Loved this post? Why not share it?
Interested in sponsoring the newsletter or know of any cool projects or interesting developers you want us to interview? Reach out at osh@codesee.io or mention us @ConsoleWeekly!
Ana, you made a typo and used spin's descriptión for solidus