## Build & runtime modes The project can be built in two isolated configurations. The build scripts set the `FUNNEL_BUILD_VARIANT`/`NEXT_PUBLIC_FUNNEL_BUILD_VARIANT` environment variables so that unused code is tree-shaken during compilation. - **Production (frontend-only)** – renders funnels using the baked JSON bundle. The admin UI and MongoDB access are not included in the bundle. - Development preview: `npm run dev:frontend` - Production build (default): `npm run build` or `npm run build:frontend` - Production start (default): `npm run start` or `npm run start:frontend` - **Development (full system)** – runs the public frontend together with the admin panel backed by MongoDB. - Development (default): `npm run dev` or `npm run dev:full` - Development build: `npm run build:full` - Development start: `npm run start:full` ## Local development 1. Install dependencies: `npm install` 2. Choose the required mode: - Production preview (frontend-only): `npm run dev:frontend` - Full system development: `npm run dev` The application will be available at [http://localhost:3000](http://localhost:3000). ## Production build ```bash npm run build # frontend-only production bundle # or npm run build:full # full system development bundle ``` After building, start the chosen bundle with `npm run start` (frontend-only) or `npm run start:full`. ## Funnel Management ### Database Synchronization To sync published funnels from MongoDB into the codebase: ```bash # Sync all published funnels from database npm run sync:funnels # Preview what would be synced (dry-run mode) npm run sync:funnels -- --dry-run # Sync only specific funnels npm run sync:funnels -- --funnel-ids funnel-test,ru-career-accelerator # Keep JSON files for debugging npm run sync:funnels -- --keep-files ``` This script: 1. Connects to MongoDB and fetches all latest published funnels 2. Saves them as temporary JSON files in `public/funnels/` 3. Bakes them into TypeScript (`src/lib/funnel/bakedFunnels.ts`) 4. Cleans up temporary JSON files ### Other Funnel Commands ```bash # Import JSON files from public/funnels/ to MongoDB npm run import:funnels # Manually bake JSON files to TypeScript npm run bake:funnels ``` **Recommended Workflow:** 1. Create/edit funnels in the admin panel 2. Publish them in the admin 3. Run `npm run sync:funnels` to update the codebase 4. Build and deploy with the latest funnels