A 9-Day Full-Stack Rebuild with Codex: From Vue 2 to Nuxt 4 and NestJS
This rebuild demonstrates a practical, disciplined workflow for using AI coding agents on a real production system, not a greenfield demo. The developer's domain expertise in frontend, UI, and infrastructure remained the critical decision-making layer; Codex accelerated execution but did not replace the judgment needed to keep a 36,000-line codebase coherent, secure, and visually consistent.
Hangzhan, a long-running Chinese developer community site, was migrated from a Vue 2 and ThinkPHP 5 stack to Nuxt 4, NestJS 11, and Prisma. The 36,000-line codebase was refactored feature by feature, with Codex reading the entire project to trace dependencies across pages, composables, controllers, and database models. The developer gave Codex bounded, specific tasks with explicit constraints on what not to change and how to verify completion, rather than open-ended prompts. Data migration scripts handled years of inconsistent historical content, while SSR smoke tests confirmed that search engines would receive complete, correct HTML. The entire core refactoring, from first baseline commit to production configuration, took nine days.
Codex's project-wide context window changes the task granularity from 'write this function' to 'resolve this feature across the stack,' which shifts the developer's role from code author to system reviewer and product decision-maker.
The developer's existing expertise became more critical with AI assistance, not less. Judging whether an SSR implementation is correct, whether component code is becoming disorganized, or whether a database operation is safe all required deep domain knowledge that Codex cannot supply.
Vague design feedback like 'make it look better' reliably produced generic, trend-chasing UI. Specific, observable critiques about whitespace, visual weight, border density, and typographic hierarchy produced results that matched the site's existing design language.
The most time-saving use of Codex was not component generation but the tedious, error-prone work of data cleaning, migration scripting, and link validation that a human would find draining and likely to miss edge cases in.
Page buttons jump and shake badly when clicked—unacceptable for a frontend dev.
Ah, I deliberately made that jelly effect [grin]
Too stiff, no transition.