w-funnel/README.md
2025-09-28 22:48:50 +02:00

76 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 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