Search real homestays, 4x4 drivers, and local guides across Himachal Pradesh — verified locals, direct and with no agency markup. Or build a full multi-stop route with stays and transit in one place.
翻译准备中
生活方式TypeScript · CSSGitHub @pahariyatri在线运营者未确认
试用过了吗? 点一下就好,无需登录。
尚未检测到更新。GitHub 发布版本后会显示在这里。
正在加载完整 README。 以下为已保存的摘录。
Connecting travellers with authentic local experiences across the Himalayas
Travel Platform by Pahari Yatri is a community-driven travel marketplace built by Pahari Yatri that bridges the gap between adventurous travellers and trusted local service providers across Himalayan regions. The platform enables locals to list services (guides, homestays, transport, experiences) while giving travellers a curated, verified directory with custom multi-day trip building, real-time booking, and escrow payment support.查看完整 README ↗Connecting travellers with authentic local experiences across the Himalayas
Travel Platform by Pahari Yatri (https://app.pahariyatri.com) is a community-driven travel marketplace built by Pahari Yatri (https://www.pahariyatri.com) that bridges the gap between adventurous travellers and trusted local service providers across Himalayan regions. The platform enables locals to list services (guides, homestays, transport, experiences) while giving travellers a curated, verified directory with custom multi-day trip building, real-time booking, and escrow payment support.
🗂 This repo contains the Next.js frontend for
app.pahariyatri.com. The backend REST API lives in a separate repository.
hi) and English (en) out of the box| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router, standalone output) |
| Language | TypeScript 5 |
| Styling | Tailwind CSS 3 |
| State | Zustand 5 |
| i18n | next-intl + dictionary files |
| Payments | Razorpay |
| Push | Web Push / VAPID |
| Runtime | Node 22 (see .nvmrc) |
>=22 (use nvm use if you have nvm)>=10git clone [email protected]:pahariyatri/local-connect-app.git
cd local-connect-app
npm install --legacy-peer-deps
cp .env.example .env.local
# Open .env.local and fill in your values
Tip: The API client automatically appends
/api/v1toNEXT_PUBLIC_API_BASE_URL. Set only the bare host — e.g.http://localhost:4000, nothttp://localhost:4000/api/v1.
npm run dev
# → http://localhost:3000
| Command | Description |
|---|---|
npm run dev | Start local development server with hot-reload |
npm run build | Create optimised production build (standalone) |
npm run start | Serve the production build locally |
npm run lint | Run ESLint across the project |
Copy .env.example → .env.local and configure:
| Variable | Required | Description |
|---|---|---|
NEXT_PUBLIC_API_BASE_URL | ✅ | Base URL of the backend API (no /api/v1 suffix) |
NEXT_PUBLIC_RAZORPAY_KEY_ID | ✅ | Razorpay public key for checkout |
NEXT_PUBLIC_VAPID_PUBLIC_KEY | Optional | Web Push public key |
NEXT_PUBLIC_GTM_ID | Optional | Google Tag Manager container ID — loads GTM, which owns GA4/portal event tracking (lib/analytics.ts). Blank = tracking off, nothing loads. |
NEXT_PUBLIC_GA_ID | Optional | Legacy — not read by any code path today |
NEXT_PUBLIC_SENTRY_DSN | Optional | Sentry DSN for error monitoring |
NEXT_PUBLIC_ENABLE_CHAT | Optional | Feature flag — enable real-time chat (default: true) |
NEXT_PUBLIC_ENABLE_NOTIFICATIONS | Optional | Feature flag — enable push notifications (default: true) |
⚠️ All
NEXT_PUBLIC_*variables are baked in at build time. When building the Docker image, pass them as build args (see below).
# Build — inject the API URL at build time
docker build \
--build-arg NEXT_PUBLIC_API_BASE_URL=https://api.pahariyatri.com \
-t pahariyatri-local-connect .
# Run
docker run -p 3000:3000 pahariyatri-local-connect
⚠️ For Docker/Next.js standalone builds, all
NEXT_PUBLIC_*variables — includingNEXT_PUBLIC_GTM_ID— are baked into the client bundle at build time, not read at container runtime. SettingNEXT_PUBLIC_GTM_ID(or anyNEXT_PUBLIC_*var) only on the running container viadocker run -e ...or a platform's runtime-env panel is not enough — the bundle copied into the final image has already been compiled without it. To enable GTM tracking, pass it to the build itself:docker build \ --build-arg NEXT_PUBLIC_API_BASE_URL=https://api.pahariyatri.com \ --build-arg NEXT_PUBLIC_GTM_ID=GTM-XXXXXXX \ -t pahariyatri-local-connect .
NEXT_PUBLIC_API_BASE_URL=https://api.pahariyatri.com docker compose up --build
The Docker image uses Next.js standalone output for a minimal runtime footprint and runs as a non-root user with a healthcheck on /.
| Platform | How |
|---|---|
| Vercel | Import repo → set NEXT_PUBLIC_* env vars (including NEXT_PUBLIC_GTM_ID if using GTM) → deploy. No Dockerfile needed — Vercel handles the build-time inlining itself. |
| Fly.io / Render / ECS / K8s | Build the image with the correct NEXT_PUBLIC_API_BASE_URL and NEXT_PUBLIC_GTM_ID build args → deploy the container. A platform's runtime env-var panel is not sufficient for these — see the Docker section above. |
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗