Bill Splitting App es un proyecto open source de Pericodes para crear grupos, apuntar quién pagó qué y ver al instante quién debe a quién. Úsala aquí o clónala y despliégala en tu propia cuenta de Vercel o Netlify.
Gratis para usar, auditar y contribuir. Sin cuentas de pago ni tiendas de apps.
Qué puedes hacer
Pensada para viajes, pisos compartidos, cenas y cualquier grupo que quiera saldar cuentas sin fricción.
Cuentas compartidas
Crea un grupo con nombre, icono y moneda (EUR, USD o GBP). Cada cuenta tiene su propio historial de gastos y participantes.
Gastos flexibles
Un pagador o varios. Partes iguales o importes a medida. La app comprueba que lo pagado y lo asignado cuadren con el total.
Saldos automáticos
Ves quién debe a quién y cómo saldar con el menor número de transferencias. Los balances se recalculan al añadir o borrar un gasto.
Invitar con enlace o QR
Comparte un enlace de invitación o un código QR. Quien lo abra entra al grupo sin que tengas que añadir su email a mano.
Participantes provisionales
Añade a alguien solo con el nombre para incluirlo en un gasto. Más tarde puede unirse con el enlace y ocupar su sitio.
Invitado o cuenta registrada
Entra con un nombre (perfil local) o regístrate con email. Si te registras después, conservas los grupos de este navegador.
Español e inglés
La interfaz está en los dos idiomas. Eliges el idioma en Perfil; esta landing también tiene versión en inglés.
Tú tienes el código
Next.js, TypeScript, Neon Postgres y Auth. Sin backend opaco: puedes leer, auditar y desplegar el mismo código que usamos.
Open source: úsala, clónala, mejórala
El código vive en GitHub. Issues, pull requests y forks son bienvenidos: traducciones, bugs, diseño o nuevas formas de repartir. El proyecto es de Pericodes y se publica para que cualquiera pueda autoalojarlo.
Cuentas gratuitas bastan para una instancia personal o de un grupo pequeño.
Node.js 20 o superior
Next.js 15 necesita Node 18.18+, recomendamos la LTS 20. Comprueba con node -v.
Git y pnpm
El repo usa pnpm-lock.yaml. Instala pnpm con npm install -g pnpm si no lo tienes.
Proyecto en Neon
Postgres serverless, Data API y Neon Auth. La app no se conecta a Postgres en producción: habla con la Data API.
Vercel o Netlify
Cualquiera de los dos sirve un proyecto Next.js (App Router). Vercel es el encaje más directo.
Despliegue paso a paso
Primero el esquema en Neon desde tu máquina; después el frontend en Vercel o Netlify. Cada bloque se puede copiar.
1. Crea el proyecto en Neon
Esto se hace en el navegador, en la consola de Neon (neon.tech). No hay CLI obligatoria.
Crea una cuenta y un proyecto de Postgres (la región más cercana a tus usuarios).
En el proyecto, activa Data API y copia la URL (termina en /rest/v1).
Activa Neon Auth y copia la URL (termina en /auth). Habilita tokens anónimos: la app los usa para la Data API.
Copia la cadena de conexión DIRECTA (host sin -pooler). La usarás solo en local como DEV_DATABASE_URL.
Cuando tengas la URL de Vercel o Netlify, añádela en Neon Auth como origen permitido (si no, el login devolverá Invalid Origin).
2. Variables de entorno
Copia .env.example a .env y rellena los valores de Neon. En Vercel/Netlify configurarás las mismas claves NEXT_PUBLIC_* y APP_URL (DEV_DATABASE_URL no hace falta en el hosting).
# URL pública de tu despliegue (Vercel, Netlify o local)
APP_URL="https://tu-dominio.vercel.app"
# Neon Data API (consola de Neon → Data API)
NEXT_PUBLIC_NEON_DATA_API_URL="https://ep-xxxx.apirest.region.aws.neon.tech/neondb/rest/v1"
# Neon Auth (consola de Neon → Auth)
NEXT_PUBLIC_NEON_AUTH_URL="https://ep-xxxx.neonauth.region.aws.neon.tech/neondb/auth"
# Solo en tu máquina, para migrar el esquema. Cadena DIRECTA (sin -pooler).
# No hace falta en Vercel/Netlify: en producción la app usa Data API.
DEV_DATABASE_URL="postgresql://USER:PASSWORD@ep-xxxx.region.aws.neon.tech/neondb?sslmode=require"
3. Clona e instala
En una terminal, en la carpeta donde quieras el código:
cp .env.example .env
# Windows PowerShell:
Copy-Item .env.example .env
4. Crear tablas y permisos
Desde tu ordenador, con DEV_DATABASE_URL apuntando a Neon (NODE_ENV no debe ser production). Este script aplica migraciones Prisma, columnas generadas y GRANT para los roles anonymous y authenticated de la Data API. Activa Data API en Neon antes de ejecutarlo.
pnpm db:dev:setup
5. Probar en local (opcional)
Con el .env relleno, arranca el servidor de desarrollo y abre http://localhost:3000
pnpm dev
Desplegar en Vercel (CLI)
Con la cuenta de Vercel y el proyecto ya clonado. También puedes importar el repo en vercel.com/new; aquí van los comandos.
1. Inicia sesión en Vercel
npx vercel login
2. Enlaza el proyecto (desde la raíz del repo)
Acepta los valores por defecto: framework Next.js, directorio raíz, build pnpm build. Te dará una URL de preview.
npx vercel
3. Añade las variables de producción
Pega las URLs de Neon. En APP_URL usa la URL definitiva (por ejemplo https://tu-app.vercel.app).
npx vercel env add NEXT_PUBLIC_NEON_AUTH_URL production
npx vercel env add NEXT_PUBLIC_NEON_DATA_API_URL production
npx vercel env add APP_URL production
4. Despliega a producción
npx vercel --prod
5. Autoriza el origen en Neon
En la consola de Neon Auth, añade https://tu-app.vercel.app (sin barra final si la consola lo pide así). Vuelve a generar un deploy si cambiaste APP_URL.
Desplegar en Netlify (CLI)
Netlify detecta Next.js (App Router). El comando de build es pnpm build; no publiques a mano la carpeta .next.
1. Inicia sesión en Netlify
npx netlify-cli login
2. Inicializa el sitio en este repo
Elige crear un sitio nuevo, el equipo, y build command: pnpm build. Deja que Netlify use el runtime de Next.js.
Añade https://tu-sitio.netlify.app en Neon Auth como origen permitido, igual que en Vercel.
Después del deploy. Copia la URL HTTPS que te den Vercel o Netlify. Ponla en APP_URL, vuelve a desplegar si hace falta, y añádela en Neon Auth → orígenes permitidos. Sin ese origen, registro e inicio de sesión fallan.
Preguntas frecuentes
¿Es de código abierto?+−
Sí. El repositorio público es https://github.com/pericodes/bill-splitting-app. Puedes clonar, hacer fork y abrir pull requests.
¿Hace falta registrarse para usarla?+−
No. Puedes entrar como invitado con un nombre. El perfil queda en ese navegador. Si más tarde te registras, se conservan los grupos.
¿Qué servicios necesito para autoalojarla?+−
Un proyecto Neon (Postgres + Data API + Auth) y un hosting compatible con Next.js: Vercel o Netlify. Las cuentas gratuitas cubren un uso personal.
¿Por qué Prisma solo en desarrollo?+−
En producción la app no abre una conexión TCP a Postgres: usa la Data API de Neon. Prisma y DEV_DATABASE_URL sirven para aplicar el esquema desde tu máquina.
¿Vercel o Netlify?+−
Los dos valen. Vercel es el entorno nativo de Next.js y suele ser el camino más corto. Netlify funciona con su runtime de Next.js y los mismos env.