In my current job I have to devote a lot of time to deal with enterprise Open Source CMS called Typo3. If you didn’t worked with it before it may seems like it’s just another CMS of choice, but let me warn you - if you still considering platform for you site or whatever I strongly recommend checking it out first very cerfully, you have to see for yourself how it’s flexibility works for you. On the other hand I can’t be really objective about it. Let’s be honest - I’m not a big fan of it. And apparently there is a bunch of angry programmers out there who, well, are not really lovin’ it.
The three main problems with Typo that I noticed during my work experience are:
chaotic documentation or lack of documentation - you have to google your way through official typo3 site, bugtrackers, some German forums etc. In the end you can find yourself browsing through the millions of lines of source code (yes - it’s that big) trying to figure out what authors had in mind. Because of it you can spend hours changing thing that should take no more than few minutes.
it’s bulky, it’s big, it’s messy. The whole API is just like slap in a face - it’s a stock of sometimes random functions and weird wrappers (some basically do the same thing that calling normal PHP function would do anyway, so why not just use what already exists?), starting to write a custom extension without an… extension that allows you to generate base code is generally near impossible. But I guess that’s maybe a way of making money - let’s create CMS so complex that every-day use will basically need technical assistance sooner or later :).
TypoScript - one of the things you will have to learn and master just to begin using Typo3. Why reinvent the wheel and add ever more complexity? Don’t ask me.
For me - Typo3 just doesn’t feel right. It’s hard on a regular backend users and it can be tricky while implementing new features. It’s supposed to speed up development process but instead it’s often slowing it down.