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!