<?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>Forem: Marcelo Assis</title>
    <description>The latest articles on Forem by Marcelo Assis (@marceloassis123).</description>
    <link>https://forem.com/marceloassis123</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3879528%2Fcc53c1ed-cc23-42b1-9770-87a523bf685d.jpg</url>
      <title>Forem: Marcelo Assis</title>
      <link>https://forem.com/marceloassis123</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/marceloassis123"/>
    <language>en</language>
    <item>
      <title>How I shipped 108 programmatic pages in 5 days and still ranked 74th</title>
      <dc:creator>Marcelo Assis</dc:creator>
      <pubDate>Thu, 16 Apr 2026 10:36:26 +0000</pubDate>
      <link>https://forem.com/marceloassis123/how-i-shipped-108-programmatic-pages-in-5-days-and-still-ranked-74th-28ik</link>
      <guid>https://forem.com/marceloassis123/how-i-shipped-108-programmatic-pages-in-5-days-and-still-ranked-74th-28ik</guid>
      <description>&lt;p&gt;I'm Marcelo, a solo founder shipping AI micro-SaaS tropicalized for Brazil. Last month I generated 108 programmatic pages for Interior AI Brasil in 5 days. Most of them sit at average position 74 in Google Search Console, with page scores I thought would carry them further. This is the honest breakdown of why they don't rank.&lt;/p&gt;

&lt;p&gt;The short version: Domain Rating is a gatekeeper that page-level optimization cannot bypass in the short term. I knew this in theory. Watching it play out on my own dashboard was different.&lt;/p&gt;

&lt;h2&gt;
  
  
  The ceiling I didn't price in
&lt;/h2&gt;

&lt;p&gt;Programmatic SEO works on a specific promise. Generate enough high-intent pages fast, and even a small percentage ranking in the top 10 converts into real traffic. The math is simple. 100 pages, 2% in top positions, 500 monthly searches per keyword, and you have something.&lt;/p&gt;

&lt;p&gt;What the math assumes is that page quality alone decides ranking. It doesn't. Google filters candidates through domain signals before it seriously considers page-level relevance for competitive queries. My domain is at DR 31. The SERPs I'm trying to enter have domains at DR 60 and above. A page score of 80 loses to a DR 72 domain publishing worse content.&lt;/p&gt;

&lt;p&gt;This isn't new information to anyone who does SEO. I underestimated how binary the effect is on a young domain.&lt;/p&gt;

&lt;h2&gt;
  
  
  The stack I used to generate 108 pages in 5 days
&lt;/h2&gt;

&lt;p&gt;The pipeline runs on Next.js App Router with dynamic routes under &lt;code&gt;/usos/[slug]&lt;/code&gt;. Content templates are TypeScript objects fed into Claude Sonnet for variation, validated with Zod before writing to Supabase. SST handles the deploy to AWS Lambda.&lt;/p&gt;

&lt;p&gt;The slug list came from Google Keyword Planner PT-BR, filtered by volume (between 100 and 10000) and commercial intent. I built a cannibalization check that compares cosine similarity between any new slug and existing ones, rejecting anything above 0.82. After filtering, I had 127 approved slugs. I generated 108 pages before stopping to measure.&lt;/p&gt;

&lt;p&gt;Each page has a unique hero, a product-specific use case, three internal links, and schema.org FAQPage markup. Average Ahrefs page score sits at 76. A few hit 84.&lt;/p&gt;

&lt;p&gt;None of that is the bottleneck.&lt;/p&gt;

&lt;h2&gt;
  
  
  The page that made the ceiling visible
&lt;/h2&gt;

&lt;p&gt;The clearest case is &lt;a href="https://interiorai.com.br/usos/decorar-ambiente-online" rel="noopener noreferrer"&gt;Decorar ambiente online | Interior AI&lt;/a&gt;. The page targets three queries with genuine volume in Brazil: "decorador de ambientes", "decoração virtual", and "decorar online". Combined monthly volume is around 5400.&lt;/p&gt;

&lt;p&gt;Ahrefs page score is 81. Content is 1800 words, with internal links to related use cases and a working demo embedded above the fold. Core Web Vitals pass. The URL is clean. The technical setup is fine.&lt;/p&gt;

&lt;p&gt;Average position in Google Search Console: 74.&lt;/p&gt;

&lt;p&gt;I'm not on page 1. I'm not on page 5. I'm on page 7 or 8, where nobody clicks. The top 10 is occupied by domains at DR 55 and higher, plus Pinterest and YouTube results Google treats as authoritative regardless of query fit. My page is more useful than half of them. That doesn't matter.&lt;/p&gt;

&lt;p&gt;The trade-off I made was shipping fast with a known ceiling instead of shipping slowly with the same ceiling. Fast was still the right call, because the pages will rank eventually if DR climbs. I was optimistic about the timeline.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why short-term DR building is mostly wishful thinking
&lt;/h2&gt;

&lt;p&gt;The obvious move is to build backlinks. I'm doing it. I write on dev.to, Medium, Indie Hackers, and Reddit with contextual links back. I do Product Hunt launches. I comment on Hacker News threads where the context fits.&lt;/p&gt;

&lt;p&gt;This works slowly. Every month my referring domains count goes up by maybe 3 to 5 genuine links. DR moves in decimals. Ahrefs refreshes the score every few weeks and I usually see no change.&lt;/p&gt;

&lt;p&gt;The alternatives are worse. Buying links is a Google penalty waiting to happen. PBNs are dead. Guest posts on Brazilian content farms cost between R$500 and R$2000 per link for domains at a DR similar to mine, which means I'd be paying to be linked from peers. Not useful.&lt;/p&gt;

&lt;p&gt;Honest admission: I'm not sure any of my current link-building activity is changing the trajectory in a way that matters for ranking this year. It might be noise.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I actually learned from this
&lt;/h2&gt;

&lt;p&gt;Page score is a necessary condition, not a sufficient one. A page at score 81 on a DR 31 domain ranks worse than a page at score 45 on a DR 72 domain for the same keyword. I knew this abstractly. Seeing it in my own Search Console made me stop over-optimizing individual pages and start thinking about the domain as the real unit of work.&lt;/p&gt;

&lt;p&gt;Programmatic SEO has a different purpose when your DR is low. It isn't about ranking today. At DR 31, the point is owning the URL inventory that will rank once the domain catches up. If I wait until DR 50 to generate pages, I lose a year of indexing and the internal link equity that builds with it. Generating now is a bet on future DR, not current rankings. Most pros who write about programmatic SEO skip this framing because they're already at DR 60-plus and the question doesn't apply to them.&lt;/p&gt;

&lt;p&gt;The DR snowball is probably not built by SEO activity on the same domain. It's built by having other assets that link back naturally. I've been spending time on other products in my portfolio precisely because each new product that gets any traction becomes a legitimate referring domain. Five products at DR 15 each linking to Interior AI move the needle more than fifty guest posts.&lt;/p&gt;

&lt;p&gt;I'm not certain about that last one. It could be rationalization for wanting to build new things instead of grinding outreach. Probably both.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'm doing next
&lt;/h2&gt;

&lt;p&gt;The 108 pages stay up. I'm monitoring them monthly in Search Console. A few have started creeping from position 90 to position 60 over the last month, which is the kind of slow drift that eventually becomes page 2, then page 1. I'm not generating more pages for Interior AI Brasil until at least 3 of the existing ones break into the top 30 organically.&lt;/p&gt;

&lt;p&gt;In parallel, I'm shipping adjacent products. Each one, if it gets any organic traction, becomes a source of contextual links back to the parent portfolio. It's a longer game than I'd like. The short game doesn't exist at DR 31.&lt;/p&gt;

&lt;p&gt;If you're running programmatic SEO on a young domain, I'd want to see your position-to-DR ratio. My suspicion is that most of us are waiting for the same thing and calling it a strategy.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Marcelo Assis — solo founder, Assis Digital Holding&lt;/em&gt;&lt;/p&gt;

</description>
      <category>seo</category>
      <category>webdev</category>
      <category>nextjs</category>
      <category>indiehackers</category>
    </item>
    <item>
      <title>How I built 8 micro-SaaS products in 4 months using programmatic SEO</title>
      <dc:creator>Marcelo Assis</dc:creator>
      <pubDate>Wed, 15 Apr 2026 02:17:58 +0000</pubDate>
      <link>https://forem.com/marceloassis123/how-i-built-8-micro-saas-products-in-4-months-using-programmatic-seo-2dmm</link>
      <guid>https://forem.com/marceloassis123/how-i-built-8-micro-saas-products-in-4-months-using-programmatic-seo-2dmm</guid>
      <description>&lt;p&gt;I'm 21, studying software engineering in Brazil, and I've been building a portfolio of AI-powered micro-SaaS products by myself. No funding, no ads. Just SEO.&lt;/p&gt;

&lt;p&gt;Four months in, I have 8 live products, about 1,000 programmatic landing pages indexed, and $500 in monthly recurring revenue. Most of that comes from 2 products. The rest are basically experiments that haven't proven anything yet.&lt;/p&gt;

&lt;p&gt;Here's how the whole thing works.&lt;/p&gt;




&lt;h2&gt;
  
  
  The idea: take what works in English, rebuild it in Portuguese
&lt;/h2&gt;

&lt;p&gt;Most micro-SaaS ideas I build already exist somewhere in the anglophone market. I find ones doing well on ProductHunt or IndieHackers, then check whether anyone has built the Brazilian version. Usually nobody has.&lt;/p&gt;

&lt;p&gt;Brazil has 210 million people and the 5th largest internet population, but most global SaaS tools have zero Portuguese content. Not translated content, zero. So if I can build a decent version and write proper PT-BR landing pages before anyone else does, I own those keywords for months.&lt;/p&gt;

&lt;p&gt;I won't pretend this is some brilliant insight. It's arbitrage. But it works, and it compounds.&lt;/p&gt;




&lt;h2&gt;
  
  
  How I actually build these things
&lt;/h2&gt;

&lt;p&gt;Everything lives in one pnpm monorepo. Next.js with App Router, NestJS on AWS Lambda via SST, Supabase for the database, Stripe for payments. When I say "launch a new product," I mean I add a new package to the monorepo. Auth, billing, UI components are all shared. The actual new code per product is mostly business logic and landing page templates.&lt;/p&gt;

&lt;p&gt;This setup is the reason I can ship a product in 1-2 weeks. Without it, I'd still be on product number 2.&lt;/p&gt;




&lt;h2&gt;
  
  
  The programmatic SEO part
&lt;/h2&gt;

&lt;p&gt;This is the engine that makes the portfolio approach viable.&lt;/p&gt;

&lt;p&gt;Take one of my products: an AI tool for real estate photo enhancement. Instead of writing one landing page and hoping it ranks, I pulled every long-tail keyword I could find from Google Keyword Planner in PT-BR. Things like "AI photo editing for [room type]" or "virtual staging [city name]." Then I classified them by intent, built page templates, and generated 200+ pages, each targeting a specific query.&lt;/p&gt;

&lt;p&gt;I want to be honest about something here: this only works if each page is genuinely useful for the person who lands on it. I've seen programmatic SEO done badly, thin pages with swapped keywords and nothing else. Google catches that. My pages have unique copy, real examples, and the actual tool built in. It's more work per template, but the pages actually rank.&lt;/p&gt;

&lt;p&gt;Across all 8 products, I have roughly 1,000 pages competing for long-tail queries where most competitors haven't written anything in Portuguese.&lt;/p&gt;




&lt;h2&gt;
  
  
  The products
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://photogen.com.br" rel="noopener noreferrer"&gt;PhotoGen&lt;/a&gt; is an AI photographer. You train a model with your selfies and it generates studio-quality photos. 145+ thematic packs, 7,000+ users so far. This one has the most traction.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aienem.com" rel="noopener noreferrer"&gt;AI ENEM&lt;/a&gt; generates practice questions for Brazil's national university entrance exam. Niche but the search volume is real during exam season.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://interiorai.com.br" rel="noopener noreferrer"&gt;Interior AI&lt;/a&gt; does AI interior design and real estate photo enhancement. The programmatic SEO example I described above is from this one.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://papagaioai.com" rel="noopener noreferrer"&gt;Papagaio AI&lt;/a&gt; does AI video generation with lip sync and voice cloning in Portuguese. Still early.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://influenciadoria.com" rel="noopener noreferrer"&gt;Influenciador IA&lt;/a&gt; generates AI influencer content and virtual personas for brands. Testing product-market fit.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://rastreiareceita.com" rel="noopener noreferrer"&gt;Rastreia Receita&lt;/a&gt; is a revenue tracking dashboard for Brazilian digital product creators who sell on Hotmart, Kiwify, or Stripe. Probably the one with the clearest B2B upgrade path.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://niverfy.com" rel="noopener noreferrer"&gt;Niverfy&lt;/a&gt; automates birthday reminders for teams. Simple product, simple value prop.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://perguntapix.com" rel="noopener noreferrer"&gt;Pergunta PIX&lt;/a&gt; is an AI assistant for questions about PIX, Brazil's instant payment system. This one I'm not sure will survive.&lt;/p&gt;

&lt;p&gt;Honestly, I expect half of these to die. The portfolio approach only works if I'm willing to kill the ones that don't get traction and redirect that energy to the ones that do.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I've figured out so far
&lt;/h2&gt;

&lt;p&gt;Doing one acquisition channel well beats spreading across five. I do zero paid acquisition. Everything is organic SEO. Month 1 was brutal because nothing ranks immediately. But I'm starting to see compounding effects now, and I don't have to pay for every visitor.&lt;/p&gt;

&lt;p&gt;The monorepo saves me from myself. If I had to set up auth and billing from scratch for each product, I would have burned out after product 3. Sharing infrastructure is what makes the "build many, keep few" approach possible.&lt;/p&gt;

&lt;p&gt;I do keyword research before I write a single line of code. I've killed at least 3 ideas that seemed exciting but had literally zero search volume in PT-BR. Would've wasted weeks on each one.&lt;/p&gt;

&lt;p&gt;Writing in Portuguese, not just translating. There's a difference. Most AI tools have either English-only content or awkward machine translations. Writing native content means I'm competing against almost nobody for keywords that actually have volume. This won't last forever, but right now it's a real advantage.&lt;/p&gt;

&lt;p&gt;And the uncomfortable truth: $500 MRR across 8 products means most of them are earning close to nothing. I'm being upfront about that because I've seen too many "I built X products" posts that hide the numbers. The revenue is concentrated in 2, maybe 3 products. The rest are bets that haven't paid off.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I'm doing next
&lt;/h2&gt;

&lt;p&gt;Cutting the products that show zero organic traction after 60 days of indexed pages. Expanding keyword coverage on the 2-3 that are working. Adding B2B pricing tiers to the ones with agency potential (Rastreia Receita is the obvious candidate). And shipping more products, because the math works better with more attempts.&lt;/p&gt;

&lt;p&gt;I'll post updates here with actual numbers. If you have questions about any of this, or if you've tried programmatic SEO for your own stuff, I'd like to hear how it went.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I'm Marcelo Assis. I build AI micro-SaaS for the Brazilian market. You can find me on &lt;a href="https://x.com/MarceloAssis__" rel="noopener noreferrer"&gt;X&lt;/a&gt; or at &lt;a href="https://marceloassis.com.br" rel="noopener noreferrer"&gt;marceloassis.com.br&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>solopreneur</category>
      <category>saas</category>
      <category>braziliandevs</category>
      <category>seo</category>
    </item>
  </channel>
</rss>
