Brikl
Brikl

Minimal SaaS

Template SaaS minimaliste pour applications simples

Template Minimal SaaS

Le template Minimal SaaS est parfait pour créer des applications SaaS simples et efficaces avec seulement les fonctionnalités essentielles.

Caractéristiques

🎯 Simplicité

  • Interface épurée et intuitive
  • Fonctionnalités essentielles uniquement
  • Code facile à comprendre et modifier
  • Configuration minimale

⚡ Performance

  • Bundle size optimisé
  • Chargement ultra-rapide
  • Pas de dépendances inutiles
  • Optimisation SEO

🔧 Facilité d'utilisation

  • Setup en 5 minutes
  • Documentation claire
  • Personnalisation simple
  • Déploiement facile

Installation

# Créer un nouveau projet
npx create-brikl-app@latest my-minimal-saas --template minimal-saas

# Naviguer vers le projet
cd my-minimal-saas

# Installer les dépendances
npm install

# Démarrer le serveur de développement
npm run dev

Configuration

Variables d'environnement minimales

# Base de données
DATABASE_URL="postgresql://user:password@localhost:5432/mydb"

# Authentification
NEXTAUTH_SECRET="your-secret-key"
NEXTAUTH_URL="http://localhost:3000"

# Email (optionnel)
SENDGRID_API_KEY="your-sendgrid-api-key"

Configuration rapide

// app/config/app.ts
export const appConfig = {
  name: 'Mon Application',
  description: 'Description de votre application',
  url: 'https://monapp.com',
  supportEmail: 'support@monapp.com'
};

Structure du projet

my-minimal-saas/
├── app/
│   ├── (auth)/
│   │   ├── login/
│   │   └── register/
│   ├── dashboard/
│   ├── settings/
│   ├── api/
│   └── globals.css
├── components/
│   ├── ui/
│   └── forms/
├── lib/
│   ├── auth.ts
│   └── db.ts
└── prisma/
    └── schema.prisma

Fonctionnalités incluses

Authentification basique

  • Inscription/Connexion par email
  • Gestion des sessions
  • Protection des routes

Tableau de bord simple

  • Vue d'ensemble des données
  • Navigation claire
  • Actions principales

Paramètres utilisateur

  • Profil utilisateur
  • Préférences de base
  • Sécurité

Utilisation

Page d'accueil personnalisée

// app/page.tsx
export default function HomePage() {
  return (
    <div className="min-h-screen bg-gradient-to-br from-blue-50 to-indigo-100">
      <div className="container mx-auto px-4 py-16">
        <h1 className="text-4xl font-bold text-center mb-8">
          Bienvenue sur {appConfig.name}
        </h1>
        <p className="text-xl text-center text-gray-600 mb-12">
          {appConfig.description}
        </p>
        <div className="flex justify-center space-x-4">
          <Link href="/login" className="btn btn-primary">
            Se connecter
          </Link>
          <Link href="/register" className="btn btn-secondary">
            S'inscrire
          </Link>
        </div>
      </div>
    </div>
  );
}

Tableau de bord personnalisé

// app/dashboard/page.tsx
export default function DashboardPage() {
  return (
    <div className="container mx-auto px-4 py-8">
      <h1 className="text-2xl font-bold mb-6">Tableau de bord</h1>
      
      <div className="grid grid-cols-1 md:grid-cols-3 gap-6">
        <div className="bg-white rounded-lg shadow p-6">
          <h3 className="text-lg font-semibold mb-2">Utilisateurs</h3>
          <p className="text-3xl font-bold text-blue-600">1,234</p>
        </div>
        
        <div className="bg-white rounded-lg shadow p-6">
          <h3 className="text-lg font-semibold mb-2">Revenus</h3>
          <p className="text-3xl font-bold text-green-600">€12,345</p>
        </div>
        
        <div className="bg-white rounded-lg shadow p-6">
          <h3 className="text-lg font-semibold mb-2">Taux de conversion</h3>
          <p className="text-3xl font-bold text-purple-600">3.2%</p>
        </div>
      </div>
    </div>
  );
}

Personnalisation

Ajouter une nouvelle page

// app/features/page.tsx
export default function FeaturesPage() {
  return (
    <div className="container mx-auto px-4 py-8">
      <h1 className="text-2xl font-bold mb-6">Fonctionnalités</h1>
      
      <div className="grid grid-cols-1 md:grid-cols-2 gap-8">
        <div className="bg-white rounded-lg shadow p-6">
          <h3 className="text-xl font-semibold mb-4">Fonctionnalité 1</h3>
          <p className="text-gray-600">
            Description de la fonctionnalité...
          </p>
        </div>
        
        <div className="bg-white rounded-lg shadow p-6">
          <h3 className="text-xl font-semibold mb-4">Fonctionnalité 2</h3>
          <p className="text-gray-600">
            Description de la fonctionnalité...
          </p>
        </div>
      </div>
    </div>
  );
}

Personnaliser le style

/* app/globals.css */
@tailwind base;
@tailwind components;
@tailwind utilities;

@layer components {
  .btn {
    @apply px-4 py-2 rounded-lg font-medium transition-colors;
  }
  
  .btn-primary {
    @apply bg-blue-600 text-white hover:bg-blue-700;
  }
  
  .btn-secondary {
    @apply bg-gray-200 text-gray-800 hover:bg-gray-300;
  }
}

Déploiement

Vercel (recommandé)

# Installer Vercel CLI
npm i -g vercel

# Déployer
vercel

# Configurer les variables d'environnement
vercel env add DATABASE_URL
vercel env add NEXTAUTH_SECRET

Autres options

  • Netlify : Déploiement simple avec drag & drop
  • Railway : Déploiement avec base de données incluse
  • Heroku : Déploiement classique

Avantages du template minimal

Pour les développeurs

  • Code simple et lisible
  • Facile à modifier et étendre
  • Moins de bugs potentiels
  • Maintenance simplifiée

Pour les utilisateurs

  • Interface claire et intuitive
  • Chargement rapide
  • Pas de fonctionnalités inutiles
  • Expérience utilisateur optimisée

Cas d'usage idéaux

  • MVP : Prototypes et preuves de concept
  • Applications simples : Outils avec fonctionnalités limitées
  • Sites vitrines : Présentation de services
  • Applications internes : Outils d'entreprise

Support

  • Documentation : Guide de démarrage rapide
  • Exemples : Code d'exemple inclus
  • Communauté : Support via GitHub Discussions