At pretty much every place I’ve worked, the admin area of the site (that secret part of the site that only employees or investors get to see) is built using the same layout and UI conventions as the consumer-facing site. And without fail, they’ve always sucked. They’re downright awful, barely usable, internally inconsistent, horribly laid out, and confusing as hell.
They suck for two reasons. First, developers are too busy building consumer-facing features to make them good. It’s way too easy to put off building proper maintenance and analytics tools when your actual customers are howling.
Secondly, to my main point, the use cases that drive the admin area rarely have much overlap with those that drive your consumer facing site. The admin area is for your fellow employees to get their jobs done, and the consumer site is for customers. Probably due to the lack of time available, developers and designers just cut and paste the consumer site’s design patterns over to the admin area.
Stop it! Seriously. You’re making your co-workers’ lives worse. For 8 hours a day, 5 days a week, they have to trudge through the shittiest code you’ve ever written. The hangover they wake up with on Saturday kills their weekend, and then they have to come back and take it the following week. Don’t do that to them. If appealing to shame or morality doesn’t work for you, consider the productivity loss to your business caused by this crap.
This is a completely avoidable situation these days, thanks to projects like SproutCore that allow you to build pleasant, desktop-like interfaces quickly. Your server-side code will be simpler and easier to maintain, since the admin area will be mostly API-driven, and your consumer site will be better off without a crappy admin interface holding it back.
Trust me, your co-workers are going to love you for this.