DEV Community

Cristian Tala
Cristian Tala

Posted on

How I Manage 45 Daily Tasks with OpenClaw + NocoDB

Free project management is possible — and I'm not talking about limited freemium plans. I'm talking about a complete, self-hosted system with AI prioritization that replaces $100+/month tools. Here's how I do it.

The Problem: Expensive and Limited Project Management Software

I've used project managers for years. Asana, Linear, ClickUp, Notion... all good, but all expensive.

Real costs:

  • Linear: $8/user/month (basic), $14/month (pro) → $168/year minimum
  • Asana: $10.99/user/month → $132/year
  • ClickUp: $9/user/month → $108/year
  • Notion Projects: $10/month → $120/year

Multiply that by a team (even if it's just you + 2 people) and you're at $300-500/year.

And the problem isn't just cost. It's that none of them adapt 100% to how I work:

  • Can't automate prioritization with AI
  • Can't integrate with my AI agent (OpenClaw)
  • Can't customize the scoring logic
  • Data on third-party servers
  • API limitations

So I asked: What if I build my own free project management system?

The Solution: OpenClaw + NocoDB on My VPS

I have a VPS I already pay for ($20/month for my ENTIRE stack). Why not use it for project management too?

Complete stack:

  • NocoDB (visual database, Airtable alternative) → Free, self-hosted
  • OpenClaw (autonomous AI agent) → Free, open source
  • Python script (automatic prioritization) → Wrote it in 30 minutes

Additional cost: $0/month

And it's not just a table. NocoDB includes a Kanban view with drag & drop — I can drag tasks between columns (Backlog → In Progress → Done) exactly like Trello or Linear. It also has gallery views, forms, and calendar views. All without paying anything extra.

Features:

  • ✅ Task management (NocoDB UI)
  • ✅ Intelligent prioritization (Python script + AI)
  • ✅ Automatic assignment (OpenClaw analyzes projects)
  • ✅ Optimized daily plan (exactly 4 hours)
  • ✅ Impact categorization (Monetization > Customer Value > Growth > Tech Debt)
  • ✅ Data 100% under my control
  • ✅ Complete API without limits

How It Works: The Complete System

1. Database in NocoDB

Tasks table with fields:

Field Type Description
Task Text Short description
Project Text Which project it belongs to
Priority Select P0 (Critical), P1 (Important), P2 (Can Wait), P3 (Nice to Have)
Status Select Backlog, In Progress, Blocked, Done, Archived
Assignee Select AI agent, Me, Delegatable, TBD
Due Date Date Deadline
Category Select SEO, Content, Newsletter, Monetization, Course, etc.
Type Select 💰 Monetization, ❤️ Customer Value, 📈 Growth, 🔧 Tech Debt
Value (1-10) Number Expected impact
Effort Select 15 min, 30 min, 1 hour, 2-4 hours, 1 day, 1 week+
Notes Long text Additional context

NocoDB setup in 5 minutes:

version: '3'
services:
  nocodb:
    image: nocodb/nocodb:latest
    ports:
      - "8080:8080"
    environment:
      NC_DB: "pg://postgres:5432?u=nocodb&p=password&d=nocodb"
    volumes:
      - ./data:/usr/app/data
Enter fullscreen mode Exit fullscreen mode

2. Intelligent Prioritization Script

The heart of the system: a Python script that reads NocoDB and generates the 4-hour daily plan.

Scoring logic:

score = (value * priority_weight * type_multiplier) / effort_hours
Enter fullscreen mode Exit fullscreen mode

Weights:

  • Priority: P0 = 4x, P1 = 3x, P2 = 2x, P3 = 1x
  • Type: Monetization = 3x, Customer Value = 2.5x, Growth = 2x, Tech Debt = 1x
  • Overdue bonus: +0.5 per day late (max +5)

Why this works: It reflects my actual philosophy — revenue first, then happy users, then acquisition, then technical optimization. Not all tasks are equal. A P1 Monetization task (contacting sponsors) is worth MORE than a P0 Tech Debt task (updating an about page).

The complete script:

#!/usr/bin/env python3
"""
Daily Priority Planner - NocoDB
Score = (value * priority * type) / effort
Fills exactly 4 hours/day
"""

import requests
from datetime import datetime

NOCODB_URL = "https://nocodb.yourdomain.com"
PROJECT_ID = "your_project_id"
TABLE_ID = "your_table_id"
DAILY_MINUTES = 240  # 4 hours

EFFORT_MAP = {
    "15 min": 15,
    "30 min": 30,
    "1 hour": 60,
    "2-4 hours": 180,
    "1 day": 480,
    "1 week+": 2400,
}

PRIORITY_WEIGHT = {
    "P0 - Critical": 4,
    "P1 - Important": 3,
    "P2 - Can Wait": 2,
    "P3 - Nice to Have": 1,
}

TYPE_MULTIPLIER = {
    "💰 Monetization": 3.0,
    "❤️ Customer Value": 2.5,
    "📈 Growth": 2.0,
    "🔧 Tech Debt": 1.0,
}

def score_task(task):
    value = task.get("Value (1-10)", 5)
    priority = PRIORITY_WEIGHT.get(task.get("Priority", ""), 2)
    tipo = TYPE_MULTIPLIER.get(task.get("Type", ""), 1.5)
    effort_min = EFFORT_MAP.get(task.get("Effort", "2-4 hours"), 180)

    # Overdue bonus
    due = task.get("Due Date")
    bonus = 0
    if due:
        days_until = (datetime.strptime(due[:10], "%Y-%m-%d") - datetime.now()).days
        if days_until < 0:
            bonus = min(abs(days_until) * 0.5, 5)

    return ((value + bonus) * priority * tipo) / (effort_min / 60)

def build_plan(tasks, max_minutes=DAILY_MINUTES):
    scored = sorted([(score_task(t), t) for t in tasks], key=lambda x: -x[0])

    plan = []
    total = 0

    for score, task in scored:
        effort_min = EFFORT_MAP.get(task.get("Effort", "2-4 hours"), 180)
        if total + effort_min <= max_minutes:
            plan.append((score, task, effort_min))
            total += effort_min

    return plan, total
Enter fullscreen mode Exit fullscreen mode

Sample output (my actual daily plan):

📋 Daily Plan - Thursday (240 min / 240 min)

1. [P0] 📈 Growth Install Rank Math
   ⏱️ 30 min | Score: 176.0

2. [P0] 💰 Monetization Email outreach warm leads
   ⏱️ 1 hour | Score: 144.0

3. [P1] 📈 Growth Reindex blog in Google
   ⏱️ 15 min | Score: 120.0

4. [P1] 📈 Growth Schema Markup implementation
   ⏱️ 30 min | Score: 84.0

5. [P0] 🔧 Tech Debt Monitor community migration
   ⏱️ 30 min | Score: 72.0

🤖 AI: 180 min | 👤 Me: 60 min | 📊 Total: 240 min
Enter fullscreen mode Exit fullscreen mode

3. OpenClaw: My AI Agent

OpenClaw is an autonomous AI agent that:

  • Reads my projects (README.md, TODO.md files)
  • Extracts pending tasks
  • Automatically adds them to NocoDB
  • Categorizes them (Monetization, Customer Value, etc.)
  • Executes the tasks I assign to it

Real example: I told OpenClaw "Generate the task list in NocoDB. Remember to review prioritization carefully."

OpenClaw:

  • Scanned all my projects in ~/projects/
  • Found 11 missing tasks
  • Added them to NocoDB with automatic categorization
  • Updated the prioritization script
  • Showed me the daily plan

All in 3 minutes.

Without OpenClaw, this would have taken me 30-45 minutes manually.

Notion vs My System

Feature Notion ($10-18/mo) My System ($0/mo)
AI prioritization ❌ Manual ✅ Automatic (math score)
Project context ❌ Generic AI ✅ OpenClaw knows ALL context
Performance ⚠️ Slow with 100+ rows ✅ PostgreSQL (thousands of rows)
Automations ⚠️ Basic ✅ Arbitrary Python scripts
Self-hosted ❌ SaaS required ✅ 100% yours
Auto daily plan ❌ Doesn't exist ✅ Exactly 4h/day
AI agent integration ❌ No ✅ Direct read/write

When to use Notion: If your team is non-technical and needs wiki + project management in one. The UI is unbeatable for that.

When not to use Notion: If you're a technical founder who wants full control, AI integration, and doesn't want to pay $10-18/month for something you can have free.

Complete Stack Comparison

Feature Linear ($14/mo) Asana ($11/mo) My System ($0/mo)
Annual cost $168 $132 $0 (VPS already exists)
AI prioritization ❌ Manual ❌ Manual ✅ Script + OpenClaw
Custom logic ❌ Limited ❌ Limited ✅ 100% control
Self-hosted ❌ SaaS ❌ SaaS ✅ Yes
Auto daily plan ❌ No ❌ No ✅ Yes (4h exact)
Kanban view ✅ Native ✅ Board ✅ Drag & drop

Hosting Setup

For the VPS, I run:

  • NocoDB (task management)
  • Listmonk (newsletter)
  • n8n (automation)
  • PostgreSQL (shared DB)
  • Caddy (reverse proxy)
  • OpenClaw (AI agent)

Cost: ~$12/month for EVERYTHING

Equivalent SaaS:

  • Linear: $14/month
  • ConvertKit: $29/month (newsletter)
  • Zapier: $20/month (automation)
  • Total SaaS: $63/month

Savings: ~$51/month = $612/year

When NOT to Use This System

  • Non-technical team: If your team doesn't use terminal, Linear/Asana are better (polished UI)
  • No VPS: If you don't have a server, you need one — but a Hostinger VPS starts at $5.99/month, still cheaper than SaaS alternatives
  • Mobile-critical: My system is web-responsive but not a native app
  • No time for setup: 1 initial hour might be too much if you're in a rush

Conclusion: Is It Worth It?

Yes, if:

  • You're a technical founder
  • You have a VPS (or plan to get one)
  • You value control and customization
  • You want to integrate AI into your workflow

No, if:

  • Non-technical team
  • No time for initial setup
  • Mobile is 95% of your work
  • Budget isn't a concern

For me: Game changer. 45+ active tasks, 7 active projects, all done in 4 mathematically-prioritized hours/day.

And free.

Want to see this in action? Join Cágala, Aprende, Repite — where I share these setups in detail, including complete scripts and configurations.

📝 Originally published in Spanish at cristiantala.com

Top comments (0)