SaaS dengan Claude Code
Pelajari tentang saas menggunakan Claude Code. Dilengkapi tips praktis dan contoh kode.
SaaSボイラープレート dengan Claude Code: 作る
SaaSaplikasi 新しく始めるたび 、認証・課金・dashboard・メールpengiriman dan いった共通機能 ゼロ dari implementasi 非効率.Claude Code 使えば、再pemanfaatandimungkinkanなSaaSボイラープレート pembangunanし、proyekご dan カスタマイズ だけ 済み.
構成 ボイラープレート
> Next.js App Router dengan SaaSボイラープレート buatkan.
> 認証(NextAuth.js)、Stripe課金、dashboard、
> チームmanajemen、メールpengiriman(Resend) 含めて。
> Prisma + PostgreSQL dengan database manajemenして。
proyekstruktur
src/
├── app/
│ ├── (auth)/ # login・sign up
│ ├── (dashboard)/ # 認証済みpengguna画面
│ ├── (marketing)/ # LP・料金halaman
│ └── api/
│ ├── auth/ # NextAuth.js
│ ├── billing/ # Stripe Webhook
│ └── teams/ # チームmanajemenAPI
├── components/
│ ├── ui/ # 汎用UIkomponen
│ └── features/ # 機能固有komponen
├── lib/
│ ├── auth.ts # 認証pengaturan
│ ├── prisma.ts # DBkoneksi
│ ├── stripe.ts # Stripepengaturan
│ └── email.ts # メールpengiriman
└── types/
pengaturan 認証
// src/lib/auth.ts
import NextAuth from 'next-auth';
import Google from 'next-auth/providers/google';
import GitHub from 'next-auth/providers/github';
import Credentials from 'next-auth/providers/credentials';
import { PrismaAdapter } from '@auth/prisma-adapter';
import { prisma } from './prisma';
export const { handlers, auth, signIn, signOut } = NextAuth({
adapter: PrismaAdapter(prisma),
providers: [
Google({
clientId: process.env.GOOGLE_CLIENT_ID!,
clientSecret: process.env.GOOGLE_CLIENT_SECRET!,
}),
GitHub({
clientId: process.env.GITHUB_CLIENT_ID!,
clientSecret: process.env.GITHUB_CLIENT_SECRET!,
}),
],
callbacks: {
async session({ session, user }) {
session.user.id = user.id;
// チーム情報 session 含める
const membership = await prisma.teamMember.findFirst({
where: { userId: user.id },
include: { team: true },
});
if (membership) {
session.user.teamId = membership.team.id;
session.user.role = membership.role;
}
return session;
},
},
pages: {
signIn: '/login',
error: '/login?error=true',
},
});
チームmanajemenAPI
// src/app/api/teams/route.ts
import { NextRequest, NextResponse } from 'next/server';
import { auth } from '@/lib/auth';
import { prisma } from '@/lib/prisma';
export async function POST(request: NextRequest) {
const session = await auth();
if (!session?.user) {
return NextResponse.json({ error: '認証 diperlukan す' }, { status: 401 });
}
const { name } = await request.json();
const team = await prisma.team.create({
data: {
name,
members: {
create: {
userId: session.user.id,
role: 'owner',
},
},
},
});
return NextResponse.json(team, { status: 201 });
}
// チームメンバー招待
export async function PATCH(request: NextRequest) {
const session = await auth();
if (!session?.user) {
return NextResponse.json({ error: '認証 diperlukan す' }, { status: 401 });
}
const { email, teamId, role } = await request.json();
// 招待メール pengiriman
await sendInviteEmail(email, teamId);
const invite = await prisma.teamInvite.create({
data: { email, teamId, role, invitedBy: session.user.id },
});
return NextResponse.json(invite);
}
environment variabletemplate
# .env.example
DATABASE_URL="postgresql://..."
NEXTAUTH_SECRET="your-secret"
NEXTAUTH_URL="http://localhost:3000"
GOOGLE_CLIENT_ID=""
GOOGLE_CLIENT_SECRET=""
GITHUB_CLIENT_ID=""
GITHUB_CLIENT_SECRET=""
STRIPE_SECRET_KEY=""
STRIPE_WEBHOOK_SECRET=""
RESEND_API_KEY=""
Claude Code .env.example juga 同時 generateさせるこ dan 、チームメンバー 環境pembangunan 迷うこ dan 防げ.
Artikel Terkait
認証 implementasipola 認証機能 implementasi、Stripeintegrasi Stripe決済 integrasi dijelaskan secara detail.Prisma pemanfaatanmetode mengenai Prisma ORMpemanfaatanpanduan juga ご覧.
Next.js 公式dokumen(nextjs.org/docs) juga bisa dijadikan referensi.
PDF Gratis: Cheatsheet Claude Code dalam 5 Menit
Cukup masukkan emailmu dan kami akan langsung mengirim cheatsheet PDF A4 satu halaman.
Kami menjaga data pribadimu dengan aman dan tidak pernah mengirim spam.
Tentang Penulis
Masa
Engineer yang aktif menggunakan Claude Code. Mengelola claudecode-lab.com, media teknologi 10 bahasa dengan lebih dari 2.000 halaman.
Artikel Terkait
7 pemeriksaan sebelum menerbitkan artikel Claude Code multibahasa setiap hari
Checklist praktis agar artikel Claude Code multibahasa yang diterbitkan setiap hari tidak kehilangan locale, tidak merusak CTA, dan tidak meninggalkan halaman lama di production.
Apa itu Codex Automations? Membiarkan AI mengurus konten saat kamu tidur
Panduan praktis memakai Codex Automations untuk analytics, artikel, CTA, deploy, dan monetisasi.
Claude Code × GCP Cloud Functions Panduan Lengkap | Pengembangan Serverless Super Cepat
Optimalkan GCP Cloud Functions dengan Claude Code. Implementasikan trigger HTTP/Pub/Sub/Firestore, pengujian lokal, dan otomatisasi deployment dengan contoh kode nyata dari pengalaman Masa.