DEV Community

Cover image for Balancing CMS, Custom Code and Business Logic
Ingo Steinke, web developer
Ingo Steinke, web developer Subscriber

Posted on

Balancing CMS, Custom Code and Business Logic

Software-as-a-service reminds me of fast fashion or flat-pack furniture. Simple solutions often don't live up to their promise. Call it AI, no-code, or building blocks, but a bespoke website or online shop is always more than a one-click installation. The reason is simple. It's called owning your business.

Even when we, as developers, design a dashboard that feels like a cool DJ device, you'll still have to choose the music, to stick with this comparison.

AI image of an imaginary Shopware control center inspired by a musical device

Action speaks louder than words

Action speaks louder than words. Apart from my portfolio website as a professional web developer, I released open-source software, including plugins for Shopware, npm and code editors. My blog, Open-Mind-Culture.org, started as a technical demonstration and testing environment for WordPress development. Likewise, the Open Mind Culture fan shop runs my own Shopware theme and extensions. So I know e-commerce from a real shop owner's perspective and have up-to-date first-hand experience about hosting, payment and fulfilment beyond theme and web development.

Balancing specialized skills and broad knowledge

I don't do all of this alone. Well, there's a lot that I can and will do alone. I'm part of a network of professional partners, working together with designers, developers, data scientists, admins, copywriters, and financial, legal and marketing experts.

Open Mind Culture blog screenshot

Small side project demos like my Open Mind Culture blog and fan shop featured in developer discussions are far from scalable big business projects, but that's where I have 100% control as a developer.

Projects screenshots: native web themes, design system, React web app

I did work on corporate projects. As a freelance lead developer, I oversaw and coded a new career portal for an international construction company. I developed a highly configurable native WordPress theme reusable by thousands of sites in a Kubernetes cluster. I worked with Shopware, Intershop, Xsite and WooCommerce, for fashion retailers, online pharmacies, and ethical startups.

Understanding business values as a developer

Finding the right balance between content, custom code and business logic also implies finding the right experts to work with, a responsible contact person, but without avoidable overengineering and overhead that large corporate agencies often offer. If you know what you need, hiring a freelancer directly can be quick and cost-effective. An experienced senior will know and tell you if they can do it or if your requirements are too big or small for them.

Laptop with website storefront and source code next to fresh fruit sold in the online shop

First-hand experience: eating the fruit sold in my client's online shop that I was working on. 🍋🍊

Choosing CMS and E-Commerce Systems

When it comes to choosing content management and e-commerce systems, I obviously prefer what I already know as a developer, but that still includes several alternatives. You probably heard about WordPress, WooCommerce, and Shopify. Maybe you also heard about Astro, Gatsby, or Hugo. And what about Typo3, Drupal, Magento and Shopware? Can you still follow me?

Technical details aside, crucial aspects for choosing a software include

  • features (does it do what I need?)
  • support (will this still work in five years?)
  • maintenance (is it easy to change?)
  • cost (inital and running costs)
  • integration (does this fit my workflow?)
  • performance (see above)

Software as a service

Software as a service sounds promisingly easy: register, pay, import your data, customize, and wait for the customers to come. Still enough work, but focused on your key skills as a merchant.

Self-hosted but managed

A "self-hosting" solution does not necessarily mean that you need to learn technical skills and install software updates. But it usually means more control, often for a lower total cost of ownership. Instead of pricing plans that often grow enormously as soon as it becomes hard to switch to an alternative provider, a self-hosted server and a long-term maintenance agreement with a professional web developer can reduce the total cost of ownership in the long term, despite additional costs for the initial setup that you pay only once.

Software choice as a case for control and ownership

I chose Shopware and WordPress for my Open Mind Culture demo for several reasons. Both are provided on a freemium basis, which means that there is a free open-source software core maintained by a non-profit community, but driven by a commercial company and their official partners, offering optional paid add-ons and services.

Shopware and WordPress can be customized and extended, and, thanks to decades of technical progress, the latest software versions are valid choices for business-level use cases. WordPress also has WooCommerce as an integrated e-commerce extension, and Shopware has content management (CMS) options, but I'd rather let each software do what it's best at.

Balancing customization and standardization

Configuration vs custom code

Hard-coded content and design limits and guides editors, preventing accidentally changing settings or violating design decisions. Settings can look overwhelming to non-technical users. Consider this example.

Shopware settings screenshot

I want to empower editors and site owners to update content and adjust simple settings that they don't need an expert for. Here is a CMS dashboard balancing visual preview with useful restrictions.

Customized CMS collage

Fixing settings and output with custom code can prevent undesirable changes caused by updates or unwise content editing. Restricting customization too rigidly limits content creation control and might make merchants miss out on future features from upcoming updates.

Thus, there is a trade-off, and maintenance is inevitable in the long run. Maintenance means accepting the need to change anything at all in the future, and to plan ahead for regular checks and possible improvements. Like bringing a car to an inspection or have your body checked by a doctor, prevention is better than cure.

Code customization challenges and strategies

Often, there are different possible ways to implement a technical customization. Simpler, quicker coding might come with trade-offs in speed, cost or maintenance in the long run, while striving for perfect coding can also become perfectionist overoptimization that doesn't pay off either. AI-assisted and agentic vibe coding doesn't even consider the choice and just use any solution that works.

Technical debt prevention

Regular check points are chances to question prior architecture decisions and business strategies and check if the goals are still correct and we are moving in the right direction.

Technical debt does not only stem from unfinished work or over-customization, but since 2026, so-called vibe coding promised to produce more code more quickly thanks to AI. What sounds promising and might work at first glance, might not perform so well in the long run.

That's what audits and metrics are for. Even without consequently adopting test-driven-development, we can measure accessibility, code quality, and web performance at least to a certain extent. Tools like linters, Lighthouse, PageSpeed Insights and various SEO services can pinpoint weak spots that need optimization. We can even use AI to check AI recommendations. Just don't trust anything blindly. If something sounds too good to be true, then it probably is.

Aspects and meanings of web performance

As a senior web developer working at the intersection of business, UX/web design, and technology, my partners and I often hear questions about

  • business logic
  • customer retention
  • design decisions
  • domain concepts
  • marketing
  • multi-language domain decision
  • payment problems
  • security issues
  • search engine optimization
  • web performance

"Web performance" is one of those terms one of the terms whose official definition competes with more obvious ideas. While web performance technically means making loading times faster and ensure usability, there are synergies with load time optimization and web performance optimization in an economic sense as in making more potential customers buy your products or services.

Image showing people shopping in a city

Or in other words: smart developer, happy shopper, happy revenue

Further reading: Legacy Code Maintenance: Keeping your Website Up To Date

Top comments (0)