Interview with ocPortal Founder Chris Graham

Chris Graham
Chris Graham is very well qualified and experienced programmer and original developer of ocPortal, one of the most advanced web content management systems. He is also managing director of ocProducts, company dedicated to delivering website solutions using ocPortal. In this interview he shares some facts about ocPortal and observations on other content management systems and Open Source industry in general.

Hi Chris. Could you tell us a little bit about yourself?

I'm Chris, I'm from the UK, I have been a computer programmer since the age of about 7, which is 20 years now. I'm managing director for ocProducts and lead programmer for ocPortal.

I used to write games for fun, but whilst I was doing my degree I got caught up in a web development when I realised there was so much that I could do as a programmer to make websites more interactive and simultaneously easier for non-programmers to manage. I did that as a hobby for a couple of years, then was encouraged to pull together the code I'd done for a few different sites into what people now call a CMS. Robbie, Allen, and I started doing it semi-commercially (at this point people actually often preferred the commercial stuff as they didn't trust free software, so we did it on the basis people could pay to remove our logo). Things quickly changed and commercial software for small business wasn't working, so I decided to (was forced to, in truth) pack it all in and build a more healthy career. I joined a marketing agency, did work for loads of high street brands, and within a year had a senior role there, but being very impatient and full of ideas I decided to give things another shot. So I came back full time and we changed course by releasing Open Source and re-built the company as an Open Source service business and worked to fix every thing we'd realised we did wrong first time around. Now I'm managing a team of 7 people, so I've officially joined the dark side, but I'm typing this after being up all night coding for a client.

How did you get involved in programming?

My Dad's hobby was collecting and assembling computers. We had just about every kind of computer available in the UK in our house and loads of manuals and so on. I liked to read the manuals and experiment with programming whilst my brothers played games. Being a programmer is like playing God in your own world, it's so fun to built up foundations and see things take almost a life of their own.

What motivated you to develop content managing system?

It was based on a need. We needed one for the website of the 3D game I'd been working on for a few years, and we needed people in the team to be able to modify without having to touch code. Actually what we had at that point was really innovative. No-one had heard of a CMS outside large organisations and print companies, but we pretty much independently wrote one, and it had elements of micro-blogging and wiki's before anyone knew about those either.

What is ocPortal?

It's a CMS, but a really fully-featured one. We have a few principles that set us apart. We're kind of the Apple of CMS's in terms of the approach that things should be carefully designed as a whole (although I'll freely admit we're not as user-friendly yet - that's an enormous challenge given our other big goal of allowing ultimate flexibility). I'm really against the kind of bolted-together approach that most CMS's have. At the same time, we believe bloat is bad - so we make things really modular (i.e. you can remove big chunks of it) and we care a lot about splitting up different areas of the system conceptually. I also like to think we see the bigger picture - we approach things very strategically, being really careful to take care of the little details of quality and not get caught up in fads and so on.

What ocPortal is not?

It's not a blog system, it's not groupware, it's not an enterprise-CMS. We're quite clear that ocPortal is specifically designed for creating a rich website experience, and anything else is a bonus. That bonus comes along often because it is very common to want a blog, or collaboration tools, on a website, so we facilitate those needs - but it's not our core objective for the software.

How did you come up with the name ocPortal?

It was a long time ago, but it simply came down to looking at different words and seeing what would work as something self-explanatory, but catchy. At the time, portal was a pretty common term as forum systems like Invision Board used the term, plus it was quite common in industry to refer to a certain kind of system. Nobody used the term CMS back then, and blogs didn't exist, it's actually amazing how much has changed since then. 'oc' just meant 'Online Community', but we kept it intentionally vague -- so the 'c' is also for 'commerce', 'collaboration', 'corporate', and so on.

ocPortal started as a commercial CMS, now it is FOSS. When did the change happen and what was the main motivation behind that decision?

Looking back, things often can seem clearer than they are. The truth is all of us on the team were 100% committed to ocPortal being free and open from the offset, and it was, we just charged if people wanted the logo removed - i.e. which usually was people with a commercial intent. I mentioned I wrote games before ocPortal, and those were all Open Source too, because to me I really care a lot about empowering people to learn through sharing (because it's essentially how I learnt - scraping together knowledge form wherever I could find it). Really the sales thing just came down to practicalities - back then there weren't really Open Source business models that were proven, and I can say it's really hard work making it work right now, so taxing companies was just the easy and obvious path. Also I was pretty young at that point, so my understanding of economics was significantly weaker than it is now.

But of course things changed, and basically the software industry collapsed. Right now if you look around, there are only a few commercial software vendors left because people expect their software to be free with just a few well-known exceptions. So we changed with the landscape, and went from "Open Source with a catch" to an OSI-approved license and no product sales channel. Now our focus is entirely different - instead of trying to sell loads of licenses for $100 each, we sell a few websites for $10,000 each and put our energies directly in service of those clients. It has worked out nicely, we are pretty much charging the same as other companies (less than the big agencies) but we can bring a lot more to the table and can prove ourselves so easily. Believe me when I say though, it is incredibly hard work and I don't get much time off.

Could you give us some examples of websites based on ocPortal?

We have a portfolio up: http://ocportal.com/site/portfolio.htm
Actually that's quite out of date now, there have been some huge ongoing projects we've been working on. I'll get them on the portfolio soon I hope, but probably I shouldn't drop names of sites without having a kill-switch just in case the owners don't want to advertise how they got built (we don't put 'powered by' on our bigger projects - I think that kind of professional distance is important at the level we work on).

Why should someone looking for a CMS solution choose ocPortal among all the other available choices?

I wouldn't ask them to, because it really depends what you're trying to do, which is a key point that so often gets lost in this industry. If you're doing a project that has lots of kinds of content and lots of diverse interactivity, I honestly believe ocPortal is your best solution (unless it is totally off-the-wall, in which case maybe do it using an application framework). Fortunately for us things have been heading in our direction a while, so we are pretty much on the trends. But if you just want a blog, just use Wordpress.

What were the biggest problem you faced during ocPortal development?

Oh, there are plenty of those. It's a mixture of social issues and engineering issues.

Social ones have surprised me the most. For example, people find bugs all the time, but don't report them - they think it's their fault or don't want to be critical or just can't be bothered - so then I stumble upon blindingly obvious issues years later whilst everyone has just been silently ducking around things.

Engineering wise, well I have been thinking recently about how clock speeds have not really increased much in 10 years. We've had more cores in our server CPUs, but that does not improve load speed because software is virtually never multi-tasking (PHP certainly isn't). So I've had to put some really heavy thought into optimisation to make things work right given our framework is heavily layered to make things flexible.

Another huge problem is that building LAMP systems is like building on jelly, there are so many variables involved that it's really hard to make things work on every server (I'm not talking like Windows vs Linux, more like suexec vs no-suexec, mod-security, CGI vs modules, safe-mode, disabled_functions, and so on). Just last night I had someone crying foul that ocPortal could not add a banner, and it was because their server's DNS resolver could not identify the server's own domain name - outside our control, but these things come and bite us.

What ocPortal features make you the most proud?

The Comcode/Tempcode/cacheing system at the core of ocPortal is incredibly powerful and elegant. Comcode (which is like BB-code on steroids) gets compiled down to the same intermediate language that templates get compiled to. It's an intermediate state of processing that is cache-safe. So we can for example interpret a page, cache it, and still have things that are completely uncachable working fine. There are different implementations of Tempcode, one is an opcode structure, and another is what I call "closure trees" (it's basically cached PHP code). I think this probably all goes above non-programmers heads, I'm indulging a bit ;).

Something I'm really proud of on the usage side of thing - we're really proud of the Theme Wizard. We implemented the default theme mathematically using chromatic equations (the CSS as well as the images), so it can be recreated in any colour you want and still have all the colour relationships work. It saves so much time creating new themes - you pick a colour and then you are safe in knowledge that you don't need to modify every little ocPortal feature to match the scheme you need.

One more thing that comes immediately to mind is OcCLE. We build our own Unix command line into the system and I use it every day to do things like run test commands on sites, or do little upgrade commands, or whatever is needed. It saves me huge amounts of time.

ocPortal version 5 brought some major improvements. Can you tell us a little bit about them?

We've focused on usability for quite some time. Our version 4 did a lot of fundamental improvements for usability, but with version 5 we were able to take a more pleasure-based approach. So the big driving force was to make it more fun to use ocPortal. We redesigned how many of the screens look, we added a lot of visual effects, and we did a lot of usability tweaks. The plan was for it to not be gratuitous, but simply to make things more enjoyable as you learn.

We also did a lot of work on making it easier to make themes. There's an enormous amount we want to do here still, because I think across the CMS world themeing is ridiculously hard; it has got a lot harder to design a website since the comfortable days of static design in Frontpage went away.

Are you satisfied with the current success of ocPortal?

Not for a minute, we're not nearly well enough known and constantly struggle to get noticed against the exposure of other systems. It drives me up the wall seeing people jump through crazy hoops adding hacks to Wordpress to try and make it a CMS, and people going all on about it in Twitter debating "is Wordpress a CMS, can it be a CMS, look now it's a CMS", when there is an approach that will take far less time overall, and be a much cleaner more manageable result - and that's ocPortal. This doesn't just go for ocPortal though, there are actually quite a few amazing systems out there that are really good but nobody talks about. I wish people would do some research before they decide what to use, and then give back to the system they choose in some way.

Where do you see biggest place for the future ocPortal improvements?

It's probably always going to be usability, particularly making more of a GUI kind of approach to things and less of a forms/structure/module-based approach.

Where do you see ocPortal in five years from now?

I wouldn't dare to speculate to be honest. We have almost all our company's feature plans up on our tracker, but we encourage other people to submit them too, so it really depends what people ask for, and I hope, what people themselves contribute.

It also depends a lot on where markets will go. Right now there is the big trend to 'apps' written for individual platforms. That's so ironic, as web apps were meant to replace normal apps, and they really have been doing so. I think the main driver in web apps was it was a pain for people to go and install apps on their computer. But if Microsoft had made it as easy to install Windows apps as it is to install an iPhone app, maybe history would be very different. I don't think you can predict where these things will go, it's about choices powerful individuals make when placed against a noisy evolving cultural backdrop.

Could you tell us a little bit about ocProducts?

Sure. We're a service company dedicated to giving people highly sophisticated and cost-competitive websites by utilising ocPortal, which we develop and maintain as Open Source for all. In the last year we've gone from 2 employees to 7, set against huge economic problems around the world. It's been an incredibly hard personal journey for me to bring things to where they are (I'm still in my mid-twenties), and I'm incredibly proud of it all and how my company is shaping up and how my staff are performing.

To be honest though, I don't want to emphasise our company too much against our software. We're like the sponsor and we hold things together, but I am trying to encourage more of an ecosystem. It's a kind of a balance; we're never going to be the pure grass-roots Open Source project, we have some central control (which creates great value, in the same way Apple or Google can create great value in the design of their products); but at the same time there are incentivisation structures and liberalisation in licensing so really other individuals and companies have a strong opportunity to be known for their own ocPortal services and their role as community sponsors themselves.

What are the main benefits for those who opt for ocProducts' services?

There are many!
The company is staffed by people who are passionate about it. I started as a hobbyist Open Source programmer. Now I am a businessman, but you can be darned sure I bring an egalitarian technical outlook to how I run my business.

We provide much better value (but please don't expect websites to be cheap, website development is close colliding with TV production in terms of the complexity and cost of it all).
We have demonstrable skill and experience. If we screw up, it's public; most marketing agencies are shadowy groups guided by investors and who have no real public face to stand up against.

And, we are 'the' experts in the technology base of the future ;).

What do you think about other Open Source Web CMSs like Joomla, Drupal, Wordpress...? How do they compare to ocPortal?

Obviously I'm horribly biased. I've used Wordpress and Joomla, not Drupal much. Wordpress is a very nice system for a blog with a few static pages. If that's what you want, go for Wordpress, you won't be at all sorry. Joomla is very nice if you're running a news-centric site that is more heavily structured. I don't have a lot of respect for how addons work in the world of Joomla - I see a lot of features that are cynically marketed as Joomla addons but are just clunky independent codebases that get bolted on. I can't say much for Drupal, but it's probably closer to where we are than the other too; ocPortal is much more of a ready solution and I think Drupal is more of a programmers framework. That said, people get stuck with ocPortal sometimes because we always attract the most ambitious non-pro webmasters who want to do things nobody would dream of doing in another CMS. Like Drupal, ocPortal has the framework in it, but we design things to be ready for end-users to make sites with without needing to install addons. I think for a hardcore programmer, Drupal is a nice solution because it has had so many people working on that framework and evolving it.

Where is Open Source going?

Interesting question. My gut is to say - nothing much will change. But things are never so simple. Phone apps are leading a resurgence for paying for code. I think many people in the "next generation" are swimming in Open Source code so there's not much reason to set a goal for themselves in that world because there's not much left to solve - but the shiny world of hand-held consumer electronics is very attractive, and I think people therefore go for more of a form & function life-style challenge rather than a pure-technical challenge. I'm definitely seeing a huge shift in the kinds of people contributing to Open Source - it seems now it's almost always highly paid senior engineers doing it as a part of their full time job. I think the standards have gone up, and probably it's less inclusive to newcomers as a result. All that said, I am probably not viewing things from a great enough distance to be objective in my analysis.

What are your points of interest outside ocPortal?

Ha, the implication being that I have some kind of life ;)?

Well, I have been trying to learn the guitar for about a year now. I'm getting better but I haven't had the time to nail down chords properly, so I'm playing these little tunes like the Star Wars theme or Popeye the sailor man - so still a long way to go until it's not embarrassing. I try to jog to keep healthy, but that hasn't been working so well recently. I have some really good friends I have regular chats with, usually about something deep like existentialism or ethical systems or something like that; that, or toilet humour.

Any closing thoughts?

If you care about CMS's or are planning a complex site, please come try ocPortal. If you don't like it, tell us, if you do like it, join us. We have a small but awesome community and there is so much that we have that is not to be seen anywhere else. There is so much we want to do that nobody is doing right yet and to do that we need strength of numbers. Whoever you are, there's a role for you, even if it's just in giving feedback!

Subscribe to WebmasterFormat RSS Feed Follow WebmasterFormat on Twitter
Fletch (not verified):

Chris Graham - the interview

I read Chris every day in the ocPortal forums, and interact with him (invariably seeking help and advice) on most days.

This is the first time I've been able to get a glimpse of the individual beneath the polite and scrupulously fair moderator/developer/all-round-good-guy that we in the ocPortal community have got to know over the years.

Well, it's back to the forums to glean more insight into this formidable CMS.

Thanks for the interview.

Kevin blumer (not verified):

im quite a big fan of ocportal

ocportal is a lot easyer than a lot of the programs out there doing cms and a lot more secure i moved to ocportl after being spammed to death so far so good it intresting to hear form the main man him self

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <h2> <h3> <blockquote> <b> <center>
  • Lines and paragraphs break automatically.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.