Vuexy Next.js Frontend Customisation
Status: π‘ In progress β research done, customisation not started
Started: 2026-05-12
Goal: Use Vuexy Next.js 15 as the base template and customise it into the app
frontend using Claude Code to navigate and modify the codebase
Template details
- Product: Vuexy by PixInvent (sold on ThemeForest)
- Stack: Next.js 15 (App Router + SSR), Material UI v5, Tailwind CSS
- Includes: 10 pre-built apps (Email, Chat, Calendar, Kanbanβ¦), 6 layout options
- Version note: Use the new App Directory Routing version β Pages Router version is deprecated
- License note: Each end product / client requires its own license
Plan
- Get Vuexy Next.js package set up locally
- Point Claude Code at the
vuexy-next.js/directory - Walk Claude Code through the template structure
- Provide app requirements β let Claude Code modify components, routes, and styles
Progress log
2026-05-12 (morning)
- Confirmed Vuexy Next.js 15 version exists with App Router + MUI v5 + Tailwind β
- Started conversation with Claude to plan approach β cut off before specifying app details
- Claude asked: where is the project located? what app are you building? whatβs the tech stack?
2026-05-12 (afternoon)
- Answered Claudeβs questions: local machine, SaaS / Dashboard, all phases β
- Received 4-phase Claude Code prompt (ready to paste into
claude):- Phase 1 β Audit & Map: scan entire project, list routes, config files, mock data locations
- Phase 2 β Branding: replace Vuexy/PixInvent branding, update colors (
#2563EBprimary) - Phase 3 β Clean demo: remove eCommerce/gaming/crypto pages; keep Auth, Dashboard, Users, Settings
- Phase 4 β SaaS foundation:
/dashboard,/users,/settings,/auth/login,/auth/register
- Made monorepo decision: single repo with
frontend/,backend/,docker-compose.ymlβ- Backend: Django + Ninja (REST API)
- DB: SQLite for dev, Postgres for prod (switched in
settings.pyviaDEBUGflag)
- Discussed CLAUDE.md for the project root to give Claude Code permanent context
Monorepo structure (decided)
my-app/
βββ frontend/ # Next.js (Vuexy-based)
βββ backend/ # Django + Ninja
βββ docker-compose.yml
βββ .env.example
βββ CLAUDE.md
βββ README.md
Open tasks
- Set up monorepo folder structure locally
- Download / set up Vuexy Next.js package into
frontend/ - Create
CLAUDE.mdat repo root with stack, dev commands, git flow - Run Phase 1 audit in Claude Code (paste the prompt from the conversation)
- Review Phase 1 output then continue with Phases 2-4
Reference
- Vuexy ThemeForest listing for license details
- reference/cicd-django-nextjs β for the backend pairing with this frontend
2026-05-12 (evening)
Codebase documentation strategy finalised β comprehensive prompt written for
Claude Code to produce 12 documentation files under claude-docs/ in the Vuexy
source directory. Purpose: create a persistent context map Claude can always refer to.
claude-docs/ file inventory
| File | Contents |
|---|---|
CODEBASE_MAP.md | Full directory tree, tech stack, routing strategy |
COMPONENTS.md | Every component: location, props, variants, usage example |
LAYOUTS.md | All layout variants, slots, when to use each |
PAGES_AND_APPS.md | Every pre-built page/app: route, data needs, how to adapt |
DATA_AND_CHARTS.md | Fetch patterns, mock data locations, chart components |
AUTH_AND_ACL.md | JWT/Auth Guard/session flow, role definitions, ACL patterns |
THEMING_AND_STYLING.md | MUI theme, Tailwind config, dark mode, design tokens |
FORMS_AND_VALIDATION.md | Form library, validation patterns, reusable form components |
STATE_MANAGEMENT.md | Redux/Zustand/Context usage, store structure |
HOOKS_AND_UTILS.md | Every custom hook and utility with usage examples |
TYPESCRIPT_TYPES.md | Core types/interfaces and where they are used |
SKILL.md | Crown jewel β dense context anchor Claude loads before every task |
SKILL.md structure
- Codebase identity (one paragraph)
- Golden rules (10β15 must-follow conventions)
- Component quick-reference table (Name / Location / Use When)
- Layout quick-reference table
- Pattern cheatsheet (add page, add protected route, add chart, add form, etc.)
- Compact directory map
- Anti-patterns
How to use
# 1. Open Claude Code in the Vuexy source directory
cd ~/projects/vuexy-next.js
claude
# 2. Paste the Phase 1 documentation prompt
# (saved from "Next.js template framework contents" chat β 2026-05-12)
# 3. Let it run β writes all 12 files to claude-docs/
# 4. Every future build task starts with:
# "Read claude-docs/SKILL.md first, then..."- Paste Phase 1 documentation prompt into Claude Code (Vuexy dir)
- Review SKILL.md output β verify Golden Rules are accurate
- Add
claude-docs/to.gitignoreor commit as part of the repo
2026-05-13
Codebase scan & SKILL.md approach confirmed β second comprehensive Claude Code
prompt written: reads all claude-docs/ files + spot-checks real source, then
writes a final SKILL.md with 21 structured sections.
Key additions today:
- Confirmed SKILL.md must contain: Absolute Rules, Directory Map, Task Playbook, Anti-Patterns, Quick-Start Checklist, File Finder (21 sections total)
- Monorepo structure reconfirmed:
frontend/+backend/+docker-compose.yml+CLAUDE.md - CI/CD + Docker dev environment fully designed (self-hosted runner, blue-green deploy) β see reference/docker-dev-environment and reference/cicd-django-nextjs
Open tasks updated:
- Set up monorepo folder locally
- Download Vuexy Next.js into
frontend/ - Create
CLAUDE.mdat repo root - Run Phase 1 codebase scan in Claude Code
- Run Phase 2 SKILL.md generation
- Verify SKILL.md Golden Rules against real source files
- Set up self-hosted GitHub Actions runner on local server
2026-05-15
Multi-agent team prompt architected for User Management phases 4β6.
- Phases 1β3 (T001βT067) complete. Remaining scope: Phase 4 (T068βT088, Roles & Permissions), Phase 5 (T089βT112, Deactivate Users), Phase 6 (T113βT125, Polish & Security).
- Created Lead spawn prompt with three permanent agents:
django-agent(TDD backend),nextjs-agent(strict TypeScript frontend, waits on API contract),qa-agent(phase gate enforcer). - API-First rule enforced via
progress.mdβ django-agent posts contract, nextjs-agent begins. Never reversed. - Phase gate: all tasks + qa-agent PASS β git commit βphase N complete:
β. - Three-layer CLAUDE.md files generated: root (shared contract),
backend/CLAUDE.md(Django expertise),frontend/CLAUDE.md(NextJS + Vuexy path reference). - β See reference/claude-code-multiagent-team for the reusable prompt template.
Open tasks updated:
- Confirm
progress.mdreflects T001βT067 as complete before running Lead - Paste Lead prompt into Claude Code to kick off Phase 4
- Monitor phase gate β re-engage if qa-agent posts FAIL
- Set up monorepo folder structure locally
- Download Vuexy Next.js into
frontend/ - Create
CLAUDE.mdat repo root (template ready from 2026-05-15 session)
2026-05-18
Design system clarity and Speckit workflow refined.
Conversation re: NotebookLM vs Claude for the learning-to-implementation pipeline surfaced key clarity on the stack and workflow.
Design system confirmed:
- Vuexy Next.js = MUI v5 + Tailwind CSS (not Shadcn, not Ant Design)
- The design system IS MUI β study MUI component names when prompting Claude for UI output
- Prompt format: use specific MUI component names (e.g.
DataGrid,Autocomplete) for better results
Speckit workflow clarified:
- Feed one epic at a time β never vague feature names
- Pre-generate a full epic spec in Claude first β then feed to Speckit
- Speckit generates stories; quality depends on the context you provide
- The long Claude-generated spec is for Claude to write and you to review β not manual work
Pain points acknowledged:
- Getting LLMs to produce best-practice requirements
- UX/UI output β functional but visually weak (MUI-specific prompting helps)
Open tasks added:
- Try MUI-specific prompting format for next UI task (use component names in prompt)
- Create one full epic spec in Claude as a template for Speckit workflow