We crossed $6.2M/year as a pet care brand. Growth made the business feel less stable for a while.

Ride Along Story

I’ve been building in e-commerce for a little over 6 years now. The brand I spend most of my time on is in pet care, mostly dog treats, grooming-adjacent products, and a few repeat-purchase items for dog owners.

We crossed roughly $6.2M in annual revenue last year. Not life-changing exit money, not some huge team with offices and layers of managers, but enough scale that the business stopped feeling like a “Shopify store” and started feeling like an operations company with a storefront attached.

I’m writing this because most ecommerce advice online is still stuck at the beginner stage. Find a product. Make creatives. Test ads. Improve the landing page. Get the first 100 orders. That advice is useful early, but it gets less useful once the business is already working.

After a certain point, the problem is not “can we get sales?” The problem becomes “can the business handle the sales without quietly leaking margin, customer trust, and founder sanity?”

That part surprised me.

Step 1: The first version of the brand was built for sales, not operations

In the beginning, we were focused on the obvious things. Product-market fit, paid ads, creative testing, product page copy, reviews, email flows, supplier reliability, and keeping CAC under control.

That was the correct focus at the time.

When you are small, every sale feels like proof. You check Shopify way too often. You obsess over ROAS. You rewrite the product page 10 times. You celebrate the first day where sales come in while you are sleeping.

But looking back, our early setup was not built for scale. It was built for testing.

That difference matters. A testing setup can survive with manual replies, messy spreadsheets, founder memory, and “I’ll just handle it myself.” A scaling setup cannot.

At $30K/month, manual work feels scrappy. At $300K/month, manual work becomes risk.

Step 2: Pet customers ask more questions than you expect

Pet is a trust category. People are not buying a random phone case. They are buying something for an animal they care about more than some humans in their life. That changes the whole buying process.

They ask what is inside the product. They ask about size, age, breed, allergies, shipping, returns, delivery timelines, subscription timing, and whether it is okay for a dog with some specific issue. They ask if the product will work for picky eaters. They ask if they can combine it with other things. They ask if the packaging changed. They ask why their dog loved it last month and ignored it this month.

Some questions are easy. Some need careful handling. Some should never be answered casually because you do not want to sound like you are giving medical advice.

That was the first real lesson. Support in a pet brand is not just support. It is trust management.

If customers feel ignored, they do not just think your store is slow. They think you do not care about their pet. That sounds dramatic until you run a pet brand

and read enough customer emails.

Step 3: Support did not grow in a straight line

I used to assume support would grow neatly with revenue.

It does not. Support grows in spikes.

A delayed shipment creates a spike. A product page change creates a spike. A new SKU creates a spike. A batch with different packaging creates a spike. A viral ad creates a spike. A subscription reminder that is not clear enough creates a spike. A carrier delay before a holiday creates a spike.

The hard part was not just the number of tickets. It was the randomness.

Some weeks felt calm. Some weeks felt like every customer suddenly had the same question at once.

That is when we learned to separate support into buckets instead of treating everything as “customer service.”

Pre-sale questions were one bucket. Order status and delivery issues were another. Product education was another. Subscription questions were another.

Emotional cases were another. Phone calls were another. Refunds and returns were another.

Once we saw the buckets, the fixes became clearer.

Step 4: Website questions and phone calls are not the same problem

One mistake we made for too long was treating all customer communication the same.

It is not the same.

A customer asking a question on the product page before buying is in a very different state than a customer calling because their order is delayed.

Pre-sale chat is about reducing doubt. Phone support is often about urgency or frustration. Email is usually more flexible. Social DMs are often casual but scattered. Reviews are public proof. Subscription support is about preventing churn.

Each channel needs a different mindset.

For live site questions, we kept it lightweight. We did not need a giant helpdesk for every pre-sale question. We needed a clean way to catch questions while customers were still on the product page and turn repeated questions into better copy, clearer FAQs, and better post-purchase emails. Phone was different.

Phone calls interrupt the team. They also feel more urgent to the customer. A lot of calls were simple, like order status, return policy, product availability, delivery timing, or “I just want to know if this shipped.” But simple does not mean cheap. If a human has to answer it every time, it is expensive.

That is the kind of problem where Ringly started making sense to us. Not because we wanted AI pretending to be a pet expert. That would be a terrible idea. More because repetitive order, return, product, and policy calls should not eat the team’s whole day if the answer already exists in Shopify, policies, or help docis.

The part I actually liked was that it did not force us to pretend every call should be automated. The useful bit was having a clean way to handle the repetitive calls, review what happened, and still pass anything sensitive or unclear to a real person.

The rule we settled on was simple. Let software handle the repeatable stuff. Let humans handle anything emotional, sensitive, high-value, or unclear.

That sounds obvious, but it took us too long to actually design around it.

Step 5: Repeated questions are usually your fault

This one hurt a little.

When customers ask the same thing again and again, it is easy to blame customers for not reading.

Most of the time, that is lazy.

If 30 people ask where the subscription settings are, the account experience is not clear enough. If 50 people ask about shipping time, the shipping page is not visible enough. If people ask whether a product is suitable for puppies, the product page did not answer clearly enough. If people keep calling about tracking, the post-purchase email flow is weak.

A good support system should not only answer questions. It should reduce unnecessary questions.

Every repeated question became a signal for us. Sometimes the fix was product page copy.

Sometimes it was packaging. Sometimes it was a shipping email. Sometimes it was a FAQ. Sometimes it was training support to say “we can’t advise medically, but here’s what we can tell you about the product.”

The support inbox became one of the best research tools in the business. Honestly, better than some surveys.

Step 6: Retention became more important than more customers

At the beginner stage, acquisition feels like everything. At our stage, retention started mattering more than we expected.

Pet products are interesting because if the product works and the experience is good, people come back. But if the experience is confusing, slow, or inconsistent, they leave quietly. They may not complain. They just buy somewhere else next time.

That is painful because repeat customers are what make the business healthier.

We started paying more attention to reorder timing, loyalty, reviews, subscriptions, bundles, and whether customers had a reason to stay with us beyond the first discount.

This is where a loyalty setup can be useful, but only if the fundamentals are already there. We used Smile.io more as a structured retention layer than as a “points will save the business” thing. Points and referrals are fine, VIP tiers can be useful, but none of it matters if the product is weak or support is slow.

Loyalty does not fix a bad experience. It amplifies a good one.

Step 7: Revenue made us overconfident until cash flow humbled us

This is the part people do not like to talk about.

Revenue can make you feel smart while cash flow is quietly warning you.

A pet brand has product cost, shipping, returns, replacements, damaged packages, customer support time, subscription discounts, payment fees, influencer samples, ad spend, app costs, inventory timing, and cash tied up before it comes back.

You can have a record revenue month and still feel tight if inventory and ad spend hit at the same time.

That was a big mindset shift.

At lower volume, we mostly looked at revenue, CAC, ROAS, and contribution margin. As we grew, we had to care more about inventory planning, support cost per order, refund reasons, repeat purchase windows, payment timing, and how much work each order created after the sale.

Not every dollar of revenue is equal. A high-support product with weak repeat purchase is very different from a lower-drama product that customers reorder every 45 days.

Step 8: The team had to stop using founder memory as a system

For too long, too many answers lived in people’s heads.

Why do we refund this case but not that one? When do we replace an order? Which product question needs escalation? What can support say about ingredients? What do we do when tracking is stuck?

Which customers get a courtesy credit? When does a phone call need a human?

When the team is tiny, founder memory works.

When the business grows, founder memory becomes a bottleneck.

We had to turn common decisions into policies. Not corporate nonsense. Just clear rules so the team did not have to ask the same internal questions every day. The goal was not to make support robotic. The goal was to make the easy decisions consistent so humans had more energy for the hard ones.

Step 9: I would build the second-stage company earlier

If I were doing it again, I would still start lean. I would not build a huge stack before proving demand.

But I would prepare for the second stage earlier.

I would track support reasons from the first 100 orders. I would write clearer product pages from customer questions. I would separate pre-sale questions from post-purchase issues earlier. I would make phone support a separate workflow before it became painful.

I would think about retention before paid ads made us lazy. I would document support rules before the team had to guess.

The mistake was not being scrappy. The mistake was staying scrappy after the business had clearly moved past that stage.

Step 10: The real lesson after $6M

Crossing $6M did not make the business feel automatically “figured out.”

It made the cost of weak systems higher. A confusing product page at $20K/month is annoying. At $500K/month, it creates hundreds of avoidable questions. A weak shipping email at low volume is a small issue.

At scale, it creates phone calls, refunds, and angry customers. A loyalty program at the wrong time is just another app. At the right time, it can support repeat purchase. AI support used badly is a brand risk. Used carefully, it can keep humans focused on the calls that actually need them.

That is why I think the most underrated skill in e-commerce is not finding products or scaling ads. It is knowing when the business has changed stages.

What got you the first sale will not get you to a stable $6M brand. And what gets you to $6M will probably break before $15M if you keep running it the same way.

That is the part I wish more people talked about, not the screenshot part. The operating part.

Happy to answer questions on the ops side if anyone is past the “first sales” stage and dealing with this stuff now.

Posted Jun 2, 2026, 1:10 PM UTC

1523
Loading comments…