# Unlock Vibe Marketing with Programmatic SEO ## Metadata - **Published:** 7/8/2025 - **Duration:** 24 minutes - **YouTube URL:** https://youtube.com/watch?v=3hb7azeeFqM - **Channel:** nerding.io ## Description Join the Community: https://nas.io/vibe-coding-retreat Want to capture long-tail organic traffic without spending hours on manual pages? In this video, I’ll show you how to build a programmatic SEO engine using Cursor and Claude—great for directories, niches, and dynamic sites. You’ll learn how to: - Use Cursor AI to generate scalable SEO page templates - Automate keyword research and content generation with Claude - Scrape and integrate data (e.g., Google Maps, location info) for max relevance - Build, deploy, and optimize thousands of pages with low effort ## Key Highlights ### 1. Programmatic SEO with Dynamic Routes The video explains how to build a programmatic SEO system by creating dynamic routes in Next.js, allowing for targeted content based on various parameters like city, skill, and audience. ### 2. Leveraging AI Tools for SEO The speaker demonstrates using tools like Data for SEO, Firecrawl, and Perplexity to gather keyword data and generate content for programmatic SEO, streamlining the process of page creation. ### 3. Templated Page Generation for Scalability The video highlights the ability to create a single page template and dynamically inject data to generate hundreds of unique pages, enhancing SEO relevance and indexing potential. ### 4. Customizable CTAs for Specific Pages Demonstrates how to customize calls-to-action (CTAs) on dynamically generated pages, allowing for tailored user experiences and improved conversion rates based on the specific content and target audience. ### 5. Generating a Sitemap for Indexing By dynamically creating a sitemap with a multitude of URLs, the presenter shows the importance of allowing Google to index hundreds of pages generated programmatically for improved search visibility. ## Summary Here's a comprehensive summary document for the video, designed for quick understanding: **Video Title: Unlock Vibe Marketing with Programmatic SEO** **1. Executive Summary:** This video explains how to build a programmatic SEO system using Next.js, Cursor AI, and other tools to generate numerous optimized pages from a single template. The presenter demonstrates how to dynamically create routes, gather keyword data, and customize content to capture long-tail organic traffic without extensive manual page creation. **2. Main Topics Covered:** * **Programmatic SEO Fundamentals:** Introduction to programmatic SEO and the concept of creating dynamic routes based on parameters like city, skill, and audience. * **AI-Powered SEO Tools:** Using tools like Cursor AI, Data for SEO, Firecrawl, and Perplexity to automate keyword research, content generation, and data scraping. * **Dynamic Route Creation with Next.js:** Building dynamic routes in Next.js to generate URLs based on variable parameters, enabling tailored content display. * **Templated Page Generation:** Creating a single page template and injecting dynamic data to generate hundreds of unique, SEO-optimized pages. * **Customizable Calls-to-Action (CTAs):** Demonstrating how to tailor CTAs on dynamically generated pages based on the specific content and target audience. * **Sitemap Generation:** Dynamically creating a sitemap with numerous URLs to ensure Google can index the programmatically generated pages for improved search visibility. * **Page Customization Example:** Walkthrough of modifying the UI of generated pages using the AI tool. **3. Key Takeaways:** * Programmatic SEO allows you to generate numerous SEO-optimized pages with minimal manual effort by using dynamic routing and data injection. * AI tools can significantly streamline keyword research, content creation, and data gathering for programmatic SEO. * Next.js is an effective framework for building programmatic SEO systems due to its dynamic routing capabilities. * Customizing CTAs on dynamically generated pages can improve user engagement and conversion rates. * Generating a comprehensive sitemap is crucial for ensuring Google indexes all the pages created through programmatic SEO. * You can customize individual elements of your output by prompting the AI tool to change parameters like padding, colors, etc. **4. Notable Quotes or Examples:** * "What a programmatic SEO system is… is basically creating dynamic routes in your system to allow you to rank up based on the fact that you're saying a particular city or you're saying a particular skill or audience or whatever." * Example of using `n-integrate/postgresql` as an example of good integration page SEO * Demonstration of creating URLs such as `vibe-coding/Detroit/AI app development/product managers/beginner` to target specific niches. * "One page is generating every single one of these vibe coded page page views." (referring to the efficiency of the templated system) **5. Target Audience:** * Developers interested in SEO automation * Marketers seeking to scale content creation * Entrepreneurs and startup founders looking for efficient SEO strategies * Anyone building directories, niche websites, or dynamic content platforms ## Full Transcript Hey everyone, welcome to Nering.io. I'm JD and today what we're going to go through is how you can actually build a programmatic SEO system directly in Vzero. So what that means is you'll have different types of data and we'll be able to combine that into dynamic routes. And with that, let's go ahead and get started. All right, so I've been working on this vibe coding retreat idea. the concept of basically having like a 4-day retreat in a different city going in getting a group of people together and uh building. And so one of the things that I wanted to continue on this is because there's multiple different cities and because there's different like specialties as well as uh you know target audience and things like that. What I wanted to do is um come up with a way to do programmatic SEO for all these different cities and then also the different um the different demographics or target market. And so to do that, I'm actually going to use cursor and a little bit of uh v0ero if it takes it. And then we're going to build out a programmatic SEO system. And so what a programmatic SEO system is uh and and keep in mind I'm learning this as I go uh is basically creating dynamic routes in your system to allow you to rank up based on the fact that you're saying a particular city or you're saying a particular skill or audience or whatever. And so you can see over here I have multiple different URLs. We're going to go through how you can actually make those, etc. But you have things like use AI 2, right? So, we're going to start targeting people that are looking for articles on use AI 2. So, the first thing I did is uh I actually uh pulled in the uh cities that I already have built and then did a SEO folder and I wrote a prompt specifically for this. So, what this is is it's basically I'm going to be using a bunch of different tools. And so, the tools that I'm using are uh data for SEO, firecrawl, and perplexity. I basically set up those configurations. And let's uh take a look at what those look like. So, if you look at So, I used to type AMCP. If you look at uh the settings. We'll go in here to tools and you can see I also have uh boring marketer on here. So this is a custom one that I made. So I can ask for strategy uh along the way but then also have the ability to um use perplexity and data for SEO. So it has tons of different tools available where you can go out and check different keywords and things like that as well as uh perplexity where you can like ask it questions and then must have turned fire crawl off but fire crawl to actually go out and connect like pull uh either search or pull websites that have relevant information uh based on the perplexity ask. So all these kind of combine into like a multiple different way of like pulling in information, building out these dynamic routes. I also gave it I went and worked through a prompt. So basically I'm telling it that I want to use data for SEO uh for the top 25 uh for the top 25 keywords and I also am giving it an example of like medical system that I found where like basically you can uh use that same type. Honestly a really good example of this is any debt. So if you go out and look at n and you search for like postgress real quick everyone if you haven't already please remember to like and subscribe it helps more than you know if you're looking for hands-on training please check out the vibe coding retreat with in the link down below with that let's get back to it or puctor I Uh so right here like the integrations pages. So you have like an integration page and then postgress vector store. And when you come down here you can see different tutorials. You can see different supported nodes. I think you can even do like slash openai. Um, and it'll give you like how you pair this integration with maybe not that one, but you can like pair these together, right? So, that's the whole point of uh having dynamic SEO is you can kind of swap out this URL here and have it uh have it show multiple different different pages. All right. So now we know that we have these cities that we want to go target. We want to pull information back. How do we actually do that? So if we run that that prompt, what's going to happen is it's going out and it's searching for uh programmatic SEO solutions for boot camps. It's getting information from this is from the the vibe marketing or I'm sorry the boring marketing and it's getting a plan based on uh what he's talking about with pro programmatic SEO and different findings. Then it's actually calling out to data for SEO. We've got our strategy through the prompt and through an MCP of our one of our favorite influencers. Then we're pulling and we're actually getting the keyword rankings for vibecoding retreat.com. Pulling back that information. We're getting keyword ideas based on the rankings. Then based on those rankings, we're continuing more keyword suggestions. So, we've got like five different calls to the SEO right here. It might be a little hard to see, so I'm make this bigger. Um, but as you can see, we're starting to gather information, right? We're gathering the information about the SEO. And then what we're doing is try a little bit is pulling back and having it creating uh different pages based on that. So the first thing that it's going to do is it's actually pulling back this page programmatic SEO and it's or not pulling back it's making this page programmatic SEO. I don't totally love how it did this because if you look what it's doing is it's putting all like the type interface is great. Totally like totally fine with that. But the fact that it's actually putting the SEO data in here. Um I'm probably going to switch this out. I don't really like the fact that my data is actually in my lib. I'd rather have that be either in a database or probably I'll just use JSON files uh for right now depending on how long or how big I want to make this. But then it's starting to make the actual pages. So when we start looking at the routes here, we can have like a focus. So definitely some bugs. I'm going to get to that at some point. But the idea is is that you have a focus and a slug. That slug is going to pull from different parts of information and start building out the metadata. So that metadata is going to be put into our robots txt file. It's going to be put into our sitemap. You can see that all of these pages that I've now started to make, it is building out through an array of programmatic URLs, right? And so I kept going through different use cases that I wanted to make. Um, and I I had it made a strategy make a strategy markdown file. And so in here, this is where I'm actually like outlining what's outlining what's happening. Again, this is very much in progress. These are some of the highv value keywords that we're going after. I might even like switch some of this up. But what it can do is it can take the words like full stack and actually make that into part of the slug. So as you can see there are more and more examples that it's pulling from and again existing dynamic routes. This is based on what it built is the fact that you can actually have different uh dynamic pages. Right? So now we have right here you can see a focus hub, a skill hub, a city hub. You can have a focus for data science, devops, whatever. You can have levels of beginner, you can have Detroit focus. We can even go further into the ability to have things like a larger target audience. So this is where I started building out for things like entrepreneurs, product managers, etc. So, as I'm going through, I'm building more and more of the uh these these dynamic routes, and I'm trying to keep it in this strategy that I can use as a way to prompt the system. And so, you know, a visual is worth a thousand words. So, if we take a look at what this means and we come here to the sitemap, this is all of the URLs that it's actually created for the uh for for Google to come and pick up. You can see there's a ton of pages, right? And I can expand on this too. So the thing that I wanted to show was that these are all the ones that we were just looking at. So this is basically more info on for instance like Asheville and we have like a template specifically for Ash. We have the SEOs up here. And the difference between this and say like Chicago is really just the color theme and the data that I want to put into it, right? It's no different than like a database, but it gives like this template of information. So when we come here and we're looking at okay, we want to have a URL for vibe coding in Detroit in an AI app development for product managers at a beginner level. We can actually do that. We can say like that. But you can see that it is pulling information, right? So now it's saying, okay, well here's in Detroit. Here's what you're going to build. This is for product managers. Uh, I'll probably come in here and I can actually go and like change some of this. So, maybe have like a simple button like move the join retreat and view schedule over to here and just have like a sign up or something, right? And I know that I can go change that specifically by seeing my route. So, I've got vibe coding here. I can go and change that in my vibe coding folder and I can just see that I this is the parameter. Right? So again these brackets show the URI of the parameters that I am looking for and then based on that I can take that information. I can look at my parameters and I can say okay these are the par parameters of the data that I need to get from this URI based on that if it doesn't exist do a 404 otherwise build the meta content. So that's the other thing, right? Is like this is all sharable. It needs to have an OG image. It needs to have canonical URLs. It needs to have all of that SEO specific information. All of that is getting generated on the fly off of one page. So again, one page is generating every single one of these vibecoded page page views. And this route is just one example right? So, I mean, there's hundreds of pages here based on just this one thing. And so, again, we can say now we'll go into Minneapolis mobile app and we're looking at students and intermediate. And again, all it's doing is changing some information, but making it very specific to what what this page is about. Now, again, I'll probably like come in and clean all this up. Like, I'm not necessarily targeting some of these things, but you get the idea of this is all from a single page. Now we're on launch and we just did the web. So let's do MVP development launch. We have a new URL and we have a totally new design. Right? Again, I'm going to come in here. I'm going to clean some of this up. Right? Like we don't want this button. But you can see and I think we can just change this to like app. All right. But you can see that this is a totally different page than this page and a different URL, but still targeting the same information. That's the key thing is it's still targeting the same information, but it's giving more and more uh pages for you to be indexed on based on the keyword search. again showing the different levels. Uh I'm definitely going to come in and build an action item on this. Probably do some editing just to show uh how how to come in and edit this. So we're going to go back to the let's just keep going. So now I have uh a lower level, right? I have a web launch in Asheville and uh so now I'm targeting the city to be more specific. Um as well as targeting things like just this, right? So or I think four will work. So let's try this one as well. Uh but you just have like a four slash product managers right cool. So again now it's totally different view different colors different uh everything but the URL is different as well as some of the information here and we keep changing this information how it looks so that this will help boost uh our relevance on on SEO. Again, I'm learning as I'm going. So, if I'm wrong, uh, happy happy to be learning from everybody else and pointed it out. But this is kind of where the system's at. And then at the very end, what I am starting to do now is build out an instructions. So now that I have like hundreds of pages of SEO strategy, I actually want to take this document and put in instructions so that I can do programmatic uh research later on. But let's take a look at how we can actually go in and change this and uh we'll take a look at this four page. So again, I just have four and audience and right here you can come in and basically uh where was that? Let's say we want a reasonable signups above and I think I have a component that I can pull from. So we'll take a look and let's go ahead and pull this page in as well. And then this is how we can actually add a component. So it came back uh and it's it's giving like a simple way. So I I kind of like this that you can just kind of customize it if you want. Um let's go ahead and say use it in the page. Actually, you know what? Let's instead of doing that, we'll we'll just kind of see. So, we've got our vibe coding. Um, I'm gonna This is just going to bother me. So, I'm going to create a new chat. What's this arrow? So, what I'm doing by that, I could just as easily uh change the code, but I just want to move this arrow so it's like over. Um, and then I'm probably just going to drop the CTA right below. it may not be the best use. Or maybe I'll uh maybe I'll move it down. Um either way, the the point is is that basically going to create a uh CTA. So we'll just do simple. And we should have our flex centered now. Cool. So that fixed that bug. Now we have our uh ready to launch your app. Get info. Um, and I think we can customize that, right? So, if we go and while that's doing that, we're going to kind of look at this. So, I definitely want to like change the margin. It is above the uh it is above the iceberg. I think I'm going to move this further down and probably change out this button and some of this text. Okay, cool. So, we just saw that pop. Basically that means like it uh it updated right so let's take a look at what it actually updated click here cool so basically it took the audience and it took the uh variant went ahead and put in all that um the other thing I'm not I'm not loving that uh so I'm going to go into the simple CTA. And I think I'm going to get rid of this expand. And we're just going to have it now sit there the entire time. Um, feels a little heavy to me. So let's make sure this is actually calling our react query. It is. So it is actually hitting the signup as well. And I think instead of doing a dropdown here, I am going to rip that out and just do a um there's also a way where like I could actually take this and uh like specifically state that they're um in a particular city or particular uh demographic, right? So we could actually say so we'd have to pass variance um through our form data or not our form data, we'd have to pass variance through here. Uh we could just do like meta maybe. All right. So now we have information that we can actually send to the CTA. Uh you can kind of see uh we have this information here. Um probably get rid of the cancel and put the the info button on the right. Think we can just move this into the flex and we don't need to worry about gap. But we'll go keep it and then we'll say and then that'll give us a uh way to actually pull this information in and instead of let's see if we can do a class. Okay, great. All right. Again, not loving parts of this. So, we're going to go ahead and do some padding changes. Perfect. All right. So, now we have uh a little bit of uh a uh CTA and we can we can still change this want, but basically just want to show that you can like customize this. So, now if we want to take that same CTA, we can actually apply it uh in different places. So, we want to come here and what was the last page we were on? We're on launch. So, if we come into launch and we say on our page, we're going to do something similar. So, where would we want this? We want our choose city. So, we'll come right here and we'll just do this. And we can say uh-2 [Music] and we need to do our space to refresh. There we go. And now we have our CTA right here. Again, didn't change much. Um, we can come in and change whatever we want. We can change the colors just like we did. Uh but now we have a CTA basically on this um and uh an easy way to to create dynamic SEO. So in the next video, what I'm going to do is I'm actually going to take this uh instructional guide and I'm going to show how to build out. We're going to go through an example live of building out data. um to actually research this. All right, that's it for us today everyone. What we went through was the ability to build out a programmatic SEO system directly in Vzero. What that meant was going through Nex.js, wiring up all our different dynamic routes and then seeing how we can actually inject different data and combine those together to give us hundreds of different pages out of a little amount of data. With that happy nerding, --- *Generated for LLM consumption from nerding.io video library*