Stats for My Projects This Month
- $1,135 revenue
- $1,300 MRR (+12% from last month)
- 40 active subscribers
- $50 from "Pay what you want" programmatic SEO course
- $136 revenue from ads and affiliates
- 6,574 unique visitors (-52% from last month)
Fantasy Congress (maintenance only):
- $505 revenue
- $873 MRR
This was by far my most profitable June ever as an indie maker. Compared to last year, I increased the revenue of my indie projects by 3x. Progress baby!
That said, this month still felt like a huge let down. I derailed most of my original plans in order to create a "quick" Shopify integration for PageFactory, which turned into a nightmare.
The Shopify Saga
It started like this:
Someone signed up for a trial of PageFactory (my no-code programmatic SEO tool), and asked if we had any plans to create a Shopify integration.
This wasn't the first time I've been asked about Shopify. And being tired of telling customers "no", as well as self conscious of how many meaningful changes I've actually shipped for PageFactory this year, I decided to prioritize the integration.
I mean, I had every intention of adding a Shopify integration eventually. So why not now? It would only take a week or two tops...probably...
I told the customer I'd be pushing out an integration in a week or two, and got to work. Everything seemed pretty standard in the beginning. I was able to connect my app to a test store and start publishing pages in bulk quickly.
I decided to include support for Shopify meta-fields, and that's when I started to hit some snags.
Shopify has two APIs: a standard REST one and a GraphQL one. For some reason, they really push the GraphQL API. But there's certain things you can only do with each, so you end up using both. On top of that, both are buggy. I spent a lot of time sifting through forums looking for work-arounds to things that were supported in the documentation, but not in reality. 😵💫
Regardless, in a couple of weeks, I was ready to publish my changes.
Previously I had breezed over Shopify's requirements for publishing integrations, reading just enough to confirm my app wouldn't violate their terms. Now, I was doing a much more in depth read through. And that's when I noticed this section, which explains that Shopify requires all publicly available applications to bill customers through their API.
Obviously, I couldn't change the billing for every PageFactory customer to Shopify. Most of my customers don't use Shopify! This requirement made no sense for an application that integrates with many different services, as opposed to one that exists solely to extend the Shopify platform.
I'll spare you the details of what went down. But after a bunch of back and forth with their support, here's what I was told:
- Shopify has two distribution methods for an integration: one where it can be used on only a single store, and one where the integration can be public (so it can be used on multiple stores).
- The only way to make your integration public (so it can be used by multiple stores), is by publishing it in the Shopify App store.
- Anyone who installs your application via the Shopify App store must pay for your service through the Shopify Billing API.
- It's possible to get an exemption to this rule, but there is no standard criteria for determining if an application qualifies for an exemption. They are determined on a case-by-case basis. PageFactory did not qualify for an exemption. 🙄
- My existing customers would not have to change their billing to Shopify. Only new customers that installed my application through the Shopify App store.
By the time I got all of my questions answered, it was basically the last week of June.
A glimmer of hope remained. I just needed to hustle and create an entirely separate billing system for only a handful of users! And jump through all their other hoops for getting approved, like creating a fully functional demo store and GDPR webhooks. Fun!
I tried to put my foot on the gas and power through, but there was nothing left in the tank. I was totally burnt out from constantly discovering surprise requirements that increased the scope and timeline of this project.
And before anyone thinks I'm trying to blame Shopify: I know this was my own fault. All of Shopify's partner requirements are listed in their documentation. They did not "hide" information or intentionally deceive me.
This was just an ill-fated attempt to "move fast and break things." Unfortunately, the thing I think I broke was my brain. 🙃
But It Wasn't All Bad
I did my best to stay productive during the downtime waiting to hear back from Shopify's support.
First, Fantasy Congress got a little update. Now, when educators log in, they get a notification reminding them about the referral program. I'm hoping this will encourage more people to actually use their referral codes as we enter the busy back-to-school season.
A few other small wins:
- I finally set up a welcome email for PageFactory.
- My programmatic niche site acquired 28 newsletter subscribers in it's first month.
- All of my sites were migrated from Universal Analytics to Fathom.
Something I read recently suggested burnout occurs when you feel like you're working really hard but make no progress. And that's where I'm at right now.
Looking back at the past six months, I don't feel like I've made any sizable progress with PageFactory. It's hard to put a finger on exactly why, but I rarely see things to completion.
That said, I'm gently shelving the Shopify integration for a later time. If I keep banging my head against this, I will surely burn out.
Instead, I want to focus on little things. Tasks that I'm confident can be done in a day or two. Maybe if I get some momentum going, I'll avoid burning out completely. I took a nice long break to visit friends over the Fourth of July holiday, so I feel somewhat rested and motivated.
July marks one full year since I launched PageFactory, and I still see so much potential in this business. But if I can't move the needle soon, it may be time to reevaluate it's future.