dailyfocus
One focus per day, tasks, timer and reflection — no account, no backend to maintain.
git clone https://github.com/fernando-moretes/app-dailyfocus.gitListen to guide
generated on playGenerated only on first play
Powered by Amazon Polly + OmniVoice
DailyFocus is a Next.js and TypeScript productivity app that organizes the day in four moves — set one focus, break it into tasks, run timed work sessions and close with a short reflection — with no account, no backend and nothing to operate after deploy.
Why this repository exists
The question this project answers is not "how do I manage tasks?" — it's "what do I want finished when the day ends?". After years alternating between incidents, architecture reviews and meetings, I learned that the task list grows on its own; what does not grow on its own is the decision about which item matters today.
The tools I tried treat the list as the product. More items, projects, labels and integrations means better. In practice I spent more time organizing the list than executing the top item. And every integration was one more thing to maintain — one more token to rotate, one more sync to fail silently.
The central choice: a single focus per day. Tasks exist to serve that focus, the timer exists to protect execution blocks, and the end-of-day reflection exists to calibrate tomorrow's focus with what actually happened today. No nested projects, no calendar, no collaboration.
The engineering choice: the declared stack is Next.js, TypeScript and Tailwind CSS — and it stops there. No database, no queue, no identity provider. The cost I care about is not building the app over a weekend — it's maintaining, upgrading and fixing infrastructure for years. A static app published on Vercel has near-zero maintenance cost, and that is what keeps the project alive instead of abandoned.
What the app does
One day's cycle in DailyFocus
The app is a linear flow, not a project tree. Each stage feeds the next and the reflection closes the loop on the following day.
- Foco do dia · uma frase
- Tarefas · lista curta
- Timer Pomodoro · sessões cronometradas
- Reflexão · fim de dia
- Next.js + TypeScript · Tailwind CSS
Install and run
- 1
Clone the repository
Use the current org address:
git clone https://github.com/fernando-moretes/app-dailyfocus.git. The README still citesfernandofatech/dailyfocus; GitHub redirects, but the canonical path is the org's. - 2
Install dependencies with pnpm
pnpm installinside the directory. The project assumes pnpm; npm and yarn will probably work, but the lockfile I maintain is pnpm's — installing with another manager silently ignores the lockfile and you may end up with versions different from the ones I tested. - 3
Start the development server
pnpm devand openhttp://localhost:3000. There is no required environment variable and no external service to configure — if the page does not load, the problem is local (port in use or Node version), not a credential. - 4
Use the app the way it was designed
Write the day's focus in one sentence, add no more than fits in a day, run the timer for each block and close with the reflection before you leave. If you use it as an endless list it will feel thin — and that is deliberate.
- 5
Publish on Vercel if you want your own instance
Import the repository into Vercel with the Git integration; the Next.js preset detects the build with no configuration. Every push to the main branch becomes a deploy — there is no pipeline, secret or additional infrastructure to maintain.
git clone https://github.com/fernando-moretes/app-dailyfocus.git
cd app-dailyfocus
pnpm install
pnpm dev
# http://localhost:3000
# build de produção (o mesmo que a Vercel executa)
pnpm buildHow it works inside
Stack: Next.js with TypeScript and Tailwind CSS, all three declared in the README and confirmed by the repository's language breakdown (TypeScript, HTML, CSS, JavaScript). No server dependency is listed — which means all the planning, timing and reflection logic runs in the browser.
Timer: the model is Pomodoro — timed work blocks followed by a break. The operational consequence of running this on the client is well known: when the tab loses focus, some browsers throttle setInterval to save battery. A timer that trusts the interval alone drifts; a timer that computes remaining time from a start timestamp does not. That is the kind of detail that separates a demo stopwatch from one you use every day.
Day state: with no backend, state has to live on the device. That is an explicit trade-off, not an accidental limitation. You gain zero maintenance cost, zero personal data on a server of mine and zero network dependency for the app to open. You lose cross-device sync and long-term history — if you need those, this is not the right app, and I would rather say so here than promise what I did not build.
Deploy: Vercel's Git integration builds every push. No GitHub Actions, no secret, no runner. The README roadmap mentions expanding test coverage and documentation — that is honest: today the project is worth more for what it refuses to do than for the amount of code.
The README points to the old address
The README links cite github.com/fernandofatech/dailyfocus. The repository moved to the fernando-moretes org with the app- prefix. GitHub redirects the old clone, but a redirect is platform behavior, not a guarantee — if you reference this repository in automation, use fernando-moretes/app-dailyfocus.
Frequently asked questions
Do I need an account to use it?
No. Open dailyfocus.moretes.com and start. There is no identity provider in the stack and I do not plan to add one — every account is personal data to protect and a password-recovery flow to maintain.
Where does my data live?
In your browser. The app has no backend, so nothing leaves the device. The flip side: clearing site data wipes the day, and another device will not see what you planned here.
Why not integrate with a calendar or Todoist?
Because every integration is a token that expires, an API that changes version and a sync that fails without warning. The app's value is in being the place where only today's focus exists — integration brings back the endless list it exists to avoid.
Can I use the code in my own project?
Yes, it is MIT. Open an issue before a large PR — changes that add a backend or accounts go against the central decision and will probably not land in the main repository, but nothing stops a fork.
References
Who it is for — and who it is not for
Use DailyFocus when: you want a tool that fits in one day, do not need cross-device sync, and prefer an app that asks for no account and sends no notification. As an engineering reference, it shows Next.js with TypeScript and Tailwind published on Vercel at near-zero maintenance cost — the most important decision in the repository is not any feature — it's the refusal to have a backend. Do not use it when: you need long-term history, collaboration or integration with calendars and other lists. In those cases the problem is different, and the right answer is another tool, not a fork of this one.
Architecture, AWS, AI and market deep dives — straight to your inbox. Free.
No spam · unsubscribe anytime