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.
A virtual focus room for deep work and study, with a partner working alongside you. Focus mode mutes both mics so you're present, not performing. Free for early members.
ProductivityHTML · TypeScriptGitHub @PriyanshuShekhar10OnlineOwner 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
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full 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.