
Yieldso
SEO, AI Visibility and More for Shopify Stores
On 5 September I set myself a challenge: build my first Shopify app, get it through Shopify's review, and get it listed on the App Store.
On 30 September, Yieldso went live: https://apps.shopify.com/yieldso
This is how it went, including what I got wrong.
Where it started
Yieldso started as a general SEO tool for any website. It worked, but "SEO for everyone" is a crowded, vague market. Shopify merchants have a specific problem. They have hundreds of products, thin meta descriptions, missing alt text and patchy structured data, and now AI search is on top of all that. They don't have time to fix any of it by hand.
So I dropped the general product and rebuilt Yieldso from scratch as an app that runs inside the Shopify admin. I had never built a Shopify app before.
What it does
Most SEO apps give you a report with 200 problems and leave you to it. I wanted Yieldso to fix things, safely:
It finds the problems. Product and collection meta, image alt text, structured data, broken links, redirects and crawl issues.
It proposes the fix and you approve it. Nothing is written to the store without your OK, and every change can be undone.
It checks readiness for AI search. It shows which AI crawlers can reach your store and counts visits that come from assistants like ChatGPT and Perplexity.
It measures store speed. Core Web Vitals from Google PageSpeed, plus speed data from real shoppers through a theme embed.
It uses your Search Console data. It shows which searches you're close to winning and where your own pages compete with each other.
Pricing: a free plan, then Growth at $39/month and Pro at $149/month.
The stack
ASP.NET Core, EF Core, Postgres, Hangfire and ShopifySharp on the backend. React and Vite with Polaris web components and App Bridge on the frontend.
What I learned (the part I wish I'd read first)
1. Declare webhooks in shopify.app.toml only. I also registered them per shop through the API. Every event arrived twice, and my uninstall handler started crashing. Pick one method, and let it be the TOML file.
2. Shopify already serves /llms.txt for every store. I planned my AI-search features around owning that file, and it turned out the platform already owns it. Check what Shopify already does before you design around it.
3. Real merchants use Search Console "Domain" properties. My first Google integration only handled URL-prefix properties, so it worked on my test site and failed on real stores. Test with messy, real accounts early.
4. Use Managed Pricing for your first app. I moved from the Billing API to Shopify's hosted pricing page and deleted a lot of code. The catch: the plan names in the Partner Dashboard must match your code exactly.
5. Cutting features is a feature. I built an "ask anything about your store" AI chat, and then removed it. It overlapped with the core product and had an uncapped cost on every question. The app got better without it.
6. Audit your landing page against your code. Before submitting, I compared every promise on the homepage and pricing page with what the code actually did. About a dozen didn't hold up. I fixed the product or rewrote the claim. Reviewers and merchants will both notice the gap.
7. Do Shopify's review checklist yourself before submitting. I ran through the requirements, fixed every failure, and was ready to justify anything that touched the theme. It made the real review much smoother.
8. App Store screenshots are harder than they look. Your app runs inside a cross-origin iframe in the Shopify admin, so ordinary screenshot tools struggle. Leave time for it.
What's next
Now the real work starts: first merchants, first reviews, and learning what people actually use. Next on my list are an "AI shopping agent check" and the Built for Shopify badge.
If you run a Shopify store, I'd love for you to try the free plan and tell me what's missing. If you've shipped a Shopify app, I'd like to hear what surprised you after launch.
About
First Shopify app challenge

3 Comments