Go to file
2025-09-28 22:48:50 +02:00
.storybook initial 2025-09-23 20:39:40 +04:00
docs docs: describe funnel templates and builder 2025-09-26 02:44:41 +02:00
public add load json 2025-09-28 22:48:50 +02:00
scripts add load json 2025-09-28 22:48:50 +02:00
src add load json 2025-09-28 22:48:50 +02:00
.gitignore initial 2025-09-23 20:39:40 +04:00
components.json initial 2025-09-23 20:39:40 +04:00
eslint.config.mjs initial 2025-09-23 20:39:40 +04:00
next.config.ts Align build variants with prod/dev expectations 2025-09-28 17:30:32 +02:00
package-lock.json merge 2025-09-28 04:41:13 +02:00
package.json add load json 2025-09-28 22:48:50 +02:00
postcss.config.mjs initial 2025-09-23 20:39:40 +04:00
README-ADMIN.md Align build variants with prod/dev expectations 2025-09-28 17:30:32 +02:00
README.md add load json 2025-09-28 22:48:50 +02:00
tsconfig.json Initial commit from Create Next App 2025-09-14 18:38:07 +04:00
vitest.config.ts initial 2025-09-23 20:39:40 +04:00
vitest.shims.d.ts initial 2025-09-23 20:39:40 +04:00

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.

Production build

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:

# 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

# 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