3
19 Comments

HELP: Took a Shopify Job 3 Days Ago and I'm Still Not Done

Three days ago I had no idea what Shopify was.
Then I took a client job.
"Mobile adaptation, match the design." Sure. Took ¥1500 RMB.
What I didn't know: there were multiple pages to adapt. What "match the design" actually meant. What Shopify even was.

Day 1: learned what Shopify is, what Figma is, how to edit CSS in a theme. Actually got some things working. Felt pretty good.

Day 2: started hitting walls. Images cropped wrong. Tables overflowing. JS-injected styles that CSS can't touch.

Day 3: still digging. Some fixed. Some abandoned.
Job's not done. ¥1500 in — every yuan of it tuition.
Worth it?
Absolutely. Because I got paid to learn.

Okay I need help.
¥1500 in. Still not finished.
If anyone has experience with:

Shopify theme CSS overrides
elements with negative margins breaking child width calculations
JS inline styles that !important can't touch

Please. I'm right here.
(yes I know. I know.)
https://tinystrack.com

posted to Icon for group Building in Public
Building in Public
on April 19, 2026
  1. 1

    Hey! Still struggling with this one. Here's where I'm at:
    Table markup + wrappers:
    <div class="product-info__compare-scroll-wrapper">
    <div class="product-info__compare-table">
    <div class="product-info__compare-labels">...</div>
    <div class="product-info__compare-col product-info__compare-col--brand">...</div>
    <div class="product-info__compare-competitors">
    <div class="product-info__compare-col">...</div>
    <div class="product-info__compare-col">...</div>
    </div>
    </div>
    </div>
    CSS on mobile:
    .product-info__compare-scroll-wrapper {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    width: 100vw;
    overflow-x: visible;
    }
    .product-info__compare-table {
    padding-left: 16px;
    padding-right: 16px;
    max-width: 100%;
    box-sizing: border-box;
    width: 100%;
    }
    Still getting clipped on the right — the inner padding doesn't seem to take effect at all. Any ideas would be hugely appreciated! 🙏

  2. 1

    Sorry for the late replies everyone — I've been completely heads down trying to fix these issues and only just came up for air! Really appreciate every single comment here.
    To those who left technical suggestions — the MutationObserver tip and checking parent overflow: hidden are both going on my list right now. I hadn't thought about JS injection timing fighting my CSS at all, that could be exactly what's happening. Will report back!
    And to everyone who left kind words — honestly wasn't expecting that, it really helped. It's been a messy few days and knowing other devs have been through the same "Shopify struggle" makes it feel a lot less lonely. Still in the trenches but making progress! 🙏

  3. 1

    yeah this is one of those setups that gets messy fast, especially with shopify themes fighting you

    if you want I can take a quick look at it with you and see if there’s a simpler way to approach it — no pressure

    1. 1

      Hey! Still struggling with this one. Here's where I'm at:
      Table markup + wrappers:
      <div class="product-info__compare-scroll-wrapper">
      <div class="product-info__compare-table">
      <div class="product-info__compare-labels">...</div>
      <div class="product-info__compare-col product-info__compare-col--brand">...</div>
      <div class="product-info__compare-competitors">
      <div class="product-info__compare-col">...</div>
      <div class="product-info__compare-col">...</div>
      </div>
      </div>
      </div>
      CSS on mobile:
      .product-info__compare-scroll-wrapper {
      margin-left: calc(50% - 50vw);
      margin-right: calc(50% - 50vw);
      width: 100vw;
      overflow-x: visible;
      }
      .product-info__compare-table {
      padding-left: 16px;
      padding-right: 16px;
      max-width: 100%;
      box-sizing: border-box;
      width: 100%;
      }
      Still getting clipped on the right — the inner padding doesn't seem to take effect at all. Any ideas would be hugely appreciated! 🙏

    2. 1

      Sorry for the late reply — I've been heads down trying to fix this and only just noticed the notification! The issue still isn't resolved, so any help would be hugely appreciated.
      Here's everything we've tried so far to fix the table overflow on mobile:

      overflow-x: auto on the table — still clipped
      overflow: visible up the parent chain (compare-table → compare → product-info) — no change
      Negative margin breakout: margin-left: calc(50% - 50vw); width: 100vw — content shows but right side bleeds to screen edge with no padding
      Wrapper div with breakout styles, padding on inner container — padding doesn't apply correctly when 100vw is in play
      width: auto + max-width: 100vw on wrapper — no visible change
      overflow-x: clip — no change
      Checking parent chain for overflow: hidden — nothing obvious found

      The weird thing is most of these attempts produced almost no visible change at all, which makes me think something upstream might be overriding everything — maybe a theme-level stylesheet or a Shopify section wrapper we can't easily access. Has anyone run into something like this before? 🙏

  4. 1

    The JS inline style problem has one reliable fix. Use a MutationObserver to watch for the element and apply your styles after the injection fires. !important wont help you there because the JS runs after your CSS.

    For the negative margin breaking child width, check if the parent has overflow hidden set. That kills width calculations on nested elements in weird ways.

    And honestly, going from zero Shopify knowledge to debugging theme JS conflicts in 3 days is not small. Most devs avoid Shopify specifically because the theme architecture is messy. You are already past the hard part.

    1. 1

      Thank you so much for this! I got so caught up debugging that I completely forgot to check back on this post. The MutationObserver approach is something I hadn't tried — really appreciate the direction. And your last line genuinely made my day 😄 Will give this a shot!

  5. 1

    The JS inline styles problem is nasty specifically because Shopify themes inject them after DOM load, meaning your CSS fires before the overrides land. One approach that sometimes works: a MutationObserver watching for the element, then applying your styles reactively after the injection happens. Did the client have a specific deadline or is this an open-ended contract?

    1. 1

      Sorry for the late reply — been buried in fixes and just saw this! The MutationObserver approach makes a lot of sense, I hadn't thought about the JS injection timing at all. I have about two days left to sort this out and this is honestly the last remaining issue, so I'm going to give it a proper try. Really appreciate the direction! 🙏

  6. 1

    Hello, Lyra!!

    I usually don't goo to this kind of posts but for real... what a bummer!

    And, hey, going from not knowing what Shopify was to debugging CSS, layout issues, and JS conflicts in 3 days… that’s not small, even if it feels messy right now!

    Also, this:
    “¥1500 in every yuan of it tuition.”

    That’s the mindset! I love it! Most people pay to learn this stuff, u know? You got paid and got thrown into real problems: that is a level up!

    And yeah, what you’re running into is exactly where things stop being “basic”, and that’s the real work!

    And I'm gonna be very honest here, Lyra, even if the job isn’t fully done yet - I can understand that can be frustrated- you already leveled up hard. And the only fact you can name the problems clearly means you’re way past beginner confusion. So cheer up!!

    Hope someone helps you close those last issues, I'm not an expert on this field but wanted to cheer you up a little. You’re doing it the right way: in public, in the mess, learning fast!

    1. 1

      Thank you, this genuinely made my day! 😊 It's been a messy few days but comments like this make it worth it. Still pushing through — appreciate the kind words more than you know

      1. 1

        Sorry for the late reply — been buried in fixes and just saw this!

  7. 1

    Getting paid to learn the "Shopify struggle" is a classic rite of passage, Lyra. Those JS-injected inline styles are a nightmare even for seasoned devs, but fighting through the child width calculations is where you really earn that tuition.
    I’m currently running a project in Tokyo (Tokyo Lore) that highlights builders who push through technical hurdles just like this. Since you're already in the trenches solving "unsolvable" CSS bugs, entering this round could be a great way to turn that hard-earned knowledge into a winning case study.

    1. 1

      Thank you, this genuinely made my day! 😊 It's been a messy few days but comments like this make it worth it. Still pushing through — appreciate the kind words more than you know

      1. 1

        Love that — those messy days are usually where the real progress is happening, even if it doesn’t feel like it in the moment 🙂
        What you’re building is solid, it just needs the right eyes on it now.
        If you want later, happy to share a few ideas on how to get Serene in front of early users 👍

        1. 1

          That means a lot, thank you! And yes, would genuinely love to hear your ideas on getting Serene in front of early users — please do share whenever you're ready! 👍

  8. 1

    Haven’t worked much with Shopify themes, but those issues usually come from container overflow math or styles being reapplied by JS after load. If you share the page, happy to help debug with you.

    1. 1

      Sorry for the late reply — I've been heads down trying to fix this and only just noticed the notification! The issue still isn't resolved, so any help would be hugely appreciated.
      Here's everything we've tried so far to fix the table overflow on mobile:

      overflow-x: auto on the table — still clipped
      overflow: visible up the parent chain (compare-table → compare → product-info) — no change
      Negative margin breakout: margin-left: calc(50% - 50vw); width: 100vw — content shows but right side bleeds to screen edge with no padding
      Wrapper div with breakout styles, padding on inner container — padding doesn't apply correctly when 100vw is in play
      width: auto + max-width: 100vw on wrapper — no visible change
      overflow-x: clip — no change
      Checking parent chain for overflow: hidden — nothing obvious found

      The weird thing is most of these attempts produced almost no visible change at all, which makes me think something upstream might be overriding everything — maybe a theme-level stylesheet or a Shopify section wrapper we can't easily access. Has anyone run into something like this before? 🙏

      1. 1

        Hey! Still struggling with this one. Here's where I'm at:
        Table markup + wrappers:
        <div class="product-info__compare-scroll-wrapper">
        <div class="product-info__compare-table">
        <div class="product-info__compare-labels">...</div>
        <div class="product-info__compare-col product-info__compare-col--brand">...</div>
        <div class="product-info__compare-competitors">
        <div class="product-info__compare-col">...</div>
        <div class="product-info__compare-col">...</div>
        </div>
        </div>
        </div>
        CSS on mobile:
        .product-info__compare-scroll-wrapper {
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
        width: 100vw;
        overflow-x: visible;
        }
        .product-info__compare-table {
        padding-left: 16px;
        padding-right: 16px;
        max-width: 100%;
        box-sizing: border-box;
        width: 100%;
        }
        Still getting clipped on the right — the inner padding doesn't seem to take effect at all. Any ideas would be hugely appreciated! 🙏

Trending on Indie Hackers
The most underrated distribution channel in SaaS is hiding in your browser toolbar User Avatar 162 comments I launched on Product Hunt today with 0 followers, 0 network, and 0 users. Here's what I learned in 12 hours. User Avatar 149 comments I gave 7 AI agents $100 each to build a startup. Here's what happened on Day 1. User Avatar 96 comments Show IH: RetryFix - Automatically recover failed Stripe payments and earn 10% on everything we win back User Avatar 34 comments How we got our first US sale in 2 hours by finding "Trust Leaks" (Free Audits) 🌶️ User Avatar 26 comments How to see your entire business on one page User Avatar 23 comments