<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: BrainSpate</title>
    <description>The latest articles on DEV Community by BrainSpate (brain-spate).</description>
    <link>https://dev.to/brain-spate</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F14432%2F68f46416-71f7-4971-acde-6649c5e6670b.png</url>
      <title>DEV Community: BrainSpate</title>
      <link>https://dev.to/brain-spate</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/brain-spate"/>
    <language>en</language>
    <item>
      <title>I Asked an eCommerce Agency’s Dev Team What They’d Never Do Again</title>
      <dc:creator>Harper Elise Callahan</dc:creator>
      <pubDate>Thu, 08 Oct 2026 09:54:29 +0000</pubDate>
      <link>https://dev.to/brain-spate/i-asked-an-ecommerce-agencys-dev-team-what-theyd-never-do-again-3mk7</link>
      <guid>https://dev.to/brain-spate/i-asked-an-ecommerce-agencys-dev-team-what-theyd-never-do-again-3mk7</guid>
      <description>&lt;p&gt;Plenty of eCommerce best-practice articles tell store owners what they should do. I wanted to hear the opposite. So I asked an eCommerce agency’s development team a simple question: “What would you never do again when building or rebuilding an online store?”&lt;/p&gt;

&lt;p&gt;The answers were surprisingly consistent. Nobody mentioned some obscure coding mistake that only developers would understand. Instead, they talked about decisions that seemed perfectly sensible at the time: customizing everything, choosing a platform before defining requirements, treating mobile as an afterthought, installing too many apps, rebuilding a working store just because the technology felt old, and letting business requirements translate into technical work without enough discussion.&lt;/p&gt;

&lt;p&gt;After years of working on eCommerce projects, developers learn these lessons the expensive way.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. They Would Never Rebuild a Store Without a Clear Business Reason
&lt;/h2&gt;

&lt;p&gt;An experienced &lt;a href="https://brainspate.com/" rel="noopener noreferrer"&gt;eCommerce development agency&lt;/a&gt; knows that a store can feel outdated without actually needing a complete rebuild.&lt;/p&gt;

&lt;p&gt;Developers see this often. A business owner decides the website needs a complete overhaul because the current design looks dated, competitors have newer-looking websites, or a new platform seems more powerful.&lt;/p&gt;

&lt;p&gt;But a rebuild is not automatically an improvement.&lt;/p&gt;

&lt;p&gt;A working store already contains years of SEO equity, customer behavior data, integrations, product structures, analytics history, and operational processes. Throwing all of that into a new system creates risk.&lt;/p&gt;

&lt;p&gt;The development team would now ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What problem are we solving?&lt;/li&gt;
&lt;li&gt;Is the problem technical, commercial, or visual?&lt;/li&gt;
&lt;li&gt;Can the current platform solve it?&lt;/li&gt;
&lt;li&gt;What happens to existing URLs?&lt;/li&gt;
&lt;li&gt;Which integrations will need replacing?&lt;/li&gt;
&lt;li&gt;What data needs to migrate?&lt;/li&gt;
&lt;li&gt;What functionality could disappear during the rebuild?&lt;/li&gt;
&lt;li&gt;How will organic traffic be protected?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If nobody can answer those questions clearly, a rebuild probably needs more investigation before development starts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The lesson:&lt;/strong&gt; Don't rebuild because a store feels old. Rebuild when the existing architecture genuinely prevents the business from moving forward.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. They Would Never Choose a Platform Before Defining Requirements
&lt;/h2&gt;

&lt;p&gt;Choosing Shopify, Magento, WooCommerce, BigCommerce, or another platform can become a surprisingly emotional decision.&lt;/p&gt;

&lt;p&gt;Teams often start with:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Which platform is best?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The better question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“What does this store actually need to do?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A B2C fashion store with a few hundred products has very different requirements from a B2B operation with customer-specific pricing, multiple warehouses, ERP synchronization, complex product configurations, and international tax rules.&lt;/p&gt;

&lt;p&gt;The platform should follow the requirements, not the other way around.&lt;/p&gt;

&lt;p&gt;An experienced development team will usually want to understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Product complexity&lt;/li&gt;
&lt;li&gt;Catalog size&lt;/li&gt;
&lt;li&gt;Order volume&lt;/li&gt;
&lt;li&gt;Customer types&lt;/li&gt;
&lt;li&gt;Payment requirements&lt;/li&gt;
&lt;li&gt;Shipping rules&lt;/li&gt;
&lt;li&gt;ERP or CRM integrations&lt;/li&gt;
&lt;li&gt;Inventory management&lt;/li&gt;
&lt;li&gt;International markets&lt;/li&gt;
&lt;li&gt;Subscription requirements&lt;/li&gt;
&lt;li&gt;SEO requirements&lt;/li&gt;
&lt;li&gt;Custom checkout needs&lt;/li&gt;
&lt;li&gt;Reporting and analytics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Only then does the platform conversation become useful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The lesson:&lt;/strong&gt; Don’t fall in love with a platform before understanding the business it has to support.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. They Would Never Treat Mobile as a Smaller Version of Desktop
&lt;/h2&gt;

&lt;p&gt;This one sounds obvious, but it still causes problems.&lt;/p&gt;

&lt;p&gt;Developers have worked on stores where desktop designs were completed first, and mobile was essentially treated as a cleanup task.&lt;/p&gt;

&lt;p&gt;That approach creates predictable issues.&lt;/p&gt;

&lt;p&gt;A product grid that looks great on a desktop may become difficult to browse on a phone. Filters can become frustrating. Product images can dominate the screen. Checkout fields can become unnecessarily difficult to complete.&lt;/p&gt;

&lt;p&gt;Mobile shoppers also interact differently.&lt;/p&gt;

&lt;p&gt;They may be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Searching for a product quickly&lt;/li&gt;
&lt;li&gt;Comparing prices&lt;/li&gt;
&lt;li&gt;Checking delivery information&lt;/li&gt;
&lt;li&gt;Looking for reviews&lt;/li&gt;
&lt;li&gt;Returning to a product from an ad&lt;/li&gt;
&lt;li&gt;Completing an order with one hand&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The development team would rather think about mobile behavior from the beginning than spend weeks fixing a desktop-first implementation later.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The lesson:&lt;/strong&gt; Mobile isn’t a breakpoint. It’s one of the primary shopping experiences.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. They Would Never Install an App or Plugin Just Because It Looks Useful
&lt;/h2&gt;

&lt;p&gt;This came up repeatedly.&lt;/p&gt;

&lt;p&gt;Apps and plugins are incredibly convenient. Need reviews? Install one. Need popups? Install one. Need analytics? Install one. Need a product filter? There’s probably an app for that too.&lt;/p&gt;

&lt;p&gt;The problem appears later.&lt;/p&gt;

&lt;p&gt;Each additional dependency can introduce:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;JavaScript&lt;/li&gt;
&lt;li&gt;CSS&lt;/li&gt;
&lt;li&gt;API calls&lt;/li&gt;
&lt;li&gt;Database queries&lt;/li&gt;
&lt;li&gt;Security considerations&lt;/li&gt;
&lt;li&gt;Compatibility issues&lt;/li&gt;
&lt;li&gt;Subscription costs&lt;/li&gt;
&lt;li&gt;Another vendor to maintain&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One app rarely breaks a store.&lt;/p&gt;

&lt;p&gt;Twenty or thirty poorly managed dependencies can create a completely different problem.&lt;/p&gt;

&lt;p&gt;The development team’s approach is much more selective: install something because the business needs it, not because it looks interesting.&lt;/p&gt;

&lt;p&gt;Before adding a third-party tool, they would ask whether the functionality already exists natively, whether it can be implemented more efficiently, and whether the business is prepared to maintain another dependency.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The lesson:&lt;/strong&gt; Every app becomes part of your technical ecosystem. Treat it like a decision, not a shopping trip.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. They Would Never Customize the Core Platform Without Thinking About Future Updates
&lt;/h2&gt;

&lt;p&gt;Custom development isn’t inherently bad.&lt;/p&gt;

&lt;p&gt;In fact, serious &lt;a href="https://www.webyurt.com/top-e-commerce-platforms" rel="noopener noreferrer"&gt;eCommerce businesses&lt;/a&gt; often need customization.&lt;/p&gt;

&lt;p&gt;The problem is customization without boundaries.&lt;/p&gt;

&lt;p&gt;A developer can make almost anything work if given enough time. But the question isn’t just whether something can be built. It’s whether it can still be maintained six months or three years later.&lt;/p&gt;

&lt;p&gt;A heavily customized platform can make upgrades more complicated, debugging slower, and future development more expensive.&lt;/p&gt;

&lt;p&gt;The team would rather customize where it creates genuine business value and stay close to the platform’s supported architecture everywhere else.&lt;/p&gt;

&lt;p&gt;That means asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Does this customization create a competitive advantage, or are we rebuilding something the platform already does reasonably well?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That distinction matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. They Would Never Ignore the Existing Data Before a Migration
&lt;/h2&gt;

&lt;p&gt;Migration conversations often focus on products.&lt;/p&gt;

&lt;p&gt;Developers think about much more than products.&lt;/p&gt;

&lt;p&gt;A store migration can involve:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Product data&lt;/li&gt;
&lt;li&gt;Categories&lt;/li&gt;
&lt;li&gt;Customer accounts&lt;/li&gt;
&lt;li&gt;Orders&lt;/li&gt;
&lt;li&gt;Reviews&lt;/li&gt;
&lt;li&gt;Images&lt;/li&gt;
&lt;li&gt;Redirects&lt;/li&gt;
&lt;li&gt;Metadata&lt;/li&gt;
&lt;li&gt;URLs&lt;/li&gt;
&lt;li&gt;Inventory&lt;/li&gt;
&lt;li&gt;Discount codes&lt;/li&gt;
&lt;li&gt;Shipping rules&lt;/li&gt;
&lt;li&gt;Tax settings&lt;/li&gt;
&lt;li&gt;Analytics&lt;/li&gt;
&lt;li&gt;Integrations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And then there is the data that doesn’t fit neatly into a migration spreadsheet.&lt;/p&gt;

&lt;p&gt;Historical URLs can matter for SEO. Customer records may have dependencies. Old product variants may be connected to orders or reporting systems.&lt;/p&gt;

&lt;p&gt;The team would never treat migration as:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Export → import → launch.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A serious migration needs mapping, validation, testing, redirects, and a rollback plan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The lesson:&lt;/strong&gt; Migration is not a file-transfer exercise. It’s a business continuity project.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. They Would Never Leave SEO Until the Store Is Ready to Launch
&lt;/h2&gt;

&lt;p&gt;This is one of the easiest mistakes to make because SEO isn’t always visible during development.&lt;/p&gt;

&lt;p&gt;The new homepage looks fantastic. Products work. Checkout works. The team is ready to launch.&lt;/p&gt;

&lt;p&gt;Then someone asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Where did our organic traffic go?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;SEO needs to be part of the rebuild from the beginning.&lt;/p&gt;

&lt;p&gt;Developers and SEO teams need to coordinate on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;URL structures&lt;/li&gt;
&lt;li&gt;Redirects&lt;/li&gt;
&lt;li&gt;Canonical tags&lt;/li&gt;
&lt;li&gt;Indexation&lt;/li&gt;
&lt;li&gt;XML sitemaps&lt;/li&gt;
&lt;li&gt;Internal linking&lt;/li&gt;
&lt;li&gt;Structured data&lt;/li&gt;
&lt;li&gt;Page templates&lt;/li&gt;
&lt;li&gt;Metadata&lt;/li&gt;
&lt;li&gt;Faceted navigation&lt;/li&gt;
&lt;li&gt;Pagination&lt;/li&gt;
&lt;li&gt;Site architecture&lt;/li&gt;
&lt;li&gt;Core Web Vitals&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A redesigned store can technically function perfectly while becoming much harder for search engines to understand.&lt;/p&gt;

&lt;p&gt;The team would never want SEO to be a launch-week checklist.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The lesson:&lt;/strong&gt; If organic search matters to revenue, SEO is part of the architecture.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. They Would Never Build Features Nobody Has Agreed to Maintain
&lt;/h2&gt;

&lt;p&gt;One developer’s favorite phrase might be:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Who is going to maintain this?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A feature can be impressive and still be a bad business decision.&lt;/p&gt;

&lt;p&gt;Custom product configurators, complex personalization, unusual checkout flows, advanced recommendation systems, and elaborate integrations can all create value.&lt;/p&gt;

&lt;p&gt;But they also create maintenance obligations.&lt;/p&gt;

&lt;p&gt;Someone has to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Monitor them&lt;/li&gt;
&lt;li&gt;Fix bugs&lt;/li&gt;
&lt;li&gt;Update dependencies&lt;/li&gt;
&lt;li&gt;Test them after platform updates.&lt;/li&gt;
&lt;li&gt;Train internal teams&lt;/li&gt;
&lt;li&gt;Handle edge cases&lt;/li&gt;
&lt;li&gt;Support customers when something breaks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The development team would rather build fewer features that the business can actually support than create a store full of impressive functionality nobody owns.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The lesson:&lt;/strong&gt; Every feature has a future maintenance cost. Include that cost in the original decision.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. They Would Never Optimize Only for the Homepage
&lt;/h2&gt;

&lt;p&gt;The homepage gets most of the attention during redesigns.&lt;/p&gt;

&lt;p&gt;Developers know that customers don’t necessarily enter through it.&lt;/p&gt;

&lt;p&gt;They might land on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A product page&lt;/li&gt;
&lt;li&gt;A category page&lt;/li&gt;
&lt;li&gt;A blog article&lt;/li&gt;
&lt;li&gt;A Google search result&lt;/li&gt;
&lt;li&gt;A campaign landing page&lt;/li&gt;
&lt;li&gt;A comparison page&lt;/li&gt;
&lt;li&gt;A shared product link&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For many eCommerce businesses, product and category pages do far more commercial work than the homepage.&lt;/p&gt;

&lt;p&gt;That’s why the team would look at the complete customer journey rather than obsessing over one polished entry point.&lt;/p&gt;

&lt;p&gt;A beautiful homepage cannot compensate for confusing product information, weak search, slow checkout, unclear shipping details, or difficult navigation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The lesson:&lt;/strong&gt; Design the store around shopping journeys, not screenshots.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. They Would Never Skip Testing With Real Users and Real Scenarios
&lt;/h2&gt;

&lt;p&gt;A &lt;a href="https://www.indeed.com/career-advice/career-development/development-environment" rel="noopener noreferrer"&gt;development environment&lt;/a&gt; can tell you whether something technically works.&lt;/p&gt;

&lt;p&gt;It doesn’t always tell you whether customers understand it.&lt;/p&gt;

&lt;p&gt;That’s why real-world scenarios matter.&lt;/p&gt;

&lt;p&gt;Instead of asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Does checkout work?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Test:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Can a first-time customer find a product, understand the price, select the right variant, check delivery information, add it to the cart, and complete checkout without help?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then test unusual situations.&lt;/p&gt;

&lt;p&gt;What happens when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is a product out of stock?&lt;/li&gt;
&lt;li&gt;A coupon doesn’t apply?&lt;/li&gt;
&lt;li&gt;Payment fails?&lt;/li&gt;
&lt;li&gt;A customer changes their address?&lt;/li&gt;
&lt;li&gt;A product has 20 variants?&lt;/li&gt;
&lt;li&gt;The cart contains multiple shipping types?&lt;/li&gt;
&lt;li&gt;Is an order partially refunded?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The edge cases are where many eCommerce experiences reveal their weaknesses.&lt;/p&gt;

&lt;h2&gt;
  
  
  11. They Would Never Assume More Technology Means a Better Store
&lt;/h2&gt;

&lt;p&gt;There’s a temptation in eCommerce to keep adding technology.&lt;/p&gt;

&lt;p&gt;Headless commerce. Personalization. AI recommendations. Multiple analytics systems. CDPs. Automation platforms. Search engines. Customer-data tools. Custom APIs.&lt;/p&gt;

&lt;p&gt;Some businesses genuinely need these things.&lt;/p&gt;

&lt;p&gt;Others don’t.&lt;/p&gt;

&lt;p&gt;The development team’s philosophy is simpler: technology should reduce friction, not create complexity for its own sake.&lt;/p&gt;

&lt;p&gt;If a simpler architecture can produce the same commercial outcome, it may be the better architecture.&lt;/p&gt;

&lt;p&gt;That doesn’t mean avoiding advanced technology. It means using it intentionally.&lt;/p&gt;

&lt;h2&gt;
  
  
  What These Developers Would Do Instead
&lt;/h2&gt;

&lt;p&gt;After hearing all of these answers, a pattern becomes clear.&lt;/p&gt;

&lt;p&gt;The biggest mistakes aren’t usually caused by developers who don’t know how to code.&lt;/p&gt;

&lt;p&gt;They’re caused by teams making technical decisions without enough business context.&lt;/p&gt;

&lt;p&gt;A healthier eCommerce development process looks more like this:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;❌ Instead of&lt;/th&gt;
&lt;th&gt;✅ Do this&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Rebuilding because the store looks old&lt;/td&gt;
&lt;td&gt;Identify the actual business problem&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Choosing a platform first&lt;/td&gt;
&lt;td&gt;Define requirements first&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Treating mobile as secondary&lt;/td&gt;
&lt;td&gt;Design for mobile from the beginning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Installing dozens of apps&lt;/td&gt;
&lt;td&gt;Audit every dependency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Customizing everything&lt;/td&gt;
&lt;td&gt;Customize where it creates business value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Treating migration as data transfer&lt;/td&gt;
&lt;td&gt;Plan migration as a business-critical project&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Adding SEO before launch&lt;/td&gt;
&lt;td&gt;Build SEO into the architecture&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Building every requested feature&lt;/td&gt;
&lt;td&gt;Prioritize features by value and maintenance cost&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Optimizing only the homepage&lt;/td&gt;
&lt;td&gt;Optimize the complete shopping journey&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Testing only happy paths&lt;/td&gt;
&lt;td&gt;Test real customers and edge cases&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  The Real Lesson: Don’t Confuse Change With Progress
&lt;/h2&gt;

&lt;p&gt;The most interesting thing about asking an experienced development team what they would never do again is that many of their answers aren’t really about code.&lt;/p&gt;

&lt;p&gt;They’re about restraint.&lt;/p&gt;

&lt;p&gt;Knowing when not to rebuild.&lt;/p&gt;

&lt;p&gt;Knowing when not to add another app.&lt;/p&gt;

&lt;p&gt;Knowing when not to customize.&lt;/p&gt;

&lt;p&gt;Knowing when a new feature isn’t worth the maintenance burden.&lt;/p&gt;

&lt;p&gt;And knowing when the existing store is actually good enough.&lt;/p&gt;

&lt;p&gt;That last point is especially important.&lt;/p&gt;

&lt;p&gt;eCommerce businesses can spend enormous amounts of money improving things that customers don’t care about while overlooking problems that directly affect conversion, retention, search visibility, and operations.&lt;/p&gt;

&lt;p&gt;A better development process isn’t necessarily about building more.&lt;/p&gt;

&lt;p&gt;Sometimes it’s about understanding the existing system well enough to know what should be left alone.&lt;/p&gt;

&lt;p&gt;And if an eCommerce agency’s developers have learned anything the expensive way, it’s probably this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The best store isn’t the one with the most technology. It’s the one where every technical decision has a clear reason behind it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What are the biggest mistakes eCommerce developers see?
&lt;/h3&gt;

&lt;p&gt;The biggest mistakes include unnecessary rebuilds, excessive customization, poor migration planning, ignoring SEO, relying on too many third-party apps, and designing primarily for desktop.&lt;/p&gt;

&lt;h3&gt;
  
  
  Should every eCommerce business rebuild its website every few years?
&lt;/h3&gt;

&lt;p&gt;No. A rebuild makes sense when the existing platform or architecture prevents the business from meeting important requirements. A store that still performs well may benefit more from targeted improvements than a complete rebuild.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why is eCommerce migration risky?
&lt;/h3&gt;

&lt;p&gt;Migration can affect products, customers, orders, URLs, SEO, integrations, inventory, and analytics. Poor planning can cause data loss, broken functionality, indexing problems, and revenue disruption.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is too much customization bad for an eCommerce store?
&lt;/h3&gt;

&lt;p&gt;Not necessarily. Strategic customization can create significant business value. Problems arise when businesses customize core functionality without considering maintenance, upgrades, performance, and long-term development costs.&lt;/p&gt;

&lt;h3&gt;
  
  
  What should an eCommerce development team prioritize?
&lt;/h3&gt;

&lt;p&gt;A strong team should prioritize business requirements, customer experience, performance, security, SEO, maintainability, integrations, and scalability rather than simply adding more features or technology.&lt;/p&gt;

</description>
      <category>devdiscuss</category>
      <category>discuss</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Headless Shopify Architecture: How Does It Actually Work?</title>
      <dc:creator>Harper Elise Callahan</dc:creator>
      <pubDate>Fri, 11 Sep 2026 12:59:50 +0000</pubDate>
      <link>https://dev.to/brain-spate/headless-shopify-architecture-how-does-it-actually-work-47m2</link>
      <guid>https://dev.to/brain-spate/headless-shopify-architecture-how-does-it-actually-work-47m2</guid>
      <description>&lt;p&gt;Most explanations of headless Shopify start with why you'd want it. I'd rather start with what it actually is, mechanically, because I think a lot of the confusion in this space comes from people deciding to go headless before they understand what's still Shopify and what isn't.&lt;/p&gt;

&lt;p&gt;Short version: headless Shopify keeps Shopify running the back end, products, inventory, customers, and (almost always) checkout, while you build and host a custom front end that talks to that back end through APIs instead of Shopify's theme engine. The architecture isn't Shopify minus a front end. It's Shopify-plus-a-separate-system-you-now-own.&lt;/p&gt;

&lt;p&gt;Here's how the pieces actually fit together.&lt;/p&gt;

&lt;h1&gt;
  
  
  The core split: what "headless" removes and what it doesn't
&lt;/h1&gt;

&lt;p&gt;In a standard Shopify theme, one system does everything. Shopify renders the page (using Liquid), stores the data, runs the cart logic, and hosts checkout. There's no meaningful separation; you're working inside Shopify's own rendering layer the whole time.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The back end stays on Shopify: product catalog, inventory, customer accounts, order management, and checkout logic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The front end is something you build separately, commonly with Shopify's own Hydrogen framework, or with Next.js, Nuxt, or another JavaScript framework and host yourself, or through Shopify's Oxygen hosting if you're using Hydrogen.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The key thing to understand is that "headless" refers to what happens to the front end, not a wholesale replacement of Shopify's commerce logic. You're not rebuilding checkout, inventory management, or payment processing from scratch. You're rebuilding the layer the shopper actually sees and clicks through. &lt;a href="https://brainspate.com/shopify-development/headless/" rel="noopener noreferrer"&gt;Headless Shopify development&lt;/a&gt; therefore requires planning beyond the storefront itself, particularly around APIs, frontend architecture, integrations, and ongoing maintenance.&lt;/p&gt;

&lt;h1&gt;
  
  
  The building blocks
&lt;/h1&gt;

&lt;p&gt;A few components do the actual work, and mixing them up is where a lot of confusion starts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Storefront API.&lt;/strong&gt; This is the API your custom front end talks to. It exposes what a shopper-facing experience needs: products, collections, the cart, and customer account data through GraphQL. It's built for public, customer-facing use: authentication is lighter-weight than the admin side, and it's designed to be called from a browser or mobile app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Admin API.&lt;/strong&gt; This is a separate, more powerful API meant for merchant- and staff-facing tools, with access to order management, inventory adjustments, and shop configuration. It requires proper OAuth authentication and shouldn't be exposed to a customer-facing front end. Keeping these two APIs separate is a deliberate security boundary, not an arbitrary technical split.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cart and checkout.&lt;/strong&gt; Your custom front end builds and manages the cart through the Storefront API. When the shopper is ready to pay, the front end hands off to Shopify's checkout rather than collecting payment itself. That handoff matters: it lets you keep Shopify's PCI compliance, fraud protection, and payment infrastructure without having to reimplement any of it. Checkout customization in a headless setup is real but bounded: you're extending Shopify's checkout, not replacing it, and that's true even for larger merchants on more advanced plans.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hydrogen and Oxygen.&lt;/strong&gt; Hydrogen is Shopify's own React-based framework for building the custom front end, and Oxygen is Shopify's hosting layer for Hydrogen apps. Using both keeps your headless build inside Shopify's infrastructure. You're not required to use them; a Next.js front end hosted on Vercel that talks to the Storefront API is a legitimate headless architecture too, but Hydrogen and Oxygen are the path Shopify maintains and updates.&lt;/p&gt;

&lt;h1&gt;
  
  
  How a page request actually flows through the system
&lt;/h1&gt;

&lt;p&gt;It helps to walk through what happens when a shopper loads a product page, because this is where the architecture stops being abstract.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The shopper's browser requests a page from your custom front end (hosted on Oxygen, Vercel, or wherever you've deployed it).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Your front-end code queries the Storefront API for the data that page needs: product details, pricing, images, and variant availability.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Shopify returns that data as structured JSON through GraphQL.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Your front end renders the page using its own components, styling, and layout logic completely independent of Liquid or Shopify's theme templates.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When the shopper adds something to their cart, your front end calls the Storefront API again to update the cart object.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;At checkout, your front end redirects the shopper to Shopify's hosted checkout, passing the cart along so pricing, discounts, and line items carry over intact.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Shopify handles payment, fraud checks, tax, and order creation; then the order lands back in the same Shopify admin your team already uses.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Notice how much of this is still Shopify. You've taken over steps one, two, and four, fetching data and rendering it your way. In most implementations, everything downstream of "add to cart" still runs through Shopify's infrastructure.&lt;/p&gt;

&lt;h1&gt;
  
  
  Where content management fits in
&lt;/h1&gt;

&lt;p&gt;One thing standard Shopify theme setups don't force you to think about: where non-product content lives. In a theme, Shopify handles that mostly through its own page and blog tools, plus metafields for structured extras.&lt;/p&gt;

&lt;p&gt;In a headless setup, teams frequently pair Shopify with a separate content management system. Headless APIs let teams deliver content and functionality independently of the frontend, so a separate CMS can work alongside a commerce platform in a decoupled architecture. &lt;a href="https://www.contentful.com/guides/api/headless-api/" rel="noopener noreferrer"&gt;Contentful's&lt;/a&gt; guide to headless APIs explains that this separation lets APIs serve different frontend applications without being tied to a particular presentation layer.&lt;/p&gt;

&lt;p&gt;Sanity and Contentful are common choices for content that isn't product data, such as landing pages, editorial, lookbooks, and brand storytelling. Your front end then pulls from two sources: the Storefront API for commerce data, and the CMS for content, and stitches both into the pages it renders. This isn't required; plenty of headless builds keep content in Shopify's metafields and skip a separate CMS entirely, but it's common enough that it's worth planning for explicitly rather than discovering the need mid-build.&lt;/p&gt;

&lt;h1&gt;
  
  
  The misunderstanding worth clearing up#
&lt;/h1&gt;

&lt;p&gt;The most common misconception I run into is the assumption that headless means the entire experience, including checkout, becomes custom. It doesn't, in the overwhelming majority of implementations. Checkout stays on Shopify's hosted infrastructure because that's where PCI compliance, fraud protection, and payment processing already live, and rebuilding it yourself would mean taking on liability most merchants have no interest in assuming.&lt;/p&gt;

&lt;p&gt;If a pitch for a headless build implies you'll have full custom control over checkout itself, double-check what your specific plan actually permits, rather than assuming it by default.&lt;/p&gt;

&lt;h1&gt;
  
  
  What this means practically for a team building it
&lt;/h1&gt;

&lt;p&gt;Understanding the architecture changes what you should be asking a development team or agency before committing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Which front-end framework are they proposing, and does that match the skills your team can maintain afterward? A headless implementation requires developers comfortable with frontend, backend, and APIs. &lt;a href="https://excendra.com/blogs/full-stack-developer-roles-and-responsibilities/" rel="noopener noreferrer"&gt;Full-stack developer&lt;/a&gt; responsibilities cover many of these cross-functional skills.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Are they using Hydrogen/Oxygen or a separate stack like Next.js on their own hosting, and who owns that hosting relationship?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How is checkout being handed off, and what happens to cart data, discounts, and customer identity across that handoff?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Is a separate CMS part of the plan, and if so, who will maintain the content structure long-term?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What's the plan for keeping the front end in sync with Shopify's API changes over time?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are architecture questions, not vendor-pitch questions, and they're a reasonable thing to ask regardless of who's building it.&lt;/p&gt;

&lt;h1&gt;
  
  
  Bottom line
&lt;/h1&gt;

&lt;p&gt;Headless Shopify architecture is a front-end swap connected back to Shopify's existing commerce engine through the Storefront API, with checkout still running through Shopify's own infrastructure in nearly every real-world implementation. Once you see it as "keep the engine, replace the dashboard" rather than "rebuild the car," the rest of the decisions which framework, whether to add a separate CMS, how much engineering capacity you actually need get a lot easier to reason about.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>frontend</category>
      <category>programming</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
