Contoh dokumentasi produk untuk template SaaS berbasis Next.js + TypeScript + Supabase
Next.js SaaS Starter Kit adalah template siap pakai untuk membangun aplikasi SaaS modern dengan teknologi terkini. Hemat waktu development hingga 100+ jam dengan foundation yang solid dan best practices.
Produk ini cocok untuk:
β±οΈ Waktu Proses: Link download dikirim dalam 5-10 menit setelah pembayaran
Karena ukuran produk cukup besar (~1.5GB), kami sarankan metode ini:
Solusi:
Solusi:
nextjs-saas-starter.zipC:\Projects atau ~/Projects# Buka terminal/command prompt
cd ~/Projects/nextjs-saas-starter
# Buka di VS Code
code .
Struktur folder akan terlihat seperti ini:
nextjs-saas-starter/
βββ README.md # Dokumentasi utama
βββ SETUP.md # Setup guide singkat
βββ CHANGELOG.md # Update history
βββ .env.example # Template environment variables
βββ .gitignore
βββ package.json
βββ tsconfig.json
βββ next.config.js
βββ tailwind.config.ts
βββ src/
β βββ app/ # Next.js App Router
β βββ components/ # React components
β βββ lib/ # Utilities & helpers
β βββ styles/ # Global styles
βββ public/ # Static assets
βββ supabase/
β βββ migrations/ # Database migrations
β βββ seed.sql # Sample data
βββ docs/ # Extended documentation
Pilih salah satu package manager (kami recommend pnpm karena lebih cepat):
# Install pnpm jika belum punya
npm install -g pnpm
# Install dependencies
pnpm install
npm install
yarn install
β±οΈ Waktu install: 3-5 menit tergantung koneksi internet
.env.example menjadi .env.local:# macOS/Linux
cp .env.example .env.local
# Windows (Command Prompt)
copy .env.example .env.local
.env.local:# macOS
open .env.local
# Windows
notepad .env.local
# VS Code
code .env.local
# =================
# APP CONFIGURATION
# =================
NEXT_PUBLIC_APP_URL=http://localhost:3000
NEXT_PUBLIC_APP_NAME="My SaaS App"
# =================
# SUPABASE
# =================
NEXT_PUBLIC_SUPABASE_URL=your-project-url.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
# =================
# STRIPE (Optional - untuk payment)
# =================
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_xxxxx
STRIPE_SECRET_KEY=sk_test_xxxxx
STRIPE_WEBHOOK_SECRET=whsec_xxxxx
# =================
# EMAIL (Optional - untuk email notifications)
# =================
RESEND_API_KEY=re_xxxxx
EMAIL_FROM=noreply@yourdomain.com
# =================
# OAUTH (Optional - untuk social login)
# =================
GOOGLE_CLIENT_ID=xxxxx.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=xxxxx
GITHUB_CLIENT_ID=xxxxx
GITHUB_CLIENT_SECRET=xxxxx
.env.local:
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEYKita akan create tables yang dibutuhkan:
Option 1: Via Supabase Dashboard (Mudah)
supabase/migrations/001_initial_schema.sqlOption 2: Via Supabase CLI (Recommended untuk development)
# Install Supabase CLI
npm install -g supabase
# Login
supabase login
# Link ke project Anda
supabase link --project-ref your-project-ref
# Run all migrations
supabase db push
Jika ingin data contoh untuk testing:
# Via CLI
supabase db reset --db-url your-connection-string
# ATAU via SQL Editor
# Copy-paste isi file supabase/seed.sql
.env.local:NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEYSTRIPE_SECRET_KEYhttps://yourdomain.com/api/webhooks/stripecheckout.session.completed, customer.subscription.updated, customer.subscription.deletedSTRIPE_WEBHOOK_SECRETsrc/config/pricing.tsSekarang kita siap menjalankan aplikasi!
# Menggunakan npm
npm run dev
# Menggunakan pnpm
pnpm dev
# Menggunakan yarn
yarn dev
Tunggu hingga muncul pesan:
β Ready in 2.5s
β Local: http://localhost:3000
β Network: http://192.168.1.100:3000
/ - Landing page/pricing - Pricing plans/features - Feature showcase/docs - Documentation/auth/login - Login page/auth/signup - Signup page/dashboard - User dashboard (require auth)/admin - Admin panel (require admin role)# Replace file-file ini dengan logo Anda:
public/logo.svg # Logo utama
public/logo-dark.svg # Logo untuk dark mode
public/favicon.ico # Favicon
public/og-image.png # Open Graph image untuk social share
Edit file tailwind.config.ts:
export default {
theme: {
extend: {
colors: {
// Ganti dengan brand colors Anda
primary: {
DEFAULT: '#10b981', // Green
foreground: '#ffffff',
},
secondary: {
DEFAULT: '#84cc16', // Lime
foreground: '#000000',
},
},
},
},
}
Edit file src/app/layout.tsx:
export const metadata: Metadata = {
title: 'Your SaaS Name',
description: 'Your SaaS Description',
keywords: ['saas', 'your', 'keywords'],
authors: [{ name: 'Your Name' }],
creator: 'Your Name',
openGraph: {
title: 'Your SaaS Name',
description: 'Your SaaS Description',
url: 'https://yourdomain.com',
siteName: 'Your SaaS Name',
images: ['/og-image.png'],
},
}
Edit file src/app/page.tsx:
// Update hero section
<HeroSection
title="Your Catchy Headline"
subtitle="Your compelling subtitle that explains the value"
ctaText="Get Started Free"
ctaLink="/auth/signup"
/>
// Update features
const features = [
{
title: 'Your Feature 1',
description: 'Description of feature 1',
icon: <Zap />,
},
// ... more features
]
Kami support 2 email providers:
.env.local:
RESEND_API_KEY=re_xxxxx
EMAIL_FROM=noreply@yourdomain.com
src/lib/email.tshttp://localhost:3000/api/auth/callback/googlehttps://yourdomain.com/api/auth/callback/google.env.localhttp://localhost:3000http://localhost:3000/api/auth/callback/github.env.localEdit src/app/layout.tsx:
import { GoogleAnalytics } from '@next/third-parties/google'
export default function RootLayout() {
return (
<html>
<body>
{children}
<GoogleAnalytics gaId="G-XXXXXXXXXX" />
</body>
</html>
)
}
NEXT_PUBLIC_UMAMI_WEBSITE_ID=xxxxx
NEXT_PUBLIC_UMAMI_URL=https://analytics.yourdomain.com
git init
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/yourusername/your-saas.git
git push -u origin main
.env.localNEXT_PUBLIC_APP_URL dengan domain production# Install Netlify CLI
npm install -g netlify-cli
# Login
netlify login
# Deploy
netlify deploy --prod
File Dockerfile sudah included:
# Build image
docker build -t my-saas .
# Run container
docker run -p 3000:3000 --env-file .env.local my-saas
.env production valuesGejala:
Error: Cannot find module 'xxx'
Solusi:
# Clear cache dan reinstall
rm -rf node_modules .next
npm cache clean --force
npm install
# Restart dev server
npm run dev
Gejala:
Solusi:
.env.localGejala:
Solusi:
# Install Stripe CLI
brew install stripe/stripe-cli/stripe # macOS
# atau download dari stripe.com/docs/stripe-cli
# Login
stripe login
# Forward webhooks ke local
stripe listen --forward-to localhost:3000/api/webhooks/stripe
# Copy webhook signing secret ke .env.local
Gejala:
Error: Page not found
Solusi:
.env variables di productionnpm run build
npm run start
Gejala:
Solusi:
A: Ya, minimal Anda harus familiar dengan:
Level: Intermediate
A: YA! Lisensi sudah termasuk commercial use:
A: YA! Semua updates gratis selamanya:
Cara update:
A: Biaya infrastruktur (estimate per bulan):
Total untuk startup: $0 - $55/bulan
A: Ya! Built-in SEO features:
A: 100% responsive! Tested di:
A:
A: Built-in security features:
A: Ya! Dokumentasi lengkap tersedia:
/docs/api - API referenceA: Template ini untuk web app, tapi bisa:
A: Tidak ada limit dari template. Tergantung hosting:
Terima kasih telah memilih Next.js SaaS Starter Kit!
π Bantu kami dengan:
We'd love to see what you build! Tag kami @yourhandle saat launch aplikasi Anda! π
Support Hours:
Contact:
Response Time:
Made with β€οΈ by Your Name/Company
Β© 2024 All rights reserved.
Panduan Setup Laravel - Dari Template hingga Ready Production
Tutorial lengkap setup Laravel dari download template, instalasi dependencies, database, hingga deployment ke server
Panduan Setup Next.js - Dari Template hingga Production Ready
Tutorial lengkap setup Next.js dari pemilihan template, instalasi, konfigurasi, hingga siap deploy ke production