All Projects
In ProductionSolo Engineer & ArchitectFlagship · Advanced

SP Manager

AI-powered project management for engineering teams.

SPManager automates the hardest parts of project delivery — requirement analysis, task assignment, and progress tracking — so teams can focus on building instead of managing.

Live Demo
SP Manager

The Story

Why this exists.

The Problem

Engineering teams spend 20–30% of their time on project management overhead — writing tasks, assigning work, chasing status updates. Most PM tools make this worse, not better.

Why It Matters

Every hour a senior engineer spends in status meetings or updating Jira tickets is an hour not spent building. AI-driven project management is the only way to scale delivery without scaling headcount.

The Solution

SPManager uses RAG to analyse requirements and auto-generate structured tasks, a skill-graph to assign work to the right engineer, and real-time Socket.io sync so everyone sees the same board state.

Product Features

What it does.

AI Requirement Analysis

Paste a requirements document — SPManager extracts tasks, acceptance criteria, dependencies, and effort estimates using a RAG pipeline over your project context.

AI Requirement Analysis

Skill-Based Task Assignment

A graph of team skills and current workload surfaces the optimal assignee for every task. No more 'who should do this?' in Slack.

Real-Time Board Sync

Socket.io ensures all board changes propagate to every team member within 50ms — no page refresh, no stale state.

Real-Time Board Sync

Velocity & Burndown

Automatic sprint velocity tracking and burndown chart generation — no manual data entry required.

GitHub Integration

Link PRs and commits to tasks automatically. Task status updates when a linked PR is merged.

System Architecture

How every layer connects.

Requirements → AI extraction → task graph → skill match → assigned task → real-time board update

FrontendNext.js + TypeScriptBoard UI, AI prompt interface, analytics dashboard
Real-TimeSocket.ioBidirectional event bus for live board sync
AI EngineRAG + Gemini APIRequirement analysis, task generation, context retrieval
StorageCloudflare R2File attachments, document uploads
DatabaseMongoDB AtlasProjects, tasks, users, skill graph
IntegrationGitHub APIPR/commit linking, status webhooks
DeploymentVercel + RailwayNext.js on Vercel, Socket server on Railway

Technical Deep Dive

Under the hood.

RAG-Based Requirement Analysis

When a user pastes requirements, the system chunks the text, embeds each chunk using text-embedding-004, and retrieves the most relevant prior tasks and project context from the vector store. This context is injected into the Gemini prompt alongside the new requirements. The output is a structured JSON of tasks with title, description, acceptance criteria, estimated effort (S/M/L/XL), and dependency edges.

Skill Graph Assignment

Each team member has a weighted skill vector built from their commit history, past task labels, and self-declared expertise. When a new task is created, its required skills are extracted from the task description. A cosine similarity match between the task skill vector and each team member's profile returns a ranked list of candidates, adjusted for current workload.

Real-Time Consistency

The Socket.io server runs on Railway with a sticky session load balancer. All board mutations go through a command queue — each command is applied optimistically on the client and confirmed or rolled back by the server within one round-trip. Conflict resolution uses vector clocks per task.

// Server: apply command and broadcast
socket.on('task:move', async (cmd) => {
  const result = await applyCommand(cmd);
  if (result.ok) {
    io.to(cmd.projectId).emit('task:moved', result.task);
  } else {
    socket.emit('task:rollback', { id: cmd.taskId, state: result.current });
  }
});

Engineering Decisions

Challenge → Decision → Result.

Monolith vs. separate Socket.io server

Decision

Separate Socket.io server on Railway

Why

Next.js serverless functions can't hold persistent WebSocket connections — needed a long-running process.

Result

Clean separation of concerns, independently scalable.

Vector search — Pinecone vs. MongoDB Atlas Vector Search

Decision

MongoDB Atlas Vector Search

Why

Already using MongoDB for task data — keeping vector search in the same cluster avoids cross-service latency and cost.

Result

Embedding retrieval < 30ms, zero additional service.

Task assignment — rule-based vs. ML-based

Decision

Cosine similarity on skill vectors

Why

ML models need training data we don't have early on. Skill vectors from commit/task history give a good enough signal immediately.

Result

Assignment quality rated 4.2/5 in internal review.

Performance & Scale

By the numbers.

< 4sTask Generation Timeper requirements document
< 50msBoard Sync LatencySocket.io round-trip
87%Assignment Accuracyvs. manual assignment baseline
< 30msEmbedding Retrievalvector search, 50K tasks

Deployment & Infrastructure

Production setup.

Deployment

Next.js frontend on Vercel Edge CDN. Socket.io server on Railway with sticky sessions. MongoDB Atlas M10 cluster in us-east-1. Cloudflare R2 for file storage.

CI/CD

GitHub Actions — type-check + lint on PR, E2E Playwright tests on merge to main, auto-deploy on green CI.

Monitoring

Vercel Analytics + Web Vitals. Railway metrics for Socket server CPU/memory. MongoDB Atlas Performance Advisor for slow queries.

Challenges & Failures

What broke — and how I fixed it.

Challenge

RAG context window overflow on very large requirements documents.

Fix

Added a sliding-window chunker with overlap and a relevance threshold to cap retrieved context at 6,000 tokens.

Challenge

Socket.io reconnection triggering duplicate task creation events.

Fix

Idempotency keys on every command — server deduplicates within a 30-second window.

What I Learned

Key takeaways.

Future Roadmap

Where this is going.

v2.0 — Q4 2026

  • Fine-grained RBAC — project admin, contributor, viewer roles
  • AI sprint planning — auto-populate sprint from backlog by velocity
  • Slack/Teams integration for task notifications

v3.0 — 2027

  • Multi-tenant SaaS with organisation isolation
  • AI retrospective generation from sprint data
  • Mobile app for async task updates

Screenshots

The product.

SPManager board view

Real-time Kanban board with AI-generated tasks

Requirement analysis

AI requirement → task extraction

Technology Stack

Built with.

Frontend

Next.jsTypeScript

Real-Time

Socket.io

AI/ML

Gemini API

Database

MongoDB Atlas

Storage

Cloudflare R2

Integration

GitHub API

Deployment

VercelRailway

Ready to dive in?

This isn't just a project.
It's a system I designed,
engineered, and shipped.

Live Demo ← All Projects