Customization
How to customize pricing, AI settings, and more.
Modify Pricing Plans
Edit constants/billing.ts:
starter_monthly: {
priceCents: 2900, // Change price
creditsPerCycle: 1000, // Change credit amount
creemPriceId: "prod_xxx" // Match your Creem product ID
}Modify Credit Costs
Edit the cost constants:
| Feature | File | Variable |
|---|---|---|
| Chat | lib/credits.ts | CHAT_CREDIT_COST |
| Image | app/api/image/generate/route.ts | Inline constant |
| Video | app/api/video/generate/route.ts | Inline constant |
Replace AI Provider
There are two AI surfaces — choose which one you want to swap.
Swap the cursor-generator provider (GRS AI → something else)
This is the provider that powers the actual cursor-generator pipeline.
- Install the new SDK:
pnpm add <sdk> - Replace
lib/ai-providers/grsai.tswith a new module exporting the samegenerateImage(prompt, imageUrl): Promise<string>signature - Update
lib/env.tsand.env.examplewith the new env vars - Update any model name references in
lib/cursor-generator/generator.ts
Swap the demo route provider (Volcano Engine → OpenAI)
The demo routes under /demo/* use Volcano Engine. To swap them:
- Install the OpenAI SDK:
pnpm add openai - Replace files in
lib/volcano-engine/with OpenAI equivalents - Update environment variables
- Keep the same credit deduction pattern in API routes
Add a New Language
- Copy
messages/en.jsontomessages/XX.json(new locale) - Translate all strings
- Add locale to
i18n.config.ts:
export const locales = ['en', 'zh', 'XX'] as const;- Update
proxy.tsandlib/i18n.ts
Customize Theme
Colors are defined in app/globals.css using CSS custom properties:
:root {
--background: 0 0% 100%;
--foreground: 0 0% 3.9%;
--primary: 0 0% 9%;
/* ... */
}Dark mode variables are in the .dark class.
Add New Protected Pages
- Create a new page in
app/[locale]/(protected)/your-page/page.tsx - It's automatically protected by the layout's session check
- Add navigation in
features/navigation/config.ts