Isotope News

The future of Isotope, part 1

With a small blog series we want to give a first insight into the future of Isotope for Contao 5.

At the end of November the minimum fundraising target was reached and since then we have been working on ideas, concepts and, of course, the code. This is currently still being done privately, but the new version will be just as open source and under the same license as before.

Things You Should Never Do

Programmers are, in their hearts, architects, and the first thing they want to do when they get to a site is to bulldoze the place flat and build something grand.

That's how we developers feel. Software is chaotic, and after a short time, you would do everything differently. If you had the time and could start over again, everything would be beautiful and colorful. But we forget one important point:

The idea that new code is better than old is patently absurd. Old code has been used. It has been tested. Lots of bugs have been found, and they’ve been fixed. There’s nothing wrong with it.

This statement comes from a 25-year-old blog post by Joel Spolsky, co-founder of Stack Overflow, among other things.

Things We Will Not Do

The following was noted in the fundraising:

We are not reinventing the wheel, no migration tool or similar is required. Interfaces will change, so extensions will have to be adapted. Templates will also be adapted to Contao 5.

The backend data structure of Isotope has proven itself. The products, product collections, payment and shipping methods, documents and galleries still make just as much sense today as they did 15 years ago. Even the further development of Contao has not resulted in any significant changes. When integrating with third-party systems, it is often challenging that Isotope is too flexible, but of course we don't want to move away from that.

Things We Must Do

Isotope is an extension in the style of Contao 3, which was installed via the extension repository and not through Composer. Of course, the new version must be a Contao bundle. We need dependency injection at all levels and real services. We need new ways for things that died with Haste 4. And tests, at least for the most important things, wouldn't be wrong either.

The backend data structure in Isotope 2 is all about TypeAgents, a bit like Single Table Inheritance, which in Contao is probably only available in Isotope. The idea was good, but is unfortunately incompatible with dependency injection. But the code that lives in these TypeAgents is tried and tested and should remain for the most part (see above). An alternative for this is on the way, more on this in Part 2.

Things That Didn't Age Well

And then there are the things that belong in the garbage can. The search and filter function of the product lists can lead to millions of database entries. The ordering process is rigid and can hardly be adapted to your own needs. I am also unhappy with the rules, as they potentially have quite an impact on performance.

We will find new solutions for these things, which we started in March. 30'000€ is enough for at least 30 days, with one day per week that would be at least 7 months. And we want to do more than the minimum, so you still need some patience. We are not yet able to give a reliable release date.

About Andreas Schempp

Andreas developed Isotope eCommerce during the Ötzi era and eventually took on the role of lead developer. His focus is on lines of code, which is why you won't read much from him. Professionally, he has to deal with Yanick at terminal42.

Add a comment

What is the sum of 3 and 2?