SecureStartKit
SecurityFeaturesPricingDocsBlogChangelog
Sign inBuy Now
Getting Started
Installation
Configuration
Deployment

Components

  • Hero
  • Pricing
  • Features

Features

  • Authentication
  • Payments
  • Emails
  • Database
  • Blog
  • Security Headers
  • Claude Code Skills

Recipes

  • Add a Server Action
  • Add a Database Table
  • Add an OAuth Provider
  • Add an Email Template
  • Customize the Auth Flow
  • Add an Admin Metric
  • Enable Bot Protection

Hero

The Hero section. Animated headline, dual CTAs, brand-frame headline as the first impression.

What it is

The Hero is the first section visitors see at /. It includes an animated headline (Framer Motion), a one-sentence description, and two CTAs (a primary "Get Started" and a secondary "See Features" / "See Pricing"). The headline is the single highest-impact piece of copy on the site; treat it as your one-sentence brand frame.

Usage

The Hero is already imported into the landing page at app/(marketing)/page.tsx:

import { Hero } from '@/components/landing/Hero'

export default function LandingPage() {
  return <Hero />
}

Customization

Edit components/landing/Hero.tsx directly. The headline + description + CTAs are inline in the component, not config-driven, because they are too brand-specific to template.

<h1>
  The most secure{' '}
  <span className="text-primary">Next.js SaaS template</span>
</h1>
<p>
  Backend-only data access, Zod on every input, RLS by default. Built for
  developers who refuse to ship vulnerable code.
</p>

CTAs

<Link href="/#pricing">See pricing</Link>
<Link href="#features">See what's inside</Link>

Keep both CTAs above the fold. The primary CTA should route to the highest-intent next step (/#pricing, /signup, or your booking page). The secondary CTA should de-risk by sending hesitant visitors to a feature explainer rather than abandoning.

Animation

The entrance animation uses Framer Motion. Tune timing in the motion.div props:

<motion.div
  initial={{ opacity: 0, y: 20 }}
  animate={{ opacity: 1, y: 0 }}
  transition={{ duration: 0.5 }}
>

Set duration: 0 (or remove the motion wrapper) to ship a static hero. Some accessibility audits flag entrance animations as motion-sensitive; respect prefers-reduced-motion with useReducedMotion() if you keep the animation.

Frame-fit check

Before shipping a new headline, ask: would this same headline work on ShipFast, MakerKit, or any generic boilerplate landing page? If yes, it is too generic. The headline should name the architectural commitment (security, backend-only, RLS) that no other template leads with. A specific headline that loses the wrong buyers is better than a generic headline that converts no buyer at all.

SecureStartKit

The security-first Next.js SaaS template. Auth, payments, and everything you need to launch - with backend-only data access, Zod validation on every input, and built-in optimization for AI coding agents.

Summarize with AI

Product

  • Security
  • Features
  • Pricing
  • FAQ
  • Docs
  • About

Use Cases

  • For Indie Hackers
  • For Solo Developers
  • Fintech SaaS
  • Internal Tools
  • Healthtech SaaS

Free Tools

  • All Tools
  • RLS Policy Generator
  • Security Checklist
  • Security Headers
  • JWT Decoder
  • JWT Generator
  • CORS Config Generator
  • JSON to Zod Converter
  • API Key Generator
  • Stripe Webhook Verifier
  • Stripe Fee Calculator
  • SaaS Pricing Calculator
  • Tech Stack Costs
  • OG Image Preview

Compare

  • All comparisons
  • vs ShipFast
  • vs Makerkit
  • vs Supastarter
  • vs Divjoy
  • vs Nextbase
  • One-time vs subscription

Resources

  • Blog
  • Glossary
  • Security Patterns
  • Changelog
  • Contact
  • Privacy
  • Terms

More from the same maker

  • AppScreenshotStudio
  • QueryScope
  • FrictionScope
  • MCP Hunter
  • BookIllustrationAI
  • MyCVCraft
  • StyleMyFade

© 2026 SecureStartKit. All rights reserved.

Built with SecureStartKit