<?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: Selin Vidal</title>
    <description>The latest articles on DEV Community by Selin Vidal (@selinvidal).</description>
    <link>https://dev.to/selinvidal</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%2F4136783%2F3210688f-8c81-4e44-9086-07b02f527c7b.png</url>
      <title>DEV Community: Selin Vidal</title>
      <link>https://dev.to/selinvidal</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/selinvidal"/>
    <language>en</language>
    <item>
      <title>Free Landing Page Templates in 2026: 9 Sources I Checked</title>
      <dc:creator>Selin Vidal</dc:creator>
      <pubDate>Wed, 07 Oct 2026 03:32:33 +0000</pubDate>
      <link>https://dev.to/selinvidal/free-landing-page-templates-in-2026-9-sources-i-checked-1nce</link>
      <guid>https://dev.to/selinvidal/free-landing-page-templates-in-2026-9-sources-i-checked-1nce</guid>
      <description>&lt;p&gt;Most lists of free landing page templates were written years ago, and the problem is not only that the screenshots look old. Half the repos have gone quiet, some pin a CSS framework two major versions behind, and a few have licence terms that people skip right past. I build landing pages for small product teams, and I start almost every job from a template. So this week (6 October 2026) I went back through the sources I actually use. For each one I checked the repo, the licence and the date of the last push before writing it down.&lt;/p&gt;

&lt;p&gt;When none of them fits the brief, which happens on roughly one project in five, I describe the page to &lt;a href="https://begin.sh/?utm_source=devto&amp;amp;utm_medium=ugc&amp;amp;utm_campaign=selinvidal&amp;amp;utm_content=landing-page-templates-intro" rel="noopener noreferrer"&gt;Begin&lt;/a&gt; and it writes it as an ordinary Next.js/React/Tailwind project. More on that at the end. Templates first.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I judged each template
&lt;/h2&gt;

&lt;p&gt;I only had four questions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Is anyone still committing?&lt;/strong&gt; I looked at the last push date on GitHub. Anything quiet for more than about two years gets a warning, not a ban. A static HTML page doesn't rot the way a Next.js app does.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What does the licence actually allow?&lt;/strong&gt; "Free" covers everything from MIT to "free, but credit me in the footer" to "free, but don't redistribute".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What stack is it on, and which version?&lt;/strong&gt; A template on Tailwind 2 or Next 14 is still usable, but you're inheriting an upgrade.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How fast can I delete what I don't need?&lt;/strong&gt; A landing page template usually ships a blog, five page variants and a pricing table nobody asked for.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The comparison table
&lt;/h2&gt;

&lt;p&gt;Data checked on 2026-10-06, taken from each repo's GitHub metadata, README and &lt;code&gt;package.json&lt;/code&gt;.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Template&lt;/th&gt;
&lt;th&gt;Stack (from package.json / source)&lt;/th&gt;
&lt;th&gt;Licence&lt;/th&gt;
&lt;th&gt;Last push&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;AstroWind (&lt;code&gt;arthelokyo/astrowind&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Astro 7, Tailwind CSS v4&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;td&gt;2026-09-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Launch UI (&lt;code&gt;launch-ui/launch-ui&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Next.js 16, shadcn/ui, Tailwind 4.3&lt;/td&gt;
&lt;td&gt;MIT (some sections are Pro-only)&lt;/td&gt;
&lt;td&gt;2026-09-04&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bigspring Light (&lt;code&gt;themefisher/bigspring-light-astro&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Astro 7, Tailwind 4&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;td&gt;2026-06-27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Next JS Landing Page Starter (&lt;code&gt;ixartz/...&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Next.js 14, Tailwind 3&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;td&gt;2026-01-18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cruip Open (&lt;code&gt;cruip/open-react-template&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Next.js 15, Tailwind 4&lt;/td&gt;
&lt;td&gt;GPL + "don't redistribute" terms&lt;/td&gt;
&lt;td&gt;2025-12-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cruip Simple Light (&lt;code&gt;cruip/tailwind-landing-page-template&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Next.js 15, Tailwind 4&lt;/td&gt;
&lt;td&gt;GPL + "don't redistribute" terms&lt;/td&gt;
&lt;td&gt;2025-12-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;shadcn Landing Page (&lt;code&gt;leoMirandaa/shadcn-landing-page&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Vite 5, React 18, Tailwind 3&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;td&gt;2024-10-09&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Start Bootstrap Landing Page&lt;/td&gt;
&lt;td&gt;Bootstrap 5.2.3, Pug + SCSS build&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;td&gt;2024-07-08&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tailwind Toolbox Landing Page&lt;/td&gt;
&lt;td&gt;One &lt;code&gt;index.html&lt;/code&gt;, Tailwind 2.2.19 via CDN&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;td&gt;2024-04-25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTML5 UP (site, not a repo)&lt;/td&gt;
&lt;td&gt;Plain HTML + CSS&lt;/td&gt;
&lt;td&gt;CC BY 3.0 (attribution required)&lt;/td&gt;
&lt;td&gt;no public dates&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  The landing page templates, one by one
&lt;/h2&gt;

&lt;h3&gt;
  
  
  AstroWind: my default for content-heavy launches
&lt;/h3&gt;

&lt;p&gt;AstroWind is the one I reach for when the "landing page" is going to grow a blog, a changelog and docs within a month. Its README lists 30+ typed page-section widgets (heroes, features, bento, pricing with a comparison table, FAQ accordion, testimonials, newsletter), and the whole site is configured from &lt;code&gt;src/config.yaml&lt;/code&gt;. It's the most actively maintained repo here, with the last push in September 2026. The code example below uses it. The source is on &lt;a href="https://github.com/arthelokyo/astrowind" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;One thing to know: the README says it needs Node.js 22.22.3 or newer (there's an &lt;code&gt;.nvmrc&lt;/code&gt;), so check that before you blame the template for a broken install.&lt;/p&gt;

&lt;h3&gt;
  
  
  Launch UI: if the client is already on shadcn/ui
&lt;/h3&gt;

&lt;p&gt;Launch UI is less a single template and more a kit of landing sections (navbar, hero, items, logos, FAQ, stats, CTA, footer) built on Next.js 16, shadcn/ui and Tailwind 4. It's handy when the product app already uses shadcn, because the marketing page then shares the same design tokens. Bento grids, testimonials, carousels and tabs are in the paid Pro version, so plan your sections around what's in the free repo. If you're still on Tailwind 3, the README says a separate &lt;code&gt;tailwind-3&lt;/code&gt; branch is maintained.&lt;/p&gt;

&lt;h3&gt;
  
  
  Bigspring Light: Astro, marketing-shaped
&lt;/h3&gt;

&lt;p&gt;Themefisher's Bigspring is an Astro 7 + Tailwind 4 theme pitched at SaaS and marketing sites. It has fewer stars than AstroWind, but it got a push in June 2026, and its &lt;code&gt;package.json&lt;/code&gt; already includes a Cloudflare Workers deploy script (&lt;code&gt;deploy:cf-workers&lt;/code&gt;). Pick it if you want Astro without AstroWind's look. AstroWind's README calls it the most-starred Astro theme four years running, so visitors may have seen its default layout before.&lt;/p&gt;

&lt;h3&gt;
  
  
  ixartz Next JS Landing Page Starter
&lt;/h3&gt;

&lt;p&gt;This one is a clean, single-page Next.js + TypeScript starter with ESLint, Prettier and Husky already set up. The repo was pushed in January 2026, but the dependencies are still Next 14 and Tailwind 3. That's fine for a page that won't change much. For a long-lived site I'd budget an afternoon for the upgrade before the client sees it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cruip Open and Simple Light
&lt;/h3&gt;

&lt;p&gt;The 2020 dev.to list that still ranks for this keyword was written by one of Cruip's founders, and Cruip has kept these two free templates current. Both moved to Next.js 15 and Tailwind v4 in 2025. They look polished, and Open has a dark look that works well for developer tools.&lt;/p&gt;

&lt;p&gt;Read the licence before you fork them, though. GitHub's licence detector shows nothing for either repo. The README says GPL and then adds: use it for personal and commercial projects, but don't republish, redistribute or resell the template. Building a client's site is fine. Turning it into your own template pack is not.&lt;/p&gt;

&lt;h3&gt;
  
  
  shadcn Landing Page (Vite)
&lt;/h3&gt;

&lt;p&gt;This is a nice single-page React + shadcn layout. It's a plain Vite SPA, though, not Next.js, so it renders client-side by default. For a landing page that needs to rank, I either prerender it or move the sections into an SSR framework. The last push was October 2024, so treat it as a parts bin.&lt;/p&gt;

&lt;h3&gt;
  
  
  Start Bootstrap Landing Page
&lt;/h3&gt;

&lt;p&gt;It's old-school and still useful. If the client's team knows Bootstrap and not Tailwind, this is the least friction. Per the README, you can just edit the files in &lt;code&gt;dist/&lt;/code&gt; and open &lt;code&gt;index.html&lt;/code&gt;. The full build (&lt;code&gt;npm start&lt;/code&gt;) compiles Pug and SCSS from &lt;code&gt;src/&lt;/code&gt;. Bootstrap is pinned at 5.2.3, and the repo hasn't been pushed since mid-2024.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tailwind Toolbox Landing Page
&lt;/h3&gt;

&lt;p&gt;The entire template is one &lt;code&gt;index.html&lt;/code&gt; that pulls Tailwind 2.2.19 from a CDN. I use it for throwaway "is anyone interested?" pages where a build step is overkill. Don't use it for anything you'll maintain. The CDN build of Tailwind 2 ships the whole framework, and moving to v4 means rewriting classes.&lt;/p&gt;

&lt;h3&gt;
  
  
  HTML5 UP
&lt;/h3&gt;

&lt;p&gt;These are plain HTML/CSS templates with nothing to install, and the site is still up and serving downloads. The licence is Creative Commons Attribution 3.0. You can use them commercially and change them however you like, but you have to credit HTML5 UP. The author sells attribution-free versions separately. There are no dates on the site, so I can't tell you how recently any one template was touched.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stripping a template down and shipping it
&lt;/h2&gt;

&lt;p&gt;Every time I start from a template I do the same three things. I delete the routes I don't need, set the metadata, and ship the static output. Here's that for AstroWind. The commands and config keys come straight from its README.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Scaffold from the template (name the folder my-landing when prompted)&lt;/span&gt;
npm create astro@latest &lt;span class="nt"&gt;--&lt;/span&gt; &lt;span class="nt"&gt;--template&lt;/span&gt; arthelokyo/astrowind
&lt;span class="nb"&gt;cd &lt;/span&gt;my-landing
npm &lt;span class="nb"&gt;install&lt;/span&gt;

&lt;span class="c"&gt;# 2. Turn off the blog if this is a single landing page&lt;/span&gt;
&lt;span class="c"&gt;#    (edit src/config.yaml, see the YAML below)&lt;/span&gt;

&lt;span class="c"&gt;# 3. List the widgets the homepage imports, then remove the sections you&lt;/span&gt;
&lt;span class="c"&gt;#    don't need from src/pages/index.astro (BlogHighlightedPosts goes&lt;/span&gt;
&lt;span class="c"&gt;#    first if the blog is off)&lt;/span&gt;
&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-ho&lt;/span&gt; &lt;span class="s2"&gt;"widgets/[A-Za-z]*"&lt;/span&gt; src/pages/index.astro | &lt;span class="nb"&gt;sort&lt;/span&gt; &lt;span class="nt"&gt;-u&lt;/span&gt;

&lt;span class="c"&gt;# 4. Build and check locally&lt;/span&gt;
npm run check
npm run build      &lt;span class="c"&gt;# static output goes to ./dist/&lt;/span&gt;
npm run preview

&lt;span class="c"&gt;# 5. Ship ./dist to any static host, e.g. your own server&lt;/span&gt;
rsync &lt;span class="nt"&gt;-avz&lt;/span&gt; &lt;span class="nt"&gt;--delete&lt;/span&gt; dist/ deploy@your-server:/var/www/my-landing/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The relevant part of &lt;code&gt;src/config.yaml&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;site&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Acme'&lt;/span&gt;
  &lt;span class="na"&gt;site&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;https://acme.example'&lt;/span&gt;
  &lt;span class="na"&gt;base&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;/'&lt;/span&gt;

&lt;span class="na"&gt;metadata&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;default&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Acme'&lt;/span&gt;
    &lt;span class="na"&gt;template&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;%s&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;—&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Acme'&lt;/span&gt;
  &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;One&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;sentence&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;that&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;says&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;what&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Acme&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;does&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;and&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;for&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;whom.'&lt;/span&gt;

&lt;span class="na"&gt;apps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;blog&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;isEnabled&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;   &lt;span class="c1"&gt;# single landing page, no blog routes&lt;/span&gt;

&lt;span class="na"&gt;ui&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;theme&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;light:only'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The same approach works for the Next.js templates. Delete unused routes under &lt;code&gt;app/&lt;/code&gt;, and if there's no server code, add &lt;code&gt;output: 'export'&lt;/code&gt; to the Next config so &lt;code&gt;next build&lt;/code&gt; writes a static &lt;code&gt;out/&lt;/code&gt; folder you can host anywhere.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which one I'd pick
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Developer tool or OSS project, dark look:&lt;/strong&gt; Cruip Open, as long as you're fine with its redistribution terms.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SaaS that will grow a blog and docs:&lt;/strong&gt; AstroWind.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Product app already on shadcn/ui:&lt;/strong&gt; Launch UI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Team that only knows Bootstrap:&lt;/strong&gt; Start Bootstrap Landing Page.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A validation page you'll delete in two weeks:&lt;/strong&gt; Tailwind Toolbox or HTML5 UP.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Are free landing page templates OK for commercial use?&lt;/strong&gt;&lt;br&gt;
Usually, but check each licence. MIT ones (AstroWind, Launch UI's free tier, Start Bootstrap) let you do almost anything. HTML5 UP requires attribution. Cruip allows commercial client work but forbids redistributing the template itself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's the best free landing page template for SEO?&lt;/strong&gt;&lt;br&gt;
Pick one that renders HTML on the server or at build time: Astro-based templates or Next.js with static export. A client-only Vite SPA like the shadcn landing page needs prerendering before search engines see your content reliably.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is there a good HTML landing page template without a build step?&lt;/strong&gt;&lt;br&gt;
Yes. HTML5 UP and the Tailwind Toolbox page are both a folder you open in a browser. Start Bootstrap's &lt;code&gt;dist/&lt;/code&gt; folder works the same way if you skip its build.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do I know if a template is still maintained?&lt;/strong&gt;&lt;br&gt;
Look at the repo's last push date, not its star count, and open &lt;code&gt;package.json&lt;/code&gt; to see which framework major versions it pins. A recent push with old dependencies is a warning too.&lt;/p&gt;

&lt;h2&gt;
  
  
  When no template fits
&lt;/h2&gt;

&lt;p&gt;Templates are about 80% of my landing page work. The other 20% is when the client has a very specific layout in mind and adapting a template means rewriting most of it. In those cases I describe the page to &lt;a href="https://begin.sh/?utm_source=devto&amp;amp;utm_medium=ugc&amp;amp;utm_campaign=selinvidal&amp;amp;utm_content=landing-page-templates-outro" rel="noopener noreferrer"&gt;Begin&lt;/a&gt;, which builds it as a Next.js, React and Tailwind project I can keep editing in code, with hosting on my own domain. Then I strip and tune it the same way as everything above. Know a maintained free template I missed? Leave it in the comments and I'll check it.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>opensource</category>
      <category>html</category>
      <category>tailwindcss</category>
    </item>
  </channel>
</rss>
