Skip to content
Framework: Vite + React + TypeScriptDifficulty: intermediateFeatured

SaaS starter

Marketing pages, sign-in and sign-up screens, and an authenticated app area with a mocked session you replace with real auth.

A multi-page single-page app built on a tiny hash router (no extra dependency): landing, pricing, sign in, sign up, an app dashboard and a settings page. Authentication is deliberately mocked in src/auth.tsx and labelled as such in the UI; the session lives in localStorage so you can click through every flow before wiring up a real provider.

  • react
  • saas
  • auth
  • multi-page
  • tailwind
  • typescript

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.

Files18 files

src/router.tsx29 lines
import { useEffect, useState, type ReactNode } from "react";

/** Minimal hash router: "#/path" -> "/path". Replace with react-router if you need nested routes. */
export function useHashRoute(defaultPath = "/") {
  const read = () => {
    const h = window.location.hash.replace(/^#/, "");
    return h.startsWith("/") ? h : defaultPath;
  };
  const [path, setPath] = useState<string>(() => (typeof window === "undefined" ? defaultPath : read()));
  useEffect(() => {
    const onChange = () => setPath(read());
    window.addEventListener("hashchange", onChange);
    return () => window.removeEventListener("hashchange", onChange);
    // eslint-disable-next-line react-hooks/exhaustive-deps
  }, []);
  return path;
}

export function navigate(path: string) {
  window.location.hash = path.startsWith("/") ? path : "/" + path;
}

export function Link({ to, className, children }: { to: string; className?: string; children: ReactNode }) {
  return (
    <a href={"#" + to} className={className}>
      {children}
    </a>
  );
}

Dependencies

Documented from the template's package.json. The runtime has a prebuilt dependency set for Vite + React + TypeScript, so installs are fast.

PackageVersion
react^19.1.0
react-dom^19.1.0
vite^6.3.0
@vitejs/plugin-react^4.4.0
tailwindcss^4.1.0
@tailwindcss/vite^4.1.0
typescript^5.8.0

How it runs

Framework
Vite + React + TypeScript
Dev command
npm run dev
Build command
npm run build
Output directory
dist
Port
5173
Opens at
/
Difficulty
intermediate

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

Need the raw data? GET /api/v1/templates/vite-react-saas returns this template with its files.

Build on SaaS starter

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