尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗A calm, keyboard-first planner for your day. You type a task in one line (Review PR 15:30 ~45m !! #work) and it lands on a timeline with its time, duration, priority and tags already set.
Open any task to edit it as a sentence (day, time, duration, priority, tags), add steps and a note. Tick it to complete it, and use the two-step button to delete it.
The Line is the floating input that creates tasks. Write the title and add any of these, in any order:
| Write | Means | Example |
|---|---|---|
15:30, 3pm, 3:30pm | Starts at (the time stays in the title) | Call mum 6pm |
13:30 to 15:30, 1pm-3pm | A time range: sets the start and the duration | Workshop 9:00 to 11:30 |
~45m, ~2h | Lasts | Read ~2h |
!, !!, !!! | Priority: low, medium, high | Pay rent !!! |
#work, #work,home | One or more tags (up to 8) | Report #work |
today, tomorrow | The day (a time alone also means today) | run tomorrow 7:05 |
A line with no day and no time goes to the Inbox.
Requires Node.js 24 (the tests run the TypeScript sources directly with node --test), a MongoDB database (Atlas) and a Google OAuth client. There is one environment: local development uses the production database.
.env.example to .env.local and fill it in:
MONGODB_URI and MONGODB_DB: the Atlas connection string and database name.BETTER_AUTH_SECRET: a random secret, e.g. openssl rand -base64 32. Vercel can have its own; changing a secret signs out everyone using that URL.BETTER_AUTH_URL: http://localhost:3000 locally, https://<domain> in Vercel.GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET: a Google Cloud OAuth client (Web application) whose redirect URIs include <BETTER_AUTH_URL>/api/auth/callback/google for each URL above.npm run db:setup
npm i
npm run dev # http://localhost:3000, then Continue with Google at /login
npm test # domain and server tests (node --test); the MongoDB ones skip without MONGODB_URI_TEST
MONGODB_URI_TEST=mongodb://127.0.0.1:27017/better-tasks-test npm test # also runs the store contract on a local, throwaway MongoDB (never the real one: it creates and drops collections)
npm run lint
npm run build # needs the variables above (Next loads the route modules while building)
src/
app/ routes: landing, (app)/today|next|inbox|week, api/tasks
components/ds/ design system primitives
components/ui/ shadcn components adapted to the tokens
features/tasks/ domain (pure logic), server (MongoDB store, route logic), client (data hooks), components
features/auth/ Google log in, account button, session guard, safe ?next=
lib/ MongoDB client, Better Auth (server and client), the session
proxy.ts sends signed-out visitors to /login
scripts/
db-setup.mts the tasks validator and the indexes (npm run db:setup)
features/calendar/ the Week calendar (FullCalendar lives only here)
features/landing/ the landing page
docs/
ARCHITECTURE.md modules, decisions, design tokens and motion
SPEC.md the V1 implementation plan
SPEC-V1.1.md persistence and accounts
See docs/ARCHITECTURE.md for the full picture.
Next.js 16 (App Router) · React 19 · TypeScript · Tailwind CSS 4 · shadcn/ui on Radix · TanStack Query · FullCalendar 7 · Temporal polyfill · MongoDB · Better Auth
Made with ❤️ by Andres Gallego