Back to Help

Customizing Generated Code

Learn how to modify and extend the code generated by Spec2Stack to meet your specific needs

Understanding the Code Structure

Spec2Stack generates clean, modern Next.js applications with a well-organized structure. Understanding this structure is key to making effective customizations.

📁 app/ - Next.js app router pages
📁 components/ - Reusable React components
📁 lib/ - Utility functions and configurations
📁 public/ - Static assets (images, icons)
📁 styles/ - Global CSS and Tailwind config
📄 package.json - Dependencies and scripts
Styling and Design Customization

Tailwind CSS Classes

Most styling is done with Tailwind CSS utility classes. You can easily modify colors, spacing, and layout by changing these classes.

<button className="bg-blue-500 hover:bg-blue-600 text-white px-4 py-2 rounded">

Global Styles

Modify app/globals.css for site-wide styling changes, custom CSS variables, and theme configurations.

Component Styling

Individual components can be styled by modifying their className props or adding CSS modules for component-specific styles.

Adding New Features

Creating New Components

Add new React components in the components/ directory. Follow the existing naming conventions and structure.

components/ui/my-custom-component.tsx

Adding New Pages

Create new pages by adding files to the app/ directory. Next.js automatically creates routes based on the file structure.

app/my-new-page/page.tsx

API Routes

Add backend functionality by creating API routes in app/api/. These handle server-side logic and database operations.

Database and Data Management

Local State Management

Generated apps use React hooks (useState, useEffect) for local state. You can extend this with additional state management libraries if needed.

Adding External Databases

Integrate databases like PostgreSQL, MongoDB, or Firebase by adding the appropriate libraries and connection logic.

npm install @supabase/supabase-js

API Integration

Connect to external APIs by adding fetch calls in your components or creating custom API routes as proxies.

Configuration and Environment

Environment Variables

Add environment variables in .env.local for API keys, database URLs, and other configuration values.

NEXT_PUBLIC_API_URL=https://api.example.com

Package Dependencies

Install additional packages using npm or yarn. Update package.json to include new dependencies.

npm install axios date-fns

Build Configuration

Modify next.config.js for advanced build settings, redirects, and deployment configurations.

Best Practices for Customization

Keep It Organized

Follow the existing file structure and naming conventions. Create logical groupings for related components and utilities.

Test Your Changes

Always test modifications locally before deploying. Use the development server to catch errors early.

Version Control

Use Git to track your changes. This allows you to revert modifications and collaborate with others safely.

Document Your Changes

Add comments to your code and maintain a README file explaining your customizations and setup instructions.

Common Customization Examples
  • • Changing color schemes and branding
  • • Adding authentication with Auth0 or Firebase
  • • Integrating payment processing with Stripe
  • • Adding real-time features with Socket.io
  • • Implementing advanced forms with validation
  • • Adding analytics and tracking
  • • Creating custom admin dashboards
  • • Integrating with CMS platforms