Base
Base is the blockchain for global finance.
La libreta de cuentas de los panas: quién puso, quién debe y quién ya pagó, en $, Bs, € o USDT.
Translation pending
FinanceTypeScript · CSSGitHub @jorrgettOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
La libreta de cuentas de los panas: salidas, quién debe y quién ya pagó, en $, Bs, € o USDT, con Cashea y pago móvil. Next.js 16 + Neon + Vercel.
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗La libreta de cuentas de los panas: cada vez que salen, una salida con quién fue, cuánto fue, quién puso la plata y quién ya pagó. Hecha para la realidad venezolana: dólares, bolívares, euros y USDT con la tasa del día, pago móvil y compras con Cashea.
Next.js 16 (App Router, server actions) · React 19 · TypeScript · Tailwind CSS 4 · Drizzle ORM sobre Postgres (Neon en producción, PGlite en local) · web-push · Anthropic SDK · desplegada en Vercel con cron jobs.
npm install
echo "DB_DRIVER=pglite" > .env.development.local
npm run dev
En local la base es PGlite (Postgres embebido en .pglite/) y las migraciones de drizzle/ se aplican solas. El primer usuario que se registra es el administrador y puede registrarse sin invitación.
| Variable | Para qué |
|---|---|
DATABASE_URL, DATABASE_URL_UNPOOLED | Postgres de producción (Neon) |
DB_DRIVER=pglite, PGLITE_DIR | Base local embebida |
CRON_SECRET | Protege los cron de tasas y avisos |
NEXT_PUBLIC_VAPID_PUBLIC_KEY, VAPID_PRIVATE_KEY, VAPID_SUBJECT | Notificaciones push |
GMAIL_USER, GMAIL_APP_PASSWORD | Correos de "olvidé mi contraseña" |
ANTHROPIC_API_KEY, ANTHROPIC_WORKSPACE_ID, ANTHROPIC_MODEL | Funciones de IA (opcionales) |
Sin las claves de IA, push o Gmail la app funciona igual: esas funciones simplemente no aparecen.
| Comando | Qué hace |
|---|---|
npx tsx scripts/probar-logica.ts | Pruebas de la lógica de dinero, cuotas, cuadre y recordatorios |
npx drizzle-kit generate --name <nombre> | Nueva migración desde lib/db/schema.ts |
npx tsx scripts/migrar.mts | Aplica las migraciones en Neon |
npx tsx scripts/revisar-cuadre.mts | Revisa (solo lectura) que todas las salidas cuadren |
npx tsx scripts/generar-iconos.mts | Regenera los íconos PNG de la app |
bash scripts/configurar-ia.sh | Guarda la API key de Claude sin mostrarla |
app/ — páginas ((app) con sesión, (auth) sin sesión), server actions y rutas de API (cron, fotos, comprobantes).components/ — interfaz (asistente de salidas, lista de quién pagó, Cashea, avisos…).lib/ — lógica: dinero en centavos, repartos, saldos, tasas, Cashea, recordatorios, IA y base de datos.drizzle/ — migraciones SQL.scripts/ — pruebas y utilidades.Todo el dinero se guarda en centavos enteros; cada cuenta guarda la tasa con la que se anotó.