SPOO — Not a platform, a framework for building platforms
A journey to creating a new approach…
Unlike existing development platforms, SPOO is a framework for building infrastructure-independent platforms and next-gen applications, technically adjustable to any need. It’s a new and innovative way to make real-life digitalisation happen. Anywhere and at any scale, for developers, businesses and users.
This story is about the motivation behind it and how it got started.
About a year ago, I found myself sitting in my office, drinking a Nescafe and thinking about which platform to choose for building an application that I had in mind.
I figured, the options are so diverse and the decision therefore so hard. Not just from a developers perspective, but also from a business standpoint.
There are “low-code” platforms that make development faster, but they all have their limitations and hence don’t deliver great flexibility for certain use cases, from both a functional and a technical standpoint. Also, since these platforms have grown over time, they lack the ability to adopt “trendy” technologies and scale properly.
On the other side, there are cloud platforms that offer infrastructures and ready to use components, like databases or data processing tools. Developing on one of these does give you great flexibility, easily manageable resources, but developing applications and making technology decisions are tasks that you still have to consider.
This got me thinking. What I was looking for, was a new “platform approach”. A platform, that combines the simplicity of low-code and the flexibility of server-less cloud products.
In order to build this, such a platform would need one or more layers of abstraction on top of the infrastructure and the technologies used, while still offering a generalistic, flexible and simple way to build applications.
So I started from zero, developing not a platform, but a framework for developing platforms…
Meet SPOO, the “Single Point of Object” Framework
SPOO is a modern and easy to use framework for building infrastructure-agnostic platforms, that can be targeted to specific technical challenges and problem domains. The secret for making application development on top of any SPOO-built platform simple and flexible is its object-driven approach. Meaning that applications and use cases can be developed with nothing, but dynamic, behaviour-driven objects, served on a simple API. Not more, not less.
The main secrets behind the simplicity and flexibility of SPOO, are these three:
- The technologies for persisting and processing data can be chosen according to specific technical needs and plugged in easily via ready to use mappers.
- The main piece of abstraction for developers that build applications on top of any SPOO-built platform is dynamic, behaviour-driven objects, that can be accessed and designed via a fluent interface API.
Build your own platform with SPOO
Instead of choosing an existing platform, one that may not satisfy all your technical or economical needs, you can just build your own (or have it built for you — coming soon). This approach is beneficial because you can target the technologies to your specific problem domains and run it on any infrastructure, at any scale.
Let’s take a look at the components:
- A fluent interface API for building and running object-driven applications
- The framework core (spoo.js) that manages objects and object operations (CRUD)
- Interfaces to plug in database and data processing components. This allows you to choose just the right technologies to get your particular job done.
For instance: If you are building a platform that handles fast data, a time series database would be in order. If you are building a heavy-aggregation platform, something like Spark or Storm could be used.
The cool thing: Whatever you choose underneath, the simple object model is any developers layer of abstraction…
Building applications on a SPOO-powered platform
SPOO doesn’t just stop at offering all these platform capabilities.
It's concepts really go through to the API-driven development layer, where you or third-party developers create applications. The main piece of abstraction here isn’t code, it’s dynamic, behaviour-driven objects, that can be used to represent anything. This model, as you can imagine, is so versatile and so simple.
What are objects all about?
Objects are nothing, but JSONs, that can have dynamic properties of some smart types (action, event, …). These types are what make an object alive, providing it with functionality, observations, behaviours, and information.
Imagine an object, that represents a credit card. This object would have properties like “card holder”, “number”, “expiration date” and so on.
More important here are properties that are able to observe the expiration date and inform the card holder automatically. This could be done by just adding a property of the type “event”, that would observe the expiration date and send out an email automatically, or even trigger some external process to order a new one.
Where we are now
After I had built the first version of SPOO, I wanted to do more with it. So I partnered up with my dad and we founded a new company: SPOO Technologies.
As of today, the framework has been used to build a couple of platforms for different industries, addressing different technical challenges. And the resume has been great so far.
The next steps involve open sourcing the core framework in order for developers to build their own solutions, building a partner network to offer new platforms and hiring developers.
Stay in touch
You are all invited to follow this Medium publication, as we’ll be posting more insights and information around SPOO and our day to day work with it.
If you have any questions, feel free to drop me a line.