TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Refocus is split across two branches, two hosts, and two deploy targets. Do not mix them.
| What | Branch | Host | Platform |
|---|---|---|---|
| Marketing site + blog (Astro) | landing | refocus.co.in | Cloudflare Pages |
| Product app (Next.js) | test-dash (default) | dashboard.refocus.co.in | Vercel |
refocus.co.in → Astro (marketing/, branch: landing) → Cloudflare Pages
www.refocus.co.in → 301 → apex
dashboard.refocus.co.in → Next.js app (branch: test-dash) → Vercel
↳ / and /career permanently redirect to apex
The blog auto-publishes 3 English posts/day (ten community niches) + 1 rotating locale post (id → fil → vi) + 1 German post. CI skips image generation to save tokens. Those commits must not touch test-dash, or Vercel would redeploy the dashboard on every blog push. Marketing lives only on landing; the dashboard branch has no marketing/ folder.
Login/signup live on the dashboard host. The session cookie is scoped to .refocus.co.in (AUTH_COOKIE_DOMAIN) so the marketing site can detect a logged-in user and send them to /dashboard. Logout returns to the apex marketing site.
| Working on… | Checkout |
|---|---|
| Dashboard, APIs, auth, sessions, chat | test-dash |
| Landing page, careers, blog, SEO | landing |
git checkout test-dash # this repo clone on the default branch
git checkout landing # marketing site + blog content
Marketing (on landing): Astro static site, React islands, SEO blog with OpenAI-assisted posts.
test-dash)git checkout test-dash
.env.example to .env / .env.local and fill in values. Locally leave AUTH_COOKIE_DOMAIN unset. See .env.example for the full list.Minimum to boot:
MONGODB_URI=mongodb+srv://...
NEXTAUTH_SECRET=your-long-random-secret
NEXTAUTH_URL=http://localhost:3000
DAILY_API_KEY=...
DAILY_DOMAIN=your-subdomain.daily.co
npm install
npm run dev
npm run dev # development
npm run build # typecheck + production build
npm run start # production server after build
landing)git checkout landing
cd marketing
npm install
npm run dev # http://localhost:4321
npm run build # static output in dist/
npm run blog:new # generate one blog post (needs OPENAI_API_KEY)
Full details: marketing/README.md (only exists on the landing branch).
test-dash)| Variable | Production value |
|---|---|
NEXTAUTH_URL | https://dashboard.refocus.co.in |
AUTH_COOKIE_DOMAIN | .refocus.co.in |
NEXT_PUBLIC_SITE_URL | https://refocus.co.in |
Also set MongoDB, Daily, Firebase, Resend, Blob, etc. (see .env.example).
landing)| Variable | Purpose |
|---|---|
PUBLIC_APP_URL | https://dashboard.refocus.co.in (CTA / auth links) |
NEXTAUTH_SECRET | Same secret as the Next app (Pages Function verifies JWT) |
DASHBOARD_URL | https://dashboard.refocus.co.in (logged-in redirect target) |
| Secret | Purpose |
|---|---|
OPENAI_API_KEY | Blog post generation |
CLOUDFLARE_API_TOKEN | Pages deploy via Wrangler |
CLOUDFLARE_ACCOUNT_ID | Cloudflare account |
Optional repo variable: OPENAI_MODEL (defaults to gpt-4o-mini).
| Trigger | What happens |
|---|---|
Push to test-dash | Vercel rebuilds the dashboard |
Push to landing under marketing/ | GitHub Action builds Astro and deploys to Cloudflare Pages |
Daily niche crons (Auto-generate blog post) | Generates a post on landing, builds, deploys to Cloudflare — does not push to test-dash |
| Manual: Actions → “Auto-generate blog post” → Run workflow | Same as cron; optional topic input |
The blog workflow file lives on the default branch (test-dash) because GitHub only schedules from the default branch. The job always checks out and pushes to landing.
Workflow files:
.github/workflows/deploy-marketing.yml — on landing only; deploys marketing on pushmarketing/src/content/blog/ on landinghttps://refocus.co.in/blog and /blog/<slug>/sitemap.xml (includes posts)marketing/scripts/generate-post.mjs
OPENAI_API_KEY (repo-root .env locally, or GitHub secret in CI)POST /api/auth/register/auth/login (also Firebase Google)/api/chat/.../events)/api/session-requestsDAILY_API_KEY (server-only), DAILY_DOMAINSee CONTRIBUTING.md. In short: branch from test-dash for app work, from landing for marketing/blog work; open a PR against the correct base branch.