Skip to main content

Command Palette

Search for a command to run...

Day 8 of Demolishing My Stack of Unfinished Projects

CodeniTask — A Feature-Rich Productivity Suite with Next.js 16 and Real-Time Sync

Updated
6 min read
Day 8 of Demolishing My Stack of Unfinished Projects

You know that feeling when you have 15 browser tabs open, three different to-do apps running, a habit tracker that you forgot to check for a week, and a time tracker that's been running since yesterday? Yeah, me too. That's exactly why I built CodeniTask.

The Challenge: Productivity Tools Shouldn't Be Scattered

I've been there—switching between Notion for tasks, a separate habit tracker, another app for time tracking, and yet another for journaling. The cognitive load of context-switching between apps was ironically making me less productive. I needed something unified, fast, and secure.

But here's the kicker: CodeniTask wasn't born yesterday. This project had been sitting in my "started but never finished" pile for months. Half-implemented features, integration bugs, broken imports from my other productivity tool (ClickRise), and a UI that needed serious polish. Day 8 of my "Demolishing My Stack of Unfinished Projects" series was all about taking this ambitious productivity suite from "almost there" to "actually shipped."

The technical debt was real:

  • Subtask functionality was disabled due to bugs

  • Two-way sync between CodeniTask and ClickRise was broken

  • No demo experience for new users

  • Task creation UI needed refinement

  • Security vulnerabilities in dependencies (including React Server Components CVE)

The Solution: A Unified Productivity Platform with Real-Time Everything

CodeniTask combines four essential productivity tools into one cohesive platform:

1. Habit Tracking with Streak Monitoring

Because seeing that 47-day streak is the motivation you need to not break the chain.

2. Task Management with ClickRise Integration

Import projects, create tasks, and manage everything from a single inbox. The project selector lets you filter tasks by project, and you can even create ClickRise tasks and Bugginator bugs directly from CodeniTask.

3. Pomodoro-Style Time Tracking

Track your work sessions with full history. No more wondering where your day went.

4. Encrypted Daily Journaling

Your thoughts stay yours. End-to-end encryption ensures privacy.

Technical Details: Modern Stack, Real-Time Magic

The Core Tech Stack

Frontend:

  • Next.js 16 with React 19 — Leveraging the latest features including Server Components

  • Shadcn UI + Tailwind CSS — Beautiful, accessible components out of the box

  • dnd-kit — Drag-and-drop task reordering that actually feels smooth

  • Tiptap — Rich text editing for journal entries

  • React Hook Form + Zod — Type-safe form validation

Backend & Database:

  • Convex — Real-time database synchronization. When I mark a task complete, it updates instantly across all devices. No refresh needed.

  • Stack Auth — Secure authentication that just works

Security & Quality:

  • Implemented encryption for daily journal entries

  • Fixed React Server Components CVE vulnerabilities (PR #6)

  • Semantic versioning with automated releases

  • Comprehensive analytics tracking

The Breakthrough Moments

1. Re-enabling Subtasks

Subtasks were causing race conditions and state management headaches, so I'd disabled them. This week, I rewrote the subtask logic to work cleanly with local tasks:

feat: Re-enable subtask functionality for local tasks
feat: Add double-click to edit subtasks inline

Now you can double-click any subtask to rename it inline. Smooth UX, zero friction.

2. Two-Way Sync with ClickRise

The integration between CodeniTask and ClickRise was my white whale. Tasks created in one app needed to sync to the other, and marking tasks as complete should work bidirectionally. After fighting with the Convex mutations and handling edge cases around duplicate titles and project associations, I finally cracked it:

  • Detect projects automatically and add new projects to both systems

  • Mark tasks as completed from either platform

  • Handle broken imports gracefully using MCP (Model Context Protocol)

  • Smart duplicate handling: allow duplicate titles for completed tasks while preventing them for active ones

3. Demo Dashboard for First-Time Users

Nothing kills conversion like a blank dashboard. I built a fully interactive demo that showcases all features without requiring signup:

feat: Add fully interactive demo dashboard
feat: Add demo button to landing page and home link to demo banner

New users can click around, create demo tasks, test the Pomodoro timer, and see exactly what they're getting before committing.

4. Task Creation UX Overhaul

Creating tasks now intelligently detects your selected project and can create:

  • Regular CodeniTask tasks

  • ClickRise project tasks

  • Bugginator bug reports

All from the same unified interface. The project selector filters your inbox, giving you focused views when you need them.

Dependency Security

I merged PR #5 and #6 to bump Next.js from 16.0.1 to 16.0.10 and patch React Server Components CVE vulnerabilities. Security isn't glamorous, but it matters.

Results: A Productivity Suite That Actually Ships

Deployment: https://codenitask.vercel.app
Repository: https://github.com/codenificient/codenitask

The numbers tell the story:

  • 12 major milestones completed in one focused push

  • 10+ feature releases via semantic versioning

  • 3 critical PRs merged for security and stability

  • 100% functional demo experience

  • Real-time sync between multiple productivity platforms

What Got Built:

✅ Habit tracking with visual streak indicators
✅ Drag-and-drop task management with subtasks
✅ Pomodoro timer with session history
✅ Encrypted journal with rich text editing
✅ Two-way sync with ClickRise
✅ Project-based task filtering
✅ Interactive demo dashboard
✅ Mobile-responsive design
✅ Production-ready deployment on Vercel

Key Takeaways: Finishing What You Start

1. Integration Complexity Compounds Quickly

Two-way sync between platforms is deceptively hard. State management, race conditions, and edge cases multiply. I spent more time on integration logic than on any individual feature. The lesson? Design your data models with integration in mind from day one.

2. Demo Experiences Drive Conversion

Building that interactive demo was worth it. Letting users experience the full app without signup reduces friction dramatically. If you're building a SaaS, build the demo early.

3. Real-Time Sync Is a Game-Changer

Convex made real-time updates almost trivial. The developer experience is fantastic, and users notice instantly. No more "Did my change save?" anxiety.

4. Security Debt Sneaks Up on You

Those CVE notifications aren't optional. Taking time to patch dependencies and properly encrypt sensitive data (like journal entries) is non-negotiable.

5. Feature Flags Are Your Friend

I disabled subtasks when they were buggy rather than shipping broken features. Once I fixed the underlying issues, re-enabling them was straightforward. Ship stable, iterate fast.

Conclusion: One Less Project in the Pile

CodeniTask went from "promising but broken" to "actually useful" in one focused sprint. It's now my daily driver for habits, tasks, time tracking, and journaling. The real-time sync means I can start a task on my laptop and mark it complete on my phone without thinking about it.

If you're drowning in productivity apps or just curious about building real-time applications with Next.js 16 and Convex, check out the live demo at codenitask.vercel.app. The code is open source on GitHub.

What's your biggest productivity pain point? Are you using multiple tools that should really be one? Drop a comment—I'm always curious how other developers manage their workflow.

Day 8: Done. One more completed project. Let's keep the momentum going.


This is Day 8 of my "Demolishing My Stack of Unfinished Projects" series. Follow along as I finish what I started, one project at a time.

Tech Stack Summary

  • Framework: Next.js 16, React 19

  • Database: Convex (real-time sync)

  • Auth: Stack Auth

  • UI: Shadcn, Tailwind CSS

  • Features: dnd-kit, Tiptap, React Hook Form, Zod

  • Deployment: Vercel

Links: