PriorityPay 會在存款到位的瞬間計算您的分配,精確顯示依您設定的比例應發送至退休、儲蓄與稅金的金額。
AI 翻譯
PriorityPay calculates your split the moment a deposit lands, showing exactly how much to send to retirement, savings, and taxes based on the percentages you set.
金融JavaScript · PLpgSQLGitHub @meganmahoney123上線中營運者未確認
試用過了嗎? 點一下就好,不需要登入。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
A real, deployable Next.js app: Supabase for auth + database, Plaid for
read-only bank account linking. PriorityPay calculates a percentage-based
split for every deposit and shows you a checklist of what to send where --
you complete every transfer yourself, in your own bank's app (that's
manual_approval mode, the default -- see lib/executionMode.js). Real
money movement via Dwolla exists in the codebase as an opt-in mode
(TRANSFER_EXECUTION_MODE=dwolla_auto) for later, but isn't required to run
or deploy the app today.檢視完整 README ↗A real, deployable Next.js app: Supabase for auth + database, Plaid for
read-only bank account linking. PriorityPay calculates a percentage-based
split for every deposit and shows you a checklist of what to send where --
you complete every transfer yourself, in your own bank's app (that's
manual_approval mode, the default -- see lib/executionMode.js). Real
money movement via Dwolla exists in the codebase as an opt-in mode
(TRANSFER_EXECUTION_MODE=dwolla_auto) for later, but isn't required to run
or deploy the app today. Runs in sandbox mode end-to-end for Plaid until
you're approved for Plaid production access (see "Going to production"
below) -- there's no real money at risk either way, since PriorityPay never
touches it regardless of Plaid's environment.
Verified to build clean (next build, no errors) before this was handed to
you.
New to this project? Start with
PROJECT_HANDOFF.mdfirst. This README covers how to run and deploy the app; PROJECT_HANDOFF.md covers the product model, the decisions behind it, and a list of specific gotchas that will otherwise cost you real debugging time.
Next.js App Router, deployed on Vercel. Supabase Auth handles sign-up/login;
Supabase Postgres (with row-level security) holds everything else. The
browser never talks to Plaid, Dwolla, or the database directly — every
sensitive action goes through a Next.js API route (app/api/**) running
server-side, where PLAID_SECRET, DWOLLA_SECRET, PLAID_TOKEN_ENCRYPTION_KEY,
and the Supabase service-role key actually live. See lib/supabaseServer.js
for why it's built this way, and lib/executionMode.js for the
manual-vs-automatic transfer switch mentioned above.
You'll need three free accounts to run the app as it actually works today. A fourth (Dwolla) is optional -- only needed if you plan to test or enable automatic transfer execution later.
prioritypay, set a database password (save it somewhere), pick
a region close to you.supabase/schema.sql from this repo → Run.Project URL → NEXT_PUBLIC_SUPABASE_URLanon public key → NEXT_PUBLIC_SUPABASE_ANON_KEYservice_role secret key → SUPABASE_SERVICE_ROLE_KEY (never expose this one to a browser)client_id → PLAID_CLIENT_IDSandbox secret → PLAID_SECRETPLAID_ENV=sandbox for now.Skip this entirely for now unless you specifically want to test automatic
transfer execution. The default manual_approval mode never calls Dwolla,
so DWOLLA_KEY/DWOLLA_SECRET can stay blank in .env.local and nothing
breaks (lib/dwolla.js builds its client lazily, only when actually
called).
If you do want to test it: go to
dashboard-sandbox.dwolla.com → sign
up for a sandbox account → Applications → default app → copy the Key
and Secret → DWOLLA_KEY / DWOLLA_SECRET → leave DWOLLA_ENV=sandbox →
set TRANSFER_EXECUTION_MODE=dwolla_auto. Note that identity verification
(collecting each user's SSN before Dwolla will move their money) was
removed from onboarding when manual-approval mode became the default --
re-adding that flow is required before dwolla_auto mode is usable with real
users, not just a config flip.
.env.example to .env.local and fill in every
value you collected above.openssl rand -hex 32 → PLAID_TOKEN_ENCRYPTION_KEY.npm install, then npm run dev, then open
http://localhost:3000.user_good,
password pass_good → Percentage Splits → Review) → land on the
Dashboard → seed a test deposit (see app/api/dev/seed-history for the
sandbox-only tooling that backfills realistic mock deposits) → check
Accounts or the Dashboard's "Transfers waiting on you" section for
the checklist PriorityPay generated. There's nothing to check in a
Dwolla dashboard -- nothing was sent anywhere, by design.If anything errors, the browser network tab + your terminal (npm run dev
logs) will show which API route failed and why — almost always a missing
or mistyped env var.
No GitHub repo needed for this — deploying straight from your machine via the Vercel CLI:
npm install -g vercel
vercel login
cd prioritypay-simple
vercel # first run: creates the project, links this folder to it
Then add every env var from .env.local to the Vercel project — either:
vercel env add PLAID_CLIENT_ID production (repeat per variable)Set NEXT_PUBLIC_APP_URL=https://prioritypay.co this time (not localhost).
Deploy for real:
vercel --prod
That gives you a live app on a *.vercel.app URL. Now point your domain at
it:
prioritypay.co.A
record to 76.76.21.21 and a CNAME for www, but use whatever Vercel
displays — it's specific to your setup).prioritypay.co is registered (GoDaddy, Namecheap,
Cloudflare, etc.), find DNS settings, add those records.prioritypay.co is now a real, working app — sign-up, bank linking, and split calculation all function end-to-end, using Plaid's sandbox (fake data, zero real money moved). You complete every transfer yourself; nothing here requires Dwolla to be configured at all.
Plaid production access is a coding-adjacent, not a coding, task:
Plaid — Dashboard → request Production access. You'll fill out a
company profile, a security questionnaire, and (as of this writing) a
Beneficial Owners section that needs a real person's information, not
something to fill in on someone else's behalf. Typically approved within a
couple of business days once submitted. Swap PLAID_ENV=sandbox →
production and the sandbox keys for production ones once approved.
PLAID_TOKEN_ENCRYPTION_KEY needs to be set in that environment too --
same key works fine, or generate a fresh one for production specifically.
Dwolla is not required to go live. The current product works and makes
money on real deposits without ever calling Dwolla, since manual_approval
mode is the default and PriorityPay never initiates a transfer. Only pursue
Dwolla production approval (registered legal business + EIN, Dwolla
Platform verification, and re-adding real identity verification to
onboarding) if and when you decide to build and ship automatic transfer
execution as a real feature -- treat it as a future project, not a launch
blocker.
Nothing else about the app changes for the Plaid cutover — same code, same database, just real credentials.
PROJECT_HANDOFF.md sections 4c and 5, and lib/tokenCrypto.js).lib/allocations.js and the same API routes is the natural path once
the web app is stable; budget real time for App Store / Play Store
review after that.Next.js 14 (App Router) · Supabase (Postgres + Auth) · Plaid · Dwolla (present in the codebase, inactive by default) · Stripe (billing) · Twilio (optional deposit SMS alerts) · Anthropic (optional Tax Strategy Advisor chat) · Tailwind · Recharts · lucide-react. No separate backend — API routes are the backend.