Skip to content
Framework: Static HTML/CSS/JSDifficulty: beginner

Landing page (static)

A single-page HTML landing page with sticky nav, hero, features, pricing, FAQ, and an email capture form.

Everything a launch page needs in three files: a responsive sticky navigation with a mobile toggle, hero with two calls to action, feature and pricing grids, a native <details> FAQ, and an email form with client-side validation that clearly states it is not connected to a backend yet. Deploys to Codexa static hosting as-is.

  • html
  • css
  • landing
  • marketing
  • static

This preview is the template's actual file tree and source code — exactly what is copied into a new project. Codexa does not publish screenshots or mock-ups of templates; run the project to see it rendered.

Files4 files

app.js32 lines
// Mobile navigation toggle
const toggle = document.querySelector(".nav-toggle");
const links = document.getElementById("nav-links");
toggle.addEventListener("click", () => {
  const open = links.classList.toggle("open");
  toggle.setAttribute("aria-expanded", String(open));
});
links.addEventListener("click", (e) => {
  if (e.target.tagName === "A") {
    links.classList.remove("open");
    toggle.setAttribute("aria-expanded", "false");
  }
});

// Signup form: validate locally. Replace the TODO with a fetch() to your API.
const form = document.getElementById("signup-form");
const status = document.getElementById("form-status");
form.addEventListener("submit", (e) => {
  e.preventDefault();
  const email = form.elements.email.value.trim();
  if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) {
    status.textContent = "Enter a valid email address.";
    status.className = "status error";
    return;
  }
  // TODO: await fetch("/api/subscribe", { method: "POST", body: JSON.stringify({ email }) });
  status.textContent = "Thanks! (Nothing was sent — connect this form to your API.)";
  status.className = "status ok";
  form.reset();
});

document.getElementById("year").textContent = String(new Date().getFullYear());

Dependencies

This template has no dependencies and no build step; files are served as-is.

How it runs

Framework
Static HTML/CSS/JS
Dev command
codexa-static
Build command
none (static files)
Output directory
.
Port
5173
Opens at
/
Difficulty
beginner

Projects run in an isolated sandbox with a live preview. Read the projects documentation for details on settings, snapshots and deployment.

View all
  • Framework: Vite + React + TypeScriptDifficulty: beginner

    Product landing page

    A conversion-focused landing page with hero, features, pricing, and FAQ sections.

    • react
    • landing
    • marketing
    • tailwind

    9 files

Need the raw data? GET /api/v1/templates/static-landing returns this template with its files.

Build on Landing page (static)

Create a free account, start from this template, and ask the AI agent to turn it into your app.