The more time I spend developing applications, especially as the number of projects increases, the more I find a shared subset of functionality shared among all of them. Thankfully, using base applications as templates and gems I’ve been able to keep master versions of my shared code. They fall into a few categories:
- Admin Features
- User Features
- Admin Portal
- Invite Only Sign In
- Release Notes/Admin Changelog
- Messaging/notifications to admins
Non-registered User Features
- Markdown renderable posts (blog, articles etc)
- Static (or rarely changed), top-level pages
Registered User Features
- Code Health
- Tree structures (usually part of the categories)
- Dynamic Sitemap
- RSS Feed
As I mentioned above, templates and gems are immensely helpful for getting all this up and running, but customizing and configuring all those things for dozens of apps gets tiresome. There have been multiple conversations with myself arguing pros/cons of spinning up my own fuller featured template (which looks more and more like a real CMS every few weeks) vs the existence of many CMSs. Not to mention the lumbering presence of WordPress. Which, as much as I hate working with it, does have almost every imaginable plugin.
You may ask, “What’s the point of this post?”. The point is this: To lay my thoughts out in the open. I’ve found that often, that’s the quickest way to reach a resolution on what should be done with the limited time resources offered us. Most likely in the upcoming months I’ll either discover a nearly perfect CMS solution, or end up creating my own so that future projects can be spun up even quicker, providing a better value to everyone.
If you enjoy having free time and the peace of mind that a professional is on your side, then you’d love to have me work on your project.