Landing Page Guide
This guide walks you through creating a complete landing page with Pixello, from initial prompt to a polished, production-ready page.
Overview
We'll create a landing page with:
- Hero section: Eye-catching header with headline and CTA
- Features section: Three feature cards highlighting key benefits
- Call-to-action: Final CTA to drive conversions
- Footer: Simple footer with links
Step 1: Start Your Project
Make sure you have a Next.js or React project set up:
npx create-next-app@latest landing-page
cd landing-page
Step 2: Create the Design
Open Pixello in your editor and use this prompt:
"Create a modern landing page with a hero section featuring a headline and subheadline, a features section with three cards, a call-to-action section, and a simple footer. Use a clean, professional design with good spacing and typography."
Pixello will:
- Generate a design JSON file
- Create React components
- Open the canvas for visual editing
Step 3: Review Generated Files
After generation, you'll see:
your-project/
├── designs/
│ └── landing-page.json
├── app/ (or components/)
│ ├── Hero.tsx
│ ├── Features.tsx
│ ├── CTA.tsx
│ └── Footer.tsx
└── ...
Step 4: Customize in Canvas
Open the canvas and customize:
Hero Section
- Headline: Change to your value proposition
- Subheadline: Add supporting text
- CTA Button: Update text and link
- Background: Adjust colors or add gradient
Features Section
- Feature Cards: Edit titles and descriptions
- Icons: Add or modify icons
- Layout: Adjust spacing and alignment
CTA Section
- Message: Update the call-to-action text
- Button: Customize button style and text
Footer
- Links: Add navigation links
- Copyright: Update copyright text
Step 5: Refine in Code
Switch to your code editor and enhance:
Add Interactivity
// Hero.tsx
'use client';
import { useState } from 'react';
export default function Hero() {
const [email, setEmail] = useState('');
return (
<section>
{/* ... existing code ... */}
<input
type="email"
value={email}
onChange={(e) => setEmail(e.target.value)}
placeholder="Enter your email"
/>
</section>
);
}
Add Animations
// Features.tsx
'use client';
import { motion } from 'framer-motion';
export default function Features() {
return (
<section>
{features.map((feature, index) => (
<motion.div
key={index}
initial={{ opacity: 0, y: 20 }}
whileInView={{ opacity: 1, y: 0 }}
transition={{ delay: index * 0.1 }}
>
{/* feature content */}
</motion.div>
))}
</section>
);
}
Integrate APIs
// CTA.tsx
'use client';
import { useState } from 'react';
export default function CTA() {
const [loading, setLoading] = useState(false);
const handleSubmit = async () => {
setLoading(true);
// Call your API
await fetch('/api/signup', { method: 'POST' });
setLoading(false);
};
return (
<section>
<button onClick={handleSubmit} disabled={loading}>
{loading ? 'Signing up...' : 'Get Started'}
</button>
</section>
);
}
Step 6: Make It Responsive
Pixello generates responsive code, but you can enhance it:
Mobile Optimization
// Hero.tsx
export default function Hero() {
return (
<section className="px-4 md:px-8 lg:px-16">
<h1 className="text-3xl md:text-5xl lg:text-6xl">
Your Headline
</h1>
{/* ... */}
</section>
);
}
Test on Devices
- Use browser dev tools to test different screen sizes
- Check on actual mobile devices
- Ensure touch interactions work well
Step 7: Add SEO
Enhance your page for search engines:
// app/page.tsx (Next.js)
import type { Metadata } from 'next';
export const metadata: Metadata = {
title: 'Your Landing Page Title',
description: 'Your landing page description',
openGraph: {
title: 'Your Landing Page Title',
description: 'Your landing page description',
images: ['/og-image.jpg'],
},
};
export default function Page() {
return (
<>
<Hero />
<Features />
<CTA />
<Footer />
</>
);
}
Step 8: Optimize Performance
Image Optimization
import Image from 'next/image';
export default function Hero() {
return (
<Image
src="/hero-image.jpg"
alt="Hero"
width={1200}
height={600}
priority
/>
);
}
Code Splitting
import dynamic from 'next/dynamic';
const Features = dynamic(() => import('./Features'), {
loading: () => <p>Loading...</p>,
});
Step 9: Deploy
Your landing page is ready to deploy:
npm run build
npm run start
Deploy to Vercel, Netlify, or your preferred hosting platform.
Tips & Best Practices
Keep It Simple
- Focus on one main message
- Use clear, concise copy
- Don't overwhelm with too many sections
Test Everything
- Test all links and buttons
- Verify forms work correctly
- Check on multiple browsers
Iterate
- Use analytics to see what works
- A/B test different headlines
- Continuously improve based on data
Common Patterns
Social Proof
Add testimonials or logos:
<section className="testimonials">
<h2>Trusted by developers</h2>
<div className="logos">
{/* Company logos */}
</div>
</section>
Pricing
Include a pricing section:
<section className="pricing">
<div className="plans">
{/* Pricing cards */}
</div>
</section>
FAQ
Add frequently asked questions:
<section className="faq">
<h2>Frequently Asked Questions</h2>
<div className="questions">
{/* FAQ items */}
</div>
</section>
What's Next?
Now that you've built a landing page:
- Learn about Multi-Page Apps for more complex projects
- Explore Core Concepts to understand Pixello better
- Check the FAQ for common questions