Midgard in 2007: the year of the web developer

2006 is about to end and the blogosphere is filling up with wish lists and plans for the coming year. Before I go to Saint Petersburg for the new year celebrations I wanted to write something about how I see 2007 for the Midgard CMS project.

Software-wise, 2005 and 2006 have been good years for Midgard. MidCOM established itself as the default way of building things and became a lot faster and user-friendly. Developers got cool new tools like Query Builder, Collector and MgdSchema. We also integrated with external packages like Squid for content caching, Lucene for full-text search and Funambol for mobile device synchronization. Geographic awareness and Microformats integration also add interesting possibilities to the system.

However, community-wise I feel we also lost something. These new functionalities have mostly been gained at the expense of the installation becoming more difficult and the system harder to understand. And as the learning curve becomes steeper, new users and developers may pick some less powerful CMS instead of Midgard as their choice.

In 2007 I think we should focus on this problem: Making Midgard more accessible to the normal web developer.

The way I see it, there are four areas to put effort into:

Installation. This is the part where we can make most impact. Currently Midgard installation is a difficult process that takes a lot of time even from a seasoned user of the software.

If we want to make it more “just running apt-get”, we must rethink the whole database and site initialization concept. Datagard must go and be replaced with a PHP-CLI tool that is smart enough to probe and guess most details, and which will not only generate required configuration files, but also populate all data needed into the database.

Now Midgard’s default install is geared for setting up a hosting server, and I believe this to be a faulty assumption. Instead of focusing on hosting setups as the easiest and initial install we should focus on single-organization setups. This means creating a sitegroup and an initial site there automatically instead of creating a Site Wizard host.

Templating. Midgard has a very powerful site templating system, but it is very difficult to understand for new people. Element inheritance, style inheritance, style-init elements, semiautomatic substyling, manual substyling and other concepts are difficult to “get”. Similarly, the default contents of an element are difficult to get to.

To expose the full power of the templating system to developers we need to write a new kind of style editor for Midgard. The new style editor must work within the site context and tell the site builder what elements are available for customization and where.

Arttu already did some sketches for this new editor, so this might actually be reasonably quick to implement.

Once editing of style templates has been made easier, the next thing to expose to our users should be Datamanager schemas.

Demo. While Midgard will never be featured on demo sites like OpenSourceCMS, we would be able to run our own demo setup quite easily. A company like Nemein or Anykey could donate the needed server resources and we could set up a system where people could gain access to a Midgard setup that would be automatically cleaned at some interval.

As the replication system in Midgard matures we could even allow people to start building their site at the demo server and then copy the contents to their own install if they like the system.

Community resources. Now there is a serious disconnect between the community resources used by various Midgard subprojects. Midgard and Aegir use CVS while MidCOM uses Subversion. Midgard uses web-based forums while MidCOM has a mailing list. And bug tracking is spread all over Tigris and Gforge.

This is another thing we must consolidate in 2007, especially since repository formats matter. So far I see three options:

The Midgard developer meeting in Sweden on January 19th - 21st will provide a good chance to discuss and work on these.

Read more Midgard posts.