Frontend Development

Landing Page

Pre-built landing page sections and SEO configuration.

Nuda Kit includes a complete, high-converting landing page with all the sections you need to launch your SaaS product. Every section is designed to be customizable and follows modern design best practices.

Page Structure

The landing page (frontend/app/pages/index.vue) is composed of modular sections:

┌─────────────────────────────────────┐
│              Navbar                 │
├─────────────────────────────────────┤
│               Hero                  │
├─────────────────────────────────────┤
│             Trusted                 │
├─────────────────────────────────────┤
│            Features                 │
├─────────────────────────────────────┤
│          Testimonials               │
├─────────────────────────────────────┤
│             Pricing                 │
├─────────────────────────────────────┤
│              Video                  │
├─────────────────────────────────────┤
│               FAQ                   │
├─────────────────────────────────────┤
│               CTA                   │
├─────────────────────────────────────┤
│              Footer                 │
└─────────────────────────────────────┘

Landing Components

All landing components are located in frontend/app/components/landing/:

Sticky navigation bar with scroll-aware styling.

Features:

  • Logo and brand name
  • Navigation menu with dropdown support
  • Mobile hamburger menu with slide-out sheet
  • Login/Signup buttons (or Dashboard link if logged in)
  • Background blur and border on scroll

Hero

The main hero section that captures attention.

Features:

  • Bold headline with gradient text accent
  • Subtitle with value proposition
  • Two CTA buttons (primary action + secondary)
  • Product screenshot with gradient fade effect
  • Fully responsive typography

Trusted

Social proof section showing company logos.

Features:

  • "Trusted by" heading
  • Grid of partner/customer logos
  • Works great with 4-6 logos

Features

Showcase your product's key capabilities.

Features:

  • Section heading with gradient accent
  • Responsive grid of feature cards
  • Each card has: title, description, and image
  • Mixed card sizes for visual hierarchy

Testimonials

Customer reviews to build trust.

Features:

  • 3-column grid layout
  • Avatar, name, and job title
  • Review text
  • Easy to add/modify testimonials

Pricing

Dynamic pricing table connected to your backend.

Features:

  • Fetches plans from your API automatically
  • Free tier + paid subscription plans
  • Feature list with checkmarks
  • Loading skeletons while fetching
  • Smart CTA buttons (signup or billing based on auth state)

Video

Embedded video section for demos or explainers.

Features:

  • Responsive video embed
  • Works with YouTube, Vimeo, or self-hosted

FAQ

Frequently asked questions with expandable answers.

Features:

  • Accordion-style interaction
  • Collapsible question/answer pairs
  • Easy to customize content

CTA

Final call-to-action to drive conversions.

Features:

  • Bold headline with gradient text
  • Product image preview
  • Primary CTA button
  • Two-column layout on desktop

Site footer with links and newsletter signup.

Features:

  • Newsletter subscription form
  • Multi-column link sections
  • Contact information
  • Legal links (Privacy, Terms, Cookies)
  • Copyright with dynamic year

SEO Configuration

Nuda Kit uses @nuxtjs/seo for comprehensive SEO support. This module bundles multiple SEO tools into one easy-to-use package.

What's Included

The @nuxtjs/seo module provides:

FeatureDescription
Site ConfigGlobal site name, URL, and description
Meta TagsAutomatic Open Graph and Twitter cards
SitemapAuto-generated XML sitemap
RobotsConfigurable robots.txt
Schema.orgStructured data support
Link CheckerCatch broken links during build

Setting Page Metadata

Use the useHead composable to set page-specific metadata:

<script setup lang="ts">
useHead({
  title: 'The ultimate solution for your business',
  meta: [
    { 
      name: 'description', 
      content: 'Nuda Kit is the ultimate solution for your business.' 
    },
  ],
})
</script>

Title Template

The app uses a title template defined in app.vue:

<script setup lang="ts">
useHead({
  titleTemplate: 'Nuda Kit - %s',
})
</script>

This means page titles will appear as: "Nuda Kit - Your Page Title"

SEO Best Practices

Unique Titles

Every page should have a unique, descriptive title under 60 characters.

Meta Descriptions

Write compelling descriptions between 150-160 characters for each page.

Semantic HTML

Use proper heading hierarchy (h1, h2, h3) and semantic elements.

Image Alt Text

Always include descriptive alt text for images.

Configuring Site-Wide SEO

You can configure global SEO settings in nuxt.config.ts:

export default defineNuxtConfig({
  site: {
    url: 'https://yourdomain.com',
    name: 'Your SaaS Name',
    description: 'Your default site description',
    defaultLocale: 'en',
  },
})

Open Graph & Social Sharing

Set Open Graph tags for better social media sharing:

<script setup lang="ts">
useSeoMeta({
  title: 'Page Title',
  description: 'Page description',
  ogTitle: 'Page Title',
  ogDescription: 'Page description',
  ogImage: '/og-image.png',
  twitterCard: 'summary_large_image',
})
</script>

Customizing the Landing Page

Reorder Sections

Edit pages/index.vue to reorder, add, or remove sections:

<template>
  <Navbar />
  <Hero />
  <Features />      <!-- Moved up -->
  <Trusted />       <!-- Moved down -->
  <Pricing />
  <Testimonials />
  <FAQ />
  <CTA />
  <Footer />
</template>

Modify Content

Each component contains its own data. Edit the arrays inside each component:

  • Features — Edit the features array in Features.vue
  • Testimonials — Edit the testimonials array in Testimonials.vue
  • FAQ — Edit the faq array in Faq.vue
  • Navbar — Edit the menu array in Navbar.vue

Update Branding

  • Logo — Replace assets/img/brand-logos/nuda-kit.svg
  • Colors — Modify gradient classes (purple/pink → your brand colors)
  • Images — Replace images in public/img/landing/

Add New Sections

Create new sections following the existing pattern:

  1. Create component in components/landing/
  2. Use consistent padding: py-15 lg:py-25
  3. Use max-width container: max-w-7xl mx-auto px-4 lg:px-8
  4. Import and add to pages/index.vue

Resources