I've been building wordpress sites for a few years now and have noticed a few things that bother me.
1. It's fairly slow (awful blanket statement, I apologize)
My initial desire to create a custom front-end came from an observation. The Wordpress sites I was building weren’t quite as fast as I wanted them to be (3-5 seconds, sometimes longer).
@Kenrik - They certainly were deployed on oversold shared-hosting, but they got good Yslow scores. I tried it out and found the sites to be approximately three times faster when I didn’t load the WP overhead. Same machine, same Yslow score, 3 times faster. I’m no expert on Wordpress CPU usage, but I’ve read that it’s pretty intense, so I was not surprised by the speed gains I achieved.
2. It's often overly complex for the needs of a simple website
Just a note: I’m mostly building sites for fashion lines and portfolio management, complex in front-end interaction, but with relatively little data. These sites are never going to be huge and they require very little code to retrieve the necessary content. My question is therefore largely theoretical.
I think that Wordpress is a fantastic platform and that it has few limits for growth, however I think that loading all of its resources is overkill for a lot of smaller projects, destined to be served from shared hosting.
3. It has a lot of security issues (especially when using plugins)
Concerning security, I can see how my question was ambiguous and contradictory. What I meant is that from my understanding, a Wordpress site, beyond any actual security holes, is vulnerable because attackers know that it is a Wordpress site. This creates a challenge (to breach a popular platform) and an inherent cheat sheet (Wordpress vulnerabilities are well documented). So, sure a custom solution might have more actual security holes, but I’m wondering if it this wouldn’t be balanced by the fact that it makes the inner workings anonymous. As @Kenrik said, “they most likely wont even bother because who cares about hacking a single site with iffy custom code?”
4. It's difficult to optimize page-load times
What I meant by the difficulty of page-load optimization is that if one achieves interactive functionality via lots of plugins, many scripts are loaded and it becomes more tedious to go back and combine, modify, customize or optimize them. I find it easier to include jQuery plugins outside of Wordpress and not have to deal with how they hook into wp_head.
So recently I decided to go about my development differently and use Wordpress as only a back-end tool. I use the admin space to update content and populate the database but I use a custom data access layer and custom functions on the front-end to retrieve and display the content. For pages where login is needed, I include the blog-header file and use wordpress' credential management functionalities.
As I see it, the pros of this independent front-end solution are that it makes development easier (you only write what you need, and it's all your own work), it's easier to optimize page-loads (you have better control over what scripts are used and how to combine them in optimal ways), you are not alerting the entire hacking world to the existence of a wordpress install (because the files aren't loaded from a theme anymore) and more.
Potential Cons: Security, lack of scalability, lack of developer support for custom solutions... Anything else ?
I really enjoy creating sites outside of the wordpress constraints, I'm just worried I might be overlooking some major issues with this approach.
Please let me know if this is the case.
Cheers
To retroactively conclude:
I’m 100% sure that my sites are faster in the exact same environment when I don’t use the native Wordpress front-end.
I’m doubt that my code is as safe as Wordpress, but I think that I can lock it down and the fact that it has an anonymous front-end might make it less of a target.
I’m sure that I can code functionalities a lot faster when I deploy an extremely simple custom front-end solution.
So I’m just wondering, given my environment and my constraints whether doing this is still just a bad idea. And if so, what are the main reasons.
I’m sure there are other curious, ambitious, under-educated coders out there who might be wondering the same thing. They will likely benefit from whatever you have to say about the subject.
Thank you all