<?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>DEV Community: AntonAmbarov</title>
    <description>The latest articles on DEV Community by AntonAmbarov (@antonambarov).</description>
    <link>https://dev.to/antonambarov</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1441354%2F9618496b-98bf-4331-ae0e-7a450642fa0f.png</url>
      <title>DEV Community: AntonAmbarov</title>
      <link>https://dev.to/antonambarov</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/antonambarov"/>
    <language>en</language>
    <item>
      <title>I built an open-source SEO landing builder (Next.js + Payload). But I need your help — is this actually useful?</title>
      <dc:creator>AntonAmbarov</dc:creator>
      <pubDate>Tue, 23 Jun 2026 11:47:06 +0000</pubDate>
      <link>https://dev.to/antonambarov/i-built-an-open-source-seo-landing-builder-nextjs-payload-but-i-need-your-help-is-this-394n</link>
      <guid>https://dev.to/antonambarov/i-built-an-open-source-seo-landing-builder-nextjs-payload-but-i-need-your-help-is-this-394n</guid>
      <description>&lt;h2&gt;
  
  
  The problem I kept seeing
&lt;/h2&gt;

&lt;p&gt;I've spent years in SEO across enterprise teams and different niches. Then I became a full-stack developer.&lt;/p&gt;

&lt;p&gt;And I kept running into the same issue:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The SEO-Dev gap.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In every company I worked for, SEO tasks were stuck in a backlog. Changing an H1, adding a FAQ block, or updating a phone number — these are 2-minute tasks that take 2 weeks because they need a developer.&lt;/p&gt;

&lt;p&gt;I've been on both sides. I know why devs hate these tickets. And I know why SEOs get frustrated.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The enterprise solution?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In big companies, they build internal landing constructors. Custom tools where SEOs can build pages themselves — no designers, no frontend devs, no waiting.&lt;/p&gt;

&lt;p&gt;But every company rebuilds the same thing from scratch. Expensive. Time-consuming. Only big players can afford it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So I built an open-source alternative.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introducing SEO Landing Constructor
&lt;/h2&gt;

&lt;p&gt;A free, self-hosted landing page builder with SEO at its core.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Built with:&lt;/strong&gt; Next.js 15 (App Router), Payload CMS 3, TypeScript, Tailwind CSS, shadcn/ui, PostgreSQL + Drizzle&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MIT licensed.&lt;/strong&gt; Deploy on your own infrastructure. No vendor lock-in.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does right now (MVP)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;For SEOs &amp;amp; Marketers:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Blocks-based builder&lt;/strong&gt; — Hero, Pricing, FAQ, Testimonials, CTA, Features. Assemble pages in minutes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Visual Block Customization&lt;/strong&gt; — adjust padding, margins, background, theme (dark/light) directly from admin panel.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Global shortcodes&lt;/strong&gt; — change price, phone, company name in ONE place. Updates across ALL pages instantly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bulk JSON import&lt;/strong&gt; — migrate entire page structures or generate pages via AI in seconds.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;For Developers:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SEO out of the box&lt;/strong&gt; — SSR, metadata, sitemap, schema.org, Open Graph, optimized Core Web Vitals&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;overrides/blocks/&lt;/code&gt; system&lt;/strong&gt; — customize any block without touching core code. Keep your design system.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Self-hosted&lt;/strong&gt; — deploy on your domain, subdomain, or separate domain. Full control.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clean codebase&lt;/strong&gt; — well-structured, TypeScript, modern stack&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Architecture deep dive
&lt;/h2&gt;

&lt;p&gt;Here's the high-level structure:&lt;br&gt;
├── payload/blocks/ # Block schemas for admin panel&lt;br&gt;
├── components/blocks/ # React components for frontend&lt;br&gt;
├── components/overrides/ # Safe customization layer (!!)&lt;br&gt;
├── payload/globals/ # Global settings &amp;amp; shortcodes&lt;br&gt;
└── components/ui/ # shadcn/ui base components&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The key design decision:&lt;/strong&gt; the &lt;code&gt;overrides/&lt;/code&gt; folder.&lt;/p&gt;

&lt;p&gt;Developers can override ANY block without modifying the core package. This means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You keep your design system intact&lt;/li&gt;
&lt;li&gt;You can add custom business logic&lt;/li&gt;
&lt;li&gt;You don't fight with the CMS when you need to customize something&lt;/li&gt;
&lt;li&gt;Upgrades don't break your customizations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why this matters:&lt;/strong&gt; Most open-source CMS tools force you to either accept the default UI or fork the entire project. This approach gives you the best of both worlds — a working system out of the box, with escape hatches when you need them.&lt;/p&gt;
&lt;h2&gt;
  
  
  What's coming (Roadmap)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;In progress:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Live Preview &amp;amp; Draft mode — see changes before publishing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Next:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Advanced SEO blocks — Stats, Trust Bar, Comparison Table, Logos, Countdown, FAQ with schema&lt;/li&gt;
&lt;li&gt;Custom HTML Block&lt;/li&gt;
&lt;li&gt;Built-in form handling with server actions&lt;/li&gt;
&lt;li&gt;Page templates — reusable structures&lt;/li&gt;
&lt;li&gt;A/B testing for individual blocks&lt;/li&gt;
&lt;li&gt;Multi-language (i18n) support&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Future:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reusable Widgets system&lt;/li&gt;
&lt;li&gt;AI-assisted content generation&lt;/li&gt;
&lt;li&gt;Analytics integration (GTM/GA4)&lt;/li&gt;
&lt;li&gt;CLI improvements&lt;/li&gt;
&lt;li&gt;Smart page templates with block inheritance&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Where I need YOUR help
&lt;/h2&gt;

&lt;p&gt;This is an MVP. There are bugs. The UI isn't perfect. And I'm not sure if I'm building the right thing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So I have some open questions for the community:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Is this actually useful?&lt;/strong&gt; — Would you (or your marketing team) use something like this? Or is the problem not painful enough?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;What blocks are missing?&lt;/strong&gt; — What landing page components do you constantly rebuild? What would make you switch from Webflow/Carrd/your current solution?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Devs — what would make this easier to adopt?&lt;/strong&gt; — Better CLI? More documentation? Video tutorials? Docker setup?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;SEOs — what's the #1 feature you wish existed?&lt;/strong&gt; — I've built what I &lt;em&gt;think&lt;/em&gt; you need, but I might be wrong.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;How should I grow this?&lt;/strong&gt; — Focus on more blocks? Better developer experience? Marketing site? Community?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Is the &lt;code&gt;overrides/&lt;/code&gt; approach actually useful?&lt;/strong&gt; — Or should I make customization even simpler?&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  Try it. Break it. Tell me what sucks.
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://create-seo-landing.vercel.app/" rel="noopener noreferrer"&gt;https://create-seo-landing.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Admin Panel:&lt;/strong&gt; &lt;a href="https://create-seo-landing.vercel.app/admin/" rel="noopener noreferrer"&gt;https://create-seo-landing.vercel.app/admin/&lt;/a&gt;&lt;br&gt;
login: &lt;a href="mailto:demo@demo.com"&gt;demo@demo.com&lt;/a&gt;&lt;br&gt;
pass: Demopassword&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repo:&lt;/strong&gt; &lt;a href="https://github.com/AntonAmbarov/create-seo-landing" rel="noopener noreferrer"&gt;https://github.com/AntonAmbarov/create-seo-landing&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick start:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/AntonAmbarov/create-seo-landing.git
&lt;span class="nb"&gt;cd &lt;/span&gt;seo-landing-constructor
&lt;span class="nb"&gt;cp&lt;/span&gt; .env.example .env
pnpm &lt;span class="nb"&gt;install
&lt;/span&gt;pnpm dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  The bigger picture
&lt;/h3&gt;

&lt;p&gt;I've seen this work in enterprise. Now I want to make it available for everyone — indie founders, small teams, agencies, and anyone tired of the SEO-Dev gap.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;But I can't build this alone&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I need feedback. I need people to break it. I need to know if I'm solving a real problem or just building something that seems cool.&lt;/p&gt;

&lt;p&gt;So if you have 5 minutes:&lt;/p&gt;

&lt;h2&gt;
  
  
  Try the demo
&lt;/h2&gt;

&lt;p&gt;Break something&lt;/p&gt;

&lt;p&gt;Leave a comment telling me what you think&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/AntonAmbarov/create-seo-landing" rel="noopener noreferrer"&gt;https://github.com/AntonAmbarov/create-seo-landing&lt;/a&gt;&lt;br&gt;
Open to: Contributors, feedback, feature requests, and brutal honesty.&lt;/p&gt;

&lt;p&gt;Thanks for reading 🙌&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>opensource</category>
      <category>seo</category>
      <category>marketing</category>
    </item>
  </channel>
</rss>
