refactor: migrate to Vite workspace with Docker and auto-migration#29
Merged
productdevbook merged 15 commits intomainfrom Feb 23, 2026
Merged
refactor: migrate to Vite workspace with Docker and auto-migration#29productdevbook merged 15 commits intomainfrom
productdevbook merged 15 commits intomainfrom
Conversation
…structure - Move all source to app/ mirroring yaprak/app structure - Replace Nuxt with Vite + @vitejs/plugin-vue - Remove abckit, copy components/ui from yaprak directly - Replace all abckit/shadcn/* imports with ~/components/ui/* - Replace NuxtLink→RouterLink, navigateTo→router.push, remove definePageMeta - Add explicit Vue/vue-router imports (no more Nuxt auto-imports) - Move server/ inside app/, add app/package.json with yaprak versions - Add src/main.ts, src/App.vue, src/router.ts, src/style.css - Add Icon wrapper component at src/components/common/Icon.vue - Update Dockerfile for new app/ structure Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ver schema drizzle-orm v1 beta removed `relations` export which nitroping server uses. Reverted to ^0.45.1 (orm) and ^0.31.8 (kit) — the versions from original package.json. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace old `relations()` with new `defineRelations()` in schema/relations.ts - Add drizzle-zod dependency back - Add explicit nitro imports: definePlugin (was defineNitroPlugin), defineEventHandler/getHeader from nitro/h3 - Add ~~/server alias to vite.config.ts resolve and nitro alias config Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…auto-migration - Move Dockerfile and docker-compose.yaml into app/ directory - Move SDK into app/sdk/ and set up pnpm workspace - Update docker-compose ports: postgres 5433, redis 6380, server 3412 - Upgrade postgres to v18, use platformatic/node-caged:25-slim base image - Add server startup migration plugin (runs on every deploy) - Fix nitro-graphql/utils/define → nitro-graphql/define in all resolvers - Remove skipLocalScan so resolvers are discovered automatically - Add missing imports: PiniaColada plugin, Vue primitives, graphql composables - Add jsonwebtoken dependency - Regenerate migrations with drizzle-kit beta Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace nitro/runtime with nitro (definePlugin) in migrate.ts - Fix Zod v4 z.record() to require key+value schemas - Remove unused convertToPem method in webpush.ts; fix statusCode property - Add non-null assertions for drizzle .returning()[0] results - Cast resolver input fields to fix drizzle insert type errors - Fix dashboardStats possibly-undefined array access - Install missing packages: embla-carousel-vue, vaul-vue, vue-input-otp, @tiptap/* - Create useImageUrl composable for AppImage component - Add nitro-graphql.config.ts with clientDir pointing to src/graphql - Generate nitro-graphql-client.d.ts types; update tsconfig paths - Fix Icon component class binding (object -> template string) - Remove unused computed variable in index.vue Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5e7092b to
6d09d12
Compare
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- docker-publish: context/file now point to app/Dockerfile - ci: new workflow for typecheck + lint on push/PR to main Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
app/directoryapp/sdk/and set up pnpm workspace (workspace:*)5433, redis6380, server3412platformatic/node-caged:25-slimas base imagenitro-graphql/utils/define→nitro-graphql/definein all 37 resolver filesskipLocalScanso resolvers are discovered automaticallyPiniaColadaplugin, Vue primitives, graphql composablesjsonwebtokendependencyTest plan
docker compose up -dstarts postgres (5433) and redis (6380) without port conflictspnpm devstarts Vite dev server on port 3412docker build --target production)🤖 Generated with Claude Code