About 2do | !2do

A production-grade, open-source Kanban task manager. Built to be clean, fast, and honest about the hardest part of productivity: deciding what not to work on.

Built by

Nirajan Karki

Nirajan Karki

Full-stack developer. Building things that are useful, fast, and honest.

Design principles

The !2do column

Most todo apps only have "done". 2do | !2do adds a column for tasks you consciously decide NOT to do — the guard rail that protects your focus.

Opinionated simplicity

No recurring tasks, no project hierarchy, no team workspaces. Just four statuses, three priorities, and one board. Constraints breed clarity.

Security first

bcrypt hashing, HTTPS-only JWT cookies, CSP headers, rate-limited endpoints, and Supabase RLS. Security is not an afterthought.

Free / Pro without friction

Free accounts can view and reorder. Pro unlocks full CRUD. During beta, Pro is activated manually — zero payment friction while we iterate.

Tech stack

Next.js 16 (App Router)

React Server Components, Server Actions, and the App Router for a fast, secure full-stack experience.

Supabase (PostgreSQL)

Managed Postgres with Row-Level Security policies, Supabase Storage for files, and a service-role admin client.

NextAuth.js v4

Multi-provider auth — Google OAuth, magic-link email, and credential (email + password). JWT sessions with 30-day TTL.

Tailwind CSS v4

Semantic design tokens, dark/light theme via CSS variables, and a Fragment Mono monospaced type system.

Framer Motion + @dnd-kit

Fluid animations on every interaction. Drag-and-drop Kanban with optimistic updates and server-side persistence.

TypeScript & React 19

End-to-end type safety from DB schema to React components. Custom hooks, server actions, and strict TypeScript config.