Clean Frontend Scaffolding
1. Audit current state
Detect framework from package.json:
reactin dependencies → React project.vuein dependencies → Vue project.
For each item below, check if it still has Vite scaffold default content (heuristic: file size + scaffolded import patterns):
src/App.tsx(React) orsrc/App.vue(Vue)src/main.tsx/src/main.tssrc/App.css/src/style.css/src/index.css(default Vite content)public/vite.svg,src/assets/react.svg,src/assets/vue.svgindex.html(default<title>Vite + React</title>etc.)
If every checked file is already custom, exit early with: "Scaffold cleanup not needed — files appear customized."
2. Decide what to do
- All scaffold defaults present → full clean (proceed to step 3).
- Partially customized → remove only the default items still present.
- Already customized → exit.
3. Purge boilerplate
React
Reduce
src/App.tsxto:export default function App() { return <div>App shell</div>; }Reduce
src/main.tsxto a clean root render:import { StrictMode } from 'react'; import { createRoot } from 'react-dom/client'; import App from './App'; import './index.css'; createRoot(document.getElementById('root')!).render( <StrictMode> <App /> </StrictMode>, );Replace
src/App.csscontent with a single comment:/* Project styles (Tailwind handles most layout). */Replace
src/index.csscontent with the Tailwind v4 import (v4 dropped the three@tailwinddirectives for a single@import):@import "tailwindcss";Delete
src/assets/react.svgandpublic/vite.svg.Update
index.html<title>to the project name (ask via AskUserQuestion if unknown).
Vue
Reduce
src/App.vueto:<script setup lang="ts"></script> <template> <div>App shell</div> </template>Reduce
src/main.tsto:import { createApp } from 'vue'; import App from './App.vue'; import './style.css'; createApp(App).mount('#app');Replace
src/style.csswith the Tailwind directives only (see React step 4).Delete
src/assets/vue.svg,public/vite.svg,src/components/HelloWorld.vue(if present).Update
index.html<title>to the project name.
4. Verify
pnpm dev
Expected: dev server starts; visiting the app shows the empty shell with no console errors. Stop the server.
References
- ./boilerplate-removal.md — exact files and patterns per framework, with examples and anti-patterns.
- ../_shared/conventions.md — path alias and source-root conventions.