/nuxtgain

Nuxt3 + Supabase; Production ready SaaS boilerplate

Primary LanguageVueMIT LicenseMIT

License: MIT GitHub stars GitHub forks GitHub issues

NuxtGain: Production-Ready SaaS Boilerplate for Nuxt + Supabase

A Developer's Solution to Common Nuxt Challenges

Building complex applications with Nuxt can be challenging, especially when it comes to SaaS projects. How do you handle state management, organize business logic, deal with environment variables, navigate Nuxt context in composables, and follow best practices? NuxtGain aims to simplify this process, offering a solid foundation based on real-world experience.

NuxtGain isn't just a concept. It's the core of magic-resume.ai, an AI-powered resume builder for developers that's currently generating revenue in production. I'm now opening up this tried and tested setup to the community.

Why Choose NuxtGain?

  • Production-Tested: Actively powers a profitable SaaS application.
  • Comprehensive SaaS Setup: Includes common SaaS features and integrations.
  • Accelerate Development: Reduces setup time for new Nuxt projects.
  • Supabase Integration: Built with Supabase as the primary database solution.
  • Open Source: Free for the community to use and improve.

Nuxt may have a smaller ecosystem, compared to the NextJS, but it's powerful. NuxtGain is here to streamline your development process and prove that we can build robust applications. Got ideas to make it better? Jump in and contribute.

Let's make Nuxt gain again!

Ready to start building? Dive into the details below and join our discord

Key Features

Core Technologies ๐Ÿš€

  • ๐Ÿ”ง Nuxt3 + Supabase integration
  • ๐Ÿ“˜ Fully TypeScript-based
  • ๐ŸŽจ Tailwind CSS + Nuxt UI for styling
  • ๐Ÿ”œ Nuxt4 compatible

Development and Configuration โš™๏ธ

  • ๐Ÿญ Production-ready Nuxt configurations
  • ๐Ÿงน ESLint configuration with Vue and Nuxt best practices
  • ๐Ÿง  Business logic and state management setup
  • ๐Ÿงฉ Configured and installed essential popular Nuxt modules

Authentication and User Management ๐Ÿ”

  • ๐Ÿ”‘ Supabase authentication integration
  • ๐Ÿšช Easy-to-use authentication component
  • ๐Ÿ“Š Basic database tables for user handling

Internationalization and SEO ๐ŸŒ

  • ๐Ÿ—ฃ๏ธ i18n configuration for translations
  • ๐Ÿ” SEO-ready setup

Payment and Transactions ๐Ÿ’ณ

  • ๐Ÿ’ฐ Stripe payment integration
  • ๐Ÿ“ Basic payment tables (one-time payments, subscriptions in progress)
  • ๐Ÿ“ง Transactional emails with Brevo (free up to 300 emails per day)

Content Management ๐Ÿ“š

  • ๐Ÿ“ Ready-to-use blog functionality

UI Components ๐ŸŽ›๏ธ

  • ๐Ÿงฑ Numerous components for landing pages, payment forms, and modals
  • ๐Ÿ“ฎ Feedback forms

File Handling ๐Ÿ“

  • ๐Ÿ–ผ๏ธ Image upload functionality

Deployment and DevOps ๐Ÿš€

  • โ˜ธ๏ธ Kubernetes deployment configurations
  • ๐Ÿ”„ GitHub Actions for container deployment to Kubernetes cluster
  • โ–ฒ Vercel deployment configurations
  • โšก Vercel Edge deployment configurations

Analytics and Monitoring ๐Ÿ“Š

  • ๐Ÿ“ˆ Analytics-ready setup (PostHog, GA4)

API and Server-side Features ๐Ÿ–ฅ๏ธ

  • ๐Ÿ”Œ Server endpoints for data handling and application logic
  • โฐ Cron job routes for scheduled tasks (e.g., discount emails, transactional emails)

Additional SaaS Features ๐Ÿ› ๏ธ

  • ๐Ÿ“„ Basic SaaS page templates

NuxtGain Quick Start Guide

1. Set Up Supabase

  1. Initialize Supabase locally:
npm run supabase:start

This command runs migrations, setting up basic tables, Row Level Security (RLS), indexes, triggers, and functions.

  1. Copy the environment variables:
cp .env.example .env
  1. Update the .env file with your Supabase keys:
  • NUXT_PUBLIC_SUPABASE_KEY
  • NUXT_SUPABASE_SERVICE_KEY

These keys are essential for core SaaS functionalities.

2. Configure Authentication

  1. Edit ./supabase/config.toml to set up authentication providers.

Example configuration for Google OAuth:

[auth.external.google]
enabled = true
client_id = "your_client_id"
secret = "your_secret"
redirect_uri = "http://localhost:54321/auth/v1/callback"

Note: Never commit OAuth provider secrets to git. Use environment variables for sensitive information.

  1. For more details on configuring auth providers, refer to the Supabase Local Development Guide.

3. Final Configuration

  1. Review and update all other environment variables in the .env file to enable full functionality of your app.

4. Launch Your App

Run the development server:

npm run dev

Your NuxtGain app should now be up and running with authentication and user management enabled.

For additional configuration options and advanced features, please refer to our detailed documentation.

NuxtGain Documentation

Table of Contents

We're continuously improving our documentation. If you have any questions or suggestions, please open an issue on GitHub repository, or write it in discord

Community and Support

As the creator of NuxtGain, I'm here to help and discuss ideas. Reach out to me through:

For issues or feature requests, please use GitHub Issues.

Let's build something great together!

License

This project is licensed under the MIT License - see the LICENSE file for details.

NuxtGain is a battle-tested SaaS boilerplate for Nuxt3...

Get Involved

Ready to supercharge your Nuxt3 development? Here's how you can get started with NuxtGain:

  1. ๐Ÿš€ Try It Out: Clone the repo and start building your next SaaS project.

    git clone https://github.com/CyberCowboy404/nuxtgain.git
    
  2. โญ Show Your Support: If NuxtGain helps you, consider giving it a star on GitHub.

  3. ๐Ÿ› Report Issues: Encountered a bug? Open an issue and help improve NuxtGain.

  4. ๐Ÿค Contribute: Got ideas or fixes? Submit a pull request and be part of NuxtGain's growth.

  5. ๐Ÿ’ฌ Spread the Word: Share NuxtGain with your network and help the community grow.

  6. โ˜• Buy Me a Coffee: If you find NuxtGain valuable, consider buying me a coffee to support ongoing development.

  7. ๐Ÿ“„ Use Magic Resume: Need a stellar developer resume? Check out Magic Resume, the AI-powered resume builder that NuxtGain powers!

Join us in making Nuxt3 development faster, easier, and more enjoyable!