We had an empty slot to fill last-minute at the MODXpo. Instead of centering it around a speaker, we decided to mix things up, and instead get the attendees (both online and in-person) to come up with some answers!

The question was quite simple, at least on the surface:

What is the next big thing that should come to MODX?

After all, now that we've finally got 3.0 released, it's time to start looking ahead and define new goals to focus efforts on.

While some people may look towards MODX to dictate a top-down roadmap (and certainly some vision where they think the project should go is a fair ask), I'm more of a believer in the community. Sure, there needs to be some kind of buy-in from the community to help make it happen, but I'd love to read more detailed proposals originating from the community, and really collaborate on determining the direction we go in. 

So, what better way to encourage the community to use their voice, than actually making them use their voice? :D

Let's recap!

If you missed it, here's the (fixed) recording of the session. Other MODXpo videos are available from modmore.

The task

The brainstorm at the MODXpo started with an introduction from the host, Kjell. Everyone was to think about the question, and come up with one (just one!) answer to it on their own. No discussing it yet with the people around you, just come up with your own answer first.

The next step, after a few minutes, would be to pair up in groups of 2 and discuss each of your ideas. Perhaps they're similar, or very different! Regardless, you had to reach a consensus on what idea to keep. The other idea is left behind.

Then you pair up in a group of 4 and repeat the process: from the 2 ideas that are now present in the group, collectively decide on the best one, and forget about the others.

And then again, in groups of 8.

Kjell described this way of doing a brainstorm as pyramid discussion, because you keep narrowing things down. The group in the venue started from 24 ideas at the bottom, then to 12, to 6, and finally to just 3 ideas. These 3 ideas then also automatically have the most consensus, as they're the ideas that survived most rounds of debate.

(You could certainly add another round to narrow it down to a single idea, but there's plenty of room for a multiple ideas in the future of MODX.)

Sadly, I messed up the stream at the start of this session, causing a recursive sound loop. Kjell and I were confused why the in-person discussion went so well, but online we were not seeing as much activity. This concept can also work really well in an online environment like Spatial Chat, but alas, if it's impossible to hear the introduction, people are going to be confused and not know what to do :'). The audio has been fixed in the video, embedded above.

The final ideas

The final 3 ideas were presented by "volunteers" on stage. To summarize:

Sander Drenth described the ideas in his group:

A templating engine in the core, which could be twig or something else the user can configure, that allows more file-based processes. Among other things, that would make versioning easier and the parser more powerful.

Benjamin Davis described the winning idea in his group:

Move elements from the database to the filesystem, for easier versioning and development with proper IDEs.

Finally, Andreas Zeller described the idea from his group:

Provide an interface for building custom resources, probably with custom tables, which are optimized to also allow filtering by template variables.

(Note that I am paraphrasing - if I misunderstood the ideas, please do correct me in the comments!)

As a bonus, Dimitri Hilverda who joined us online provided an extra idea through the chat:

A file manager that tracks files, so it knows when files are moved or removed and can act accordingly.

I don't think any of these ideas are necessarily new, but the fact they survived the rounds of debate means they're important and prime candidates for a 3.1/3.2 roadmap, or even 4.0 if it requires breaking changes.

Now is the time to start thinking about how we go from here.

Next steps

How do we make these ideas happen?

I think it's safe to say there's consensus that all of these ideas are good and worth exploring further. There are numerous workarounds for elements and templates being in the database, so who wouldn't want to make it file-based? And there even is an extra, MediaManager, that does the file tracking. If we believe that should be part of the core (personally I do have opinions on core vs extras, but that's a discussion for another day): how would it need to look and work, and what would different types of users do with it?

Whenever big and complicated ideas come up like these, I think it's good to discuss it in detail before starting the development (outside of perhaps a few simple proof of concepts to illustrate a proposal). Different people will have different ideas on how to fix a certain problem, and different people will also have different needs from the same functionality.

Once a feature is committed to core it will need to be supported for many years, so the bigger the feature, the more responsibility we have to get it right.

When I proposed a way to make it easier to implement static elements in packages last year, that received quite some push-back, so clearly that wasn't the right approach (tho pushing to get it done before 3.0 was definitely my mistake as well).

So what would a better proposal look like? What are the userland solutions we have in the community now (StaticElementHelper, Gitify, VESP, etc), and what can we learn from those for the core? How does this particular feature tie in with the rest of MODX, and is it perhaps part of a larger debate about evolving MODX, or can we consider it in isolation?

We probably need someone (or a small collective) to head up such an initiative. Does anyone feel passionate about solving any of the proposed ideas that wants to take the lead? I'm personally more than happy to facilitate such discussions and of course give my own thoughts on the matter, but I wouldn't dare to claim I have the answers all on my own and would rather see others take up the mantle.

To kick-start a more thorough discussion, who's up for joining an interactive Spatial Chat meetup on August 5th?

Let's make sure the brainstorm doesn't just end at the MODXpo, but keep pushing these topics forward and make MODX better together.

This is the first of 8 posts recapping the MODXpo that I have planned for the coming weeks, to share some of the highlights of the MODXpo more widely. If you'd like to help writing recaps, or want to share your own highlights, please let me know!