How to build a CMS


The Grawlix CMS started with a question: how can we help artists publish comics on the web? A conversation over coffee became a quick study of technical and workflow problems, sketches on plain paper, and an extra shot of espresso to keep things going.

But the map is not the territory, and building a thing isn’t the same as asking what-if. Here’s the brief story of how we came to start building a content management system.

  1. Identify a problem. In our case, we decided webcomics need their own system. %explain why not do everything%

  2. Do some research. Who’s done it before? What can you do better or differently? What problems can you solve for your users?

  3. Budget. Set a time frame. For example, in 2013 we figured we could build the Grawlix CMS in a month. Two, with refinement.

  4. Screw up. Realize that your estimate is a tad overambitious.

  5. Learn from it. Acknowledge that time is an illusion until a deadline’s involved.

  6. Test. Feed it words and pictures you think people will never try. Push buttons in the wrong order. Try to make it fall apart.

  7. Test with someone else. Show it to someone else, ask them to do something, and do not show them how. Take notes.

  8. Soft launch. Invite people from the industry to try it out. Realize you didn’t test enough as people point out bugs.

  9. Announce a launch date. Make a hard deadline with real consequences.

  10. Get realistic. Suddenly half your features will seem unnecessary. Move them to a “version two” list.

  11. Patch holes. Review your earliest code and shudder in disgust. Then realize that if you aren’t ashamed of your code from six months ago, you’re not improving.

  12. Question everything. Is this project worth doing? Will it fall flat? Will people hate it? Have we wasted a year?

  13. Keep building it anyway.

  14. Install a forum. Get formal, public feedback. Let users share tips with each other. Let a community form.

  15. Write documentation. Take notes. Also, realize you should’ve been doing this from about step eight.

  16. Launch date’s next week! So soon? Did we lose a month or something?

  17. Panic. Discover that the “do it later” 2.0 feature list exceeds the 1.0 bug list.

  18. Launch. Announce the project is “ready.” Bare your soul on the interwebs, the twitters, the tumblrs, etc.

  19. Collect feedback. Realize that people are not going to burn you in effigy over a few glitches.

  20. Deal with bug reports. Discover that most people are reasonable if you’re open with them.

  21. Start to feel good. Discover that your product does, in fact, fulfill its promise from steps one and two.

  22. Improve. Improve your workflow. Improve your product. Become better developers, designers, marketers, troubleshooters.

  23. Start over. Learn from your experiences, and don’t be afraid to throw away what doesn’t work — especially if it prevents you from reaching your goal. In our case, we wanted to help artists publish comics on the web. When artists continued to report that installing and customizing the CMS were headaches, we knew what we had to rewrite.

Looking ahead to version two

Our vision for future iterations involves many low-level improvements, trimming a few features, adding more, and refining everything. Our goals include fixing early mistakes and improving our tools. And we’re keeping what works, like the interface, the workflows, the high-octane performance, and the idea that art should come first.

Think of it this way: Grawlix 1.0 is an eight-page mini comic. We hand-drew the panels, art and lettering. But as things picked up, we realized it needed to be more like a slick, full-color digitally-produced, inch-thick paperback. So we 1) identified our problems, 2) did some research, 3) set a timeframe, and 4) began to rebuild. Just like we did on day one.

Developing a CMS for webcomics revolves around that first question served over a pair of mochas: how can we help artists publish comics on the web? Turns out the answer is more of a story than a product.

Anyone can read the blog, but patrons get inside info. Support our project!