<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Promo Drop]]></title><description><![CDATA[Promo Drop]]></description><link>https://promodropcodes.hashnode.dev</link><image><url>https://cdn.hashnode.com/uploads/logos/6acd341935ffec582cb94b1e/6265b3e5-55c6-4ddd-9e6c-da4c26fd7c0a.png</url><title>Promo Drop</title><link>https://promodropcodes.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Thu, 22 Oct 2026 10:06:40 GMT</lastBuildDate><atom:link href="https://promodropcodes.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Building hundreds of fast, search-friendly pages with Next.js on Vercel]]></title><description><![CDATA[Promo Drop is a free Chrome extension and website for finding promo codes on Whop. The website has a page for each of Whop's most popular programmes…]]></description><link>https://promodropcodes.hashnode.dev/building-hundreds-of-fast-search-friendly-pages-with-next-js-on-vercel</link><guid isPermaLink="true">https://promodropcodes.hashnode.dev/building-hundreds-of-fast-search-friendly-pages-with-next-js-on-vercel</guid><category><![CDATA[Next.js]]></category><category><![CDATA[SEO]]></category><category><![CDATA[Vercel]]></category><dc:creator><![CDATA[Alexander Burnett]]></dc:creator><pubDate>Mon, 12 Oct 2026 21:57:31 GMT</pubDate><content:encoded><![CDATA[<p><a href="https://promodrop.codes">Promo Drop</a> is a free Chrome extension and website for finding promo codes on Whop. The website has a page for each of Whop's most popular programmes. Here's how they're built and what I'd do again.</p>
<h2>Static first</h2>
<p>Every code page is generated at build time from a JSON list of programmes, so visitors and crawlers get plain HTML straight from Vercel's edge. Pages regenerate in the background every six hours, so a normal page view never waits on the database.</p>
<h2>One source of truth for titles and descriptions</h2>
<p>Each page's title and meta description come from one function with one format. When I changed the format, every page updated in the next deploy, with no hand edits.</p>
<h2>A sitemap that tells the truth</h2>
<p>Each page's <code>lastmod</code> comes from real dates in the data (when its facts were last checked, or when a new code was verified), never from the deploy time. Search engines only trust <code>lastmod</code> if it's honest.</p>
<h2>Scheduled refresh without a server</h2>
<p>A weekly GitHub Actions job refreshes the basic public facts (plans, prices, member counts, ratings), commits the updated data, and the push triggers a normal Vercel deploy.</p>
<h2>Search that needs no backend</h2>
<p>The <a href="https://promodrop.codes/codes">codes hub</a> has a search box that loads a small index, built once as a static file, then filters it in the browser. Results appear as you type, it works with the keyboard, and it costs nothing to run.</p>
<h2>Quality gate before indexing</h2>
<p>Pages without enough real information carry <code>noindex</code> until they do. Shipping hundreds of thin pages is the fastest way to make a whole site look low quality.</p>
<h2>What I'd tell anyone building a programmatic site</h2>
<p>Get the boring parts (titles, sitemap, refresh, noindex rules) right first. They matter more than the design.</p>
<p>You can see the result at <a href="https://promodrop.codes">https://promodrop.codes</a>.</p>
]]></content:encoded></item></channel></rss>