Skip to content

feat: add optional Vue 3 frontend integration#16

Merged
h0pers merged 3 commits into
masterfrom
feat/vue-frontend-integration
Jul 2, 2026
Merged

feat: add optional Vue 3 frontend integration#16
h0pers merged 3 commits into
masterfrom
feat/vue-frontend-integration

Conversation

@h0pers

@h0pers h0pers commented Jul 1, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add use_vue cookiecutter option for optional Vue 3 frontend with Composition API (JS only), shadcn-vue, Pinia, Vue Router, and django-vite
  • Hybrid architecture: Django templates serve Vue SPA via {% vite_asset %} tags, catch-all URL pattern under /app/ for Vue Router, root / redirects to SPA
  • Conditional Node.js Docker build stage (production only), CI matrix expansion (2x2x2), post-gen hook generates package-lock.json
  • Polls app now shared between DRF and Vue options, with conditional file removal for each

Test plan

  • Generate with use_drf=n use_vue=y — verify no api/ in polls, frontend present, Dockerfile has frontend-build stage
  • Generate with use_drf=y use_vue=y — verify both api/ and templates/ in polls
  • Generate with use_drf=n use_vue=n — verify no polls/ app, no frontend/
  • Generate with use_drf=y use_vue=n — verify polls has api/ only, no frontend
  • Run npm run dev in generated project frontend — verify Vite dev server starts
  • Run npm run build — verify assets output to website/static/dist/
  • Verify pre-commit passes for all combinations
  • Verify Docker build succeeds for development and production targets

h0pers added 3 commits July 1, 2026 10:53
Add use_vue cookiecutter option with Vue 3 Composition API, shadcn-vue,
Pinia, Vue Router, and django-vite for hybrid Django+SPA architecture.
Includes conditional Dockerfile Node.js build stage, CI matrix expansion,
and post-gen hook for frontend lock file generation.
@h0pers
h0pers merged commit 56b1f40 into master Jul 2, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant