Marketing Web Setup
Learn how to set up, configure, and run the Reloop frontend marketing web service locally.
The Marketing Web Service is a premium Next.js frontend application that powers Reloop's main landing pages, pricing grids, feature checklists, public-facing collateral, and SEO-optimized web layers.
Before starting the Marketing Web app, make sure you've completed the base Local Development Setup and have the Bun package manager configured globally.
Quick Start
Dependencies are handled globally at the root directory. You can start the Marketing Web development server instantly:
# Start the dev server with Turbopack hot reloading
bun fe:web:dev
cd apps/frontend/web
bun dev
Once running, the Marketing Web service will listen on port 3000 locally. You can access it through the Caddy proxy at https://local.reloop.sh (or directly at http://localhost:3000) 🎉
Service Information
- Directory Location:
apps/frontend/web/ - Local Listening Port:
3000(configured via--port=3000in the dev script) - Unified Access Route: https://local.reloop.sh
- Primary Tech Stack: Next.js (with Turbopack), React 19, Tailwind CSS, Framer Motion, Calligraph
- Dependencies: Relies on Caddy to proxy OAuth and subscriber cookie validations smoothly with the backend microservices.
Environment Setup
The Marketing Web environment variables are defined inside apps/frontend/web/.env. A standard local development .env file looks as follows:
# Base URL targeting the client layer
NEXT_PUBLIC_WEB_URL="https://local.reloop.sh"
# API Gateway Endpoint URL
NEXT_PUBLIC_API_URL="https://local.reloop.sh/api"
# Optional: Analytics tracking
NEXT_PUBLIC_ANALYTICS_ID=""
Reference Table
| Variable | Required | Default Value | Description |
|---|---|---|---|
NEXT_PUBLIC_WEB_URL | YES | https://local.reloop.sh | Core marketing site URL path. |
NEXT_PUBLIC_API_URL | YES | https://local.reloop.sh/api | API proxy endpoint routing to ElysiaJS microservices. |
NEXT_PUBLIC_ANALYTICS_ID | NO | "" | Optional Google Analytics or tracking pixel identifier. |
Development Commands
All workspace operations should be executed from the monorepo root directory using Turborepo filters:
| Command | Action | Scope |
|---|---|---|
bun fe:web:dev | Start the Marketing Web Next.js app in Turbopack development mode | Development |
bun run --filter=web build | Compile the Marketing Web app for production static deployment | Production |
bun run --filter=web start | Run the compiled production build locally | Production |
bun run --filter=web lint | Run Next.js linting checks | Code Quality |
Troubleshooting Guide
Port 3000 Conflict
If the terminal throws a port binding conflict, identify and clear the PID using port 3000:
# Inspect process listening on port 3000
lsof -i :3000
# Terminate process manually
kill -9 <PID>
Caddy Routing Issues
If navigating to https://local.reloop.sh triggers bad gateway errors:
- Ensure the Caddy container stack is healthy (
bun docker:up). - Verify that your
/etc/hostsfile mapslocal.reloop.shcorrectly to127.0.0.1. - Check that the
webserver is active and running on port3000.