From a1c7b9223f34ca48331c346c3d9eb19a444a572c Mon Sep 17 00:00:00 2001 From: Sean O'Connor Date: Sat, 29 Nov 2025 02:52:10 -0500 Subject: [PATCH] feat: Remove Vercel Analytics, generalize deployment instructions, and switch base URL configuration to `NEXT_PUBLIC_APP_URL`. --- README.md | 17 ++++++++++++----- bun.lock | 3 --- package.json | 1 - src/app/layout.tsx | 2 -- src/server/api/routers/email.ts | 8 +++----- src/trpc/react.tsx | 2 +- 6 files changed, 16 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 3e32f94..d071b86 100644 --- a/README.md +++ b/README.md @@ -198,12 +198,19 @@ Update the logo and colors in: ## 🚀 Deployment -### Vercel (Recommended) +### Deployment -1. Push your code to GitHub -2. Connect your repository to Vercel -3. Set environment variables in Vercel dashboard -4. Deploy automatically on push +You can deploy this application to any platform that supports Next.js (Docker, Coolify, Railway, etc.). + +1. Build the application: +```bash +bun run build +``` + +2. Start the server: +```bash +bun start +``` ### Other Platforms diff --git a/bun.lock b/bun.lock index 32e6b70..9349a9c 100644 --- a/bun.lock +++ b/bun.lock @@ -36,7 +36,6 @@ "@trpc/client": "^11.7.2", "@trpc/react-query": "^11.7.2", "@trpc/server": "^11.7.2", - "@vercel/analytics": "^1.5.0", "bcryptjs": "^3.0.3", "better-auth": "^1.4.3", "chrono-node": "^2.9.0", @@ -677,8 +676,6 @@ "@unrs/resolver-binding-win32-x64-msvc": ["@unrs/resolver-binding-win32-x64-msvc@1.11.1", "", { "os": "win32", "cpu": "x64" }, "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g=="], - "@vercel/analytics": ["@vercel/analytics@1.5.0", "", { "peerDependencies": { "@remix-run/react": "^2", "@sveltejs/kit": "^1 || ^2", "next": ">= 13", "react": "^18 || ^19 || ^19.0.0-rc", "svelte": ">= 4", "vue": "^3", "vue-router": "^4" }, "optionalPeers": ["@remix-run/react", "@sveltejs/kit", "next", "react", "svelte", "vue", "vue-router"] }, "sha512-MYsBzfPki4gthY5HnYN7jgInhAZ7Ac1cYDoRWFomwGHWEX7odTEzbtg9kf/QSo7XEsEAqlQugA6gJ2WS2DEa3g=="], - "abs-svg-path": ["abs-svg-path@0.1.1", "", {}, "sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA=="], "acorn": ["acorn@8.15.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="], diff --git a/package.json b/package.json index b82ad98..bf07995 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,6 @@ "@trpc/client": "^11.7.2", "@trpc/react-query": "^11.7.2", "@trpc/server": "^11.7.2", - "@vercel/analytics": "^1.5.0", "bcryptjs": "^3.0.3", "better-auth": "^1.4.3", "chrono-node": "^2.9.0", diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 053c792..b099c0b 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,6 +1,5 @@ import "~/styles/globals.css"; -import { Analytics } from "@vercel/analytics/next"; import { type Metadata } from "next"; import { Geist, Geist_Mono, Instrument_Serif } from "next/font/google"; @@ -136,7 +135,6 @@ export default function RootLayout({ }} /> - diff --git a/src/server/api/routers/email.ts b/src/server/api/routers/email.ts index d897b46..9ff6b10 100644 --- a/src/server/api/routers/email.ts +++ b/src/server/api/routers/email.ts @@ -108,11 +108,9 @@ export const emailRouter = createTRPCRouter({ customMessage: input.customMessage, userName, userEmail, - baseUrl: process.env.VERCEL_URL - ? `https://${process.env.VERCEL_URL}` - : process.env.NODE_ENV === "production" - ? "https://beenvoice.app" - : "http://localhost:3000", + baseUrl: process.env.NEXT_PUBLIC_APP_URL + ? process.env.NEXT_PUBLIC_APP_URL + : "http://localhost:3000", }); // Determine Resend instance and email configuration to use diff --git a/src/trpc/react.tsx b/src/trpc/react.tsx index 37a8002..798886e 100644 --- a/src/trpc/react.tsx +++ b/src/trpc/react.tsx @@ -73,6 +73,6 @@ export function TRPCReactProvider(props: { children: React.ReactNode }) { function getBaseUrl() { if (typeof window !== "undefined") return window.location.origin; - if (process.env.VERCEL_URL) return `https://${process.env.VERCEL_URL}`; + if (process.env.NEXT_PUBLIC_APP_URL) return process.env.NEXT_PUBLIC_APP_URL; return `http://localhost:${process.env.PORT ?? 3000}`; }