2026-01-13 14:39:33 +09:00
# CLAUDE.md
feat: Enhance Public VPN Plans view with marketing content and new components
- Added detailed service highlights, how it works steps, and FAQs to the Public VPN Plans view.
- Introduced new components: CtaButton, FeaturedServiceCard, ProcessStep, ServiceCard, ServiceShowcaseCard, TrustBadge, TrustIndicators, HowItWorks, ServiceCTA, and ServiceFAQ for improved layout and functionality.
- Implemented a new design for the landing page with enhanced visuals and user engagement elements.
- Updated the VPN plans section to include a more informative and visually appealing layout.
2026-01-13 18:19:58 +09:00
## Agent Behavior
2026-01-13 14:39:33 +09:00
2026-02-24 11:09:35 +09:00
**Always use `pnpm` ** — never `npm` , `yarn` , or `npx` . Use `pnpm exec` for local binaries, `pnpm dlx` for one-off execution.
2026-01-13 14:39:33 +09:00
2026-02-24 11:09:35 +09:00
**Never run long-running processes** (dev servers, watchers, Docker) without explicit permission.
2026-01-13 14:39:33 +09:00
2026-02-24 11:09:35 +09:00
**Read relevant docs before implementing** — never guess endpoint behavior or payload shapes.
2026-01-13 14:39:33 +09:00
2026-02-24 11:09:35 +09:00
**Use dedicated tools, not Bash** — Read (not `cat` /`head` /`tail` ), Glob (not `find` /`ls` ), Grep (not `grep` /`rg` ), Edit (not `sed` /`awk` ). This applies to all agents and subagents.
feat: Enhance Public VPN Plans view with marketing content and new components
- Added detailed service highlights, how it works steps, and FAQs to the Public VPN Plans view.
- Introduced new components: CtaButton, FeaturedServiceCard, ProcessStep, ServiceCard, ServiceShowcaseCard, TrustBadge, TrustIndicators, HowItWorks, ServiceCTA, and ServiceFAQ for improved layout and functionality.
- Implemented a new design for the landing page with enhanced visuals and user engagement elements.
- Updated the VPN plans section to include a more informative and visually appealing layout.
2026-01-13 18:19:58 +09:00
2026-03-02 18:00:41 +09:00
**Never run destructive git commands** — `git stash` , `git checkout -- .` , `git restore .` , `git reset --hard` , `git clean` , or any command that discards uncommitted work. If you need to check pre-existing state, use `git diff` or `git status` — never stash or discard the working tree.
2026-02-24 11:09:35 +09:00
## Commands
2026-01-13 14:39:33 +09:00
feat: Enhance Public VPN Plans view with marketing content and new components
- Added detailed service highlights, how it works steps, and FAQs to the Public VPN Plans view.
- Introduced new components: CtaButton, FeaturedServiceCard, ProcessStep, ServiceCard, ServiceShowcaseCard, TrustBadge, TrustIndicators, HowItWorks, ServiceCTA, and ServiceFAQ for improved layout and functionality.
- Implemented a new design for the landing page with enhanced visuals and user engagement elements.
- Updated the VPN plans section to include a more informative and visually appealing layout.
2026-01-13 18:19:58 +09:00
```bash
2026-02-24 11:09:35 +09:00
pnpm domain:build # Required after domain changes
2026-01-13 14:39:33 +09:00
pnpm type-check
pnpm lint
feat: Enhance Public VPN Plans view with marketing content and new components
- Added detailed service highlights, how it works steps, and FAQs to the Public VPN Plans view.
- Introduced new components: CtaButton, FeaturedServiceCard, ProcessStep, ServiceCard, ServiceShowcaseCard, TrustBadge, TrustIndicators, HowItWorks, ServiceCTA, and ServiceFAQ for improved layout and functionality.
- Implemented a new design for the landing page with enhanced visuals and user engagement elements.
- Updated the VPN plans section to include a more informative and visually appealing layout.
2026-01-13 18:19:58 +09:00
pnpm db:migrate
pnpm db:generate
2026-02-24 11:09:35 +09:00
pnpm test # All tests
pnpm --filter @customer -portal/bff test # BFF tests only
2026-01-13 14:39:33 +09:00
```
2026-02-24 11:09:35 +09:00
Ports: Frontend :3000 | Backend :4000/api | Prisma Studio :5555
2026-01-13 14:39:33 +09:00
## Architecture
```
apps/
feat: Enhance Public VPN Plans view with marketing content and new components
- Added detailed service highlights, how it works steps, and FAQs to the Public VPN Plans view.
- Introduced new components: CtaButton, FeaturedServiceCard, ProcessStep, ServiceCard, ServiceShowcaseCard, TrustBadge, TrustIndicators, HowItWorks, ServiceCTA, and ServiceFAQ for improved layout and functionality.
- Implemented a new design for the landing page with enhanced visuals and user engagement elements.
- Updated the VPN plans section to include a more informative and visually appealing layout.
2026-01-13 18:19:58 +09:00
├── portal/ # Next.js 15 (React 19, Tailwind, shadcn/ui)
└── bff/ # NestJS 11 (Prisma, BullMQ, Zod)
2026-01-13 14:39:33 +09:00
packages/
2026-02-24 11:09:35 +09:00
└── domain/ # Shared contracts, Zod schemas, provider mappers
2026-01-13 14:39:33 +09:00
```
2026-02-24 11:09:35 +09:00
**Systems of record**: WHMCS (billing, subscriptions, invoices, addresses) | Salesforce (CRM, orders) | Portal (UI + BFF orchestration)
2026-01-13 14:39:33 +09:00
2026-02-24 11:09:35 +09:00
## Key Conventions
2026-01-13 14:39:33 +09:00
2026-02-24 11:09:35 +09:00
**Imports** (ESLint enforced):
2026-01-13 14:39:33 +09:00
2026-02-24 11:09:35 +09:00
- Import from module index: `@customer-portal/domain/billing` — never root or deep paths
- Provider imports (`/providers` ) are BFF-only, forbidden in Portal
2026-01-13 14:39:33 +09:00
2026-02-24 11:09:35 +09:00
**Domain**: Each module has `contract.ts` , `schema.ts` , `index.ts` , and `providers/` (BFF-only mappers). Map once in mappers, use domain types everywhere.
2026-01-13 14:39:33 +09:00
2026-02-24 11:09:35 +09:00
**Portal**: Pages in `app/` are thin shells — all logic lives in `features/` modules. No API calls in `app/` . Use `@/core/logger` not `console.log` .
2026-01-13 14:39:33 +09:00
2026-02-24 11:09:35 +09:00
**BFF**: Integration services fetch, transform via domain mappers, return domain types. Controllers are thin — use `createZodDto(schema)` + `ZodValidationPipe` . Use `nestjs-pino` logger not `console.log` .
2026-01-13 14:39:33 +09:00
2026-02-24 11:09:35 +09:00
**Validation**: Zod-first. Schemas in domain, derive types with `z.infer` . Use `z.coerce.*` for query params.
2026-01-13 14:39:33 +09:00
2026-02-24 11:09:35 +09:00
## Docs
2026-01-13 14:39:33 +09:00
feat: Enhance Public VPN Plans view with marketing content and new components
- Added detailed service highlights, how it works steps, and FAQs to the Public VPN Plans view.
- Introduced new components: CtaButton, FeaturedServiceCard, ProcessStep, ServiceCard, ServiceShowcaseCard, TrustBadge, TrustIndicators, HowItWorks, ServiceCTA, and ServiceFAQ for improved layout and functionality.
- Implemented a new design for the landing page with enhanced visuals and user engagement elements.
- Updated the VPN plans section to include a more informative and visually appealing layout.
2026-01-13 18:19:58 +09:00
| Topic | Location |
| ------------------- | ---------------------------------------------- |
| Overview | `docs/README.md` |
| BFF patterns | `docs/development/bff/integration-patterns.md` |
| Portal architecture | `docs/development/portal/architecture.md` |
| Domain structure | `docs/development/domain/structure.md` |
| Salesforce | `docs/integrations/salesforce/` |
| WHMCS | `docs/integrations/whmcs/` |