尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证A FIRE financial independence calculator and tracker
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
UntilFire is a Next.js app for FIRE planning: a public calculator/wizard, SEO learning pages, and a logged-in dashboard for cashflow, assets, liabilities, and freedom-date planning.
Start with project memory, current direction,
and the decision log. This repo is the single maintained home
for public-safe project knowledge as well as code. Read why a choice was made
before changing it; update the relevant docs in the same PR.查看完整 README ↗UntilFire is a Next.js app for FIRE planning: a public calculator/wizard, SEO learning pages, and a logged-in dashboard for cashflow, assets, liabilities, and freedom-date planning.
Live site: untilfire.com
Start with project memory, current direction, and the decision log. This repo is the single maintained home for public-safe project knowledge as well as code. Read why a choice was made before changing it; update the relevant docs in the same PR.
The old Obsidian vault is retained as historical source material. Both branches were reconciled in the migration record; normal work no longer requires a separate vault read or update.
app/api/categorise/route.ts for the current providerapp/api/email/ and lib/email-send.tsapp/ — Next.js App Router routes and route handlersapp/page.tsx — public landing page and calculator wizardapp/dashboard/ — authenticated dashboard tabs and dashboard componentsapp/components/landing/ — landing-page UI componentsapp/fire-number/[city-slug]/ — city SEO landing pagesapp/learn/ — public learning hub and article routesapp/calculators/ — standalone calculator hubapp/api/ — API routes for waitlist, Stripe, Plaid, feedback, AI categorisation (/api/categorise), and related server worklib/ — shared FIRE logic, Supabase helpers, Plaid helpers, journey/localStorage helpers, and positioning constantsscripts/ — repo validation utilitieslib/fire/index.ts — FIRE engine surface and recommendationslib/fire-data.ts — city data and tax/FIRE helperslib/fire/strategies/traditional.ts — core FIRE projection strategylib/supabase.ts — Supabase client helpers and subscription gatinglib/journey.ts — calculator prefill and localStorage helperslib/positioning.ts — reusable anchor marketing copy constantsapp/globals.css — global design tokens and component classes.env.example — required environment variable names, without secretsnpm install
cp .env.example .env.local
npm run dev
Development server:
http://localhost:3000
Copy .env.example to .env.local and fill values locally or in Vercel.
Current variable names:
NEXT_PUBLIC_SUPABASE_URL
NEXT_PUBLIC_SUPABASE_ANON_KEY
SUPABASE_SERVICE_ROLE_KEY
STRIPE_SECRET_KEY
STRIPE_WEBHOOK_SECRET
NEXT_PUBLIC_POSTHOG_KEY
NEXT_PUBLIC_POSTHOG_HOST
ANTHROPIC_API_KEY
RESEND_API_KEY
FEEDBACK_TO_EMAIL
LOOPS_API_KEY
PLAID_CLIENT_ID
PLAID_SECRET
PLAID_ENV
NEXT_PUBLIC_EMAIL_SIGNIN # "on" adds email-code sign-in; needs Supabase SMTP + code template first (D-18)
Do not commit real secrets, tokens, passwords, API keys, webhook secrets, or connection strings.
npm run dev # start Next.js dev server
npm run build # production build
npm run start # start production server after build
npm run lint # eslint .
npm run typecheck # next build + tsc --noEmit
npm run test:seo # verify SEO config
npm run validate # typecheck + lint + build
Pushing to main deploys through Vercel.
Before pushing code changes:
origin/main.AGENTS.md for relevant verification; docs-only changes need reference
checks and git diff --check, while broad/risky code changes need npm run validate.Keep code, setup, agent instructions, current design/feature contracts, roadmap, changelog, and public-safe product direction and decision rationale here. Link historical material instead of maintaining competing current summaries.
Keep credentials, raw personal feedback, respondent portfolios, private contact lists and sensitive business data out of the public repo. The old vault has not been deleted, merged, or configured as read-only by this documentation change.