LogicBisonLogicBison
Work
Back to Work
Tools Project — Self-Hosted Project Management Hub
Platform Engineering
Production

Tools Project — Self-Hosted Project Management Hub

A Linear/Jira alternative with CRM, Kanban, and GitHub sync — replacing four SaaS tools with one self-hosted platform

Next.js 16FastAPIPostgreSQL 16SQLAlchemyDocker
4+
SaaS tools replaced
21
Database tables
20
Router modules
14
Service modules
No Redis, no Celery
External deps
4 + per-client ACL
RBAC tiers

Most growing teams stitch together Jira for tickets, Linear for tasks, HubSpot for CRM, and Notion for docs — each with its own auth, its own data model, and its own monthly bill. The fragmentation creates context-switching, data silos, and escalating cost.

I built a single self-hosted platform that replaces all of it: one FastAPI backend with 20 router modules and 14 service modules, one PostgreSQL database with 21 tables, one Next.js frontend — and deliberately no Redis, no Celery, no message queue.

The Problem

The team was paying for and context-switching between four SaaS tools to manage projects, tasks, support tickets, and client relationships. Each had its own authentication, its own data model, and limits on customization: you couldn't add GitHub commit cross-references to a support ticket, or automatically promote a won prospect to a client record with granular project access controls.

For a team that wanted to own its data, the SaaS fragments were also a sovereignty problem — the operational memory of the company lived across four vendors.

The Approach

A deliberately monolithic-by-service, modular-by-module architecture. FastAPI backend (20 routers, 14 service modules), PostgreSQL 16 (21 tables, idempotent versioned SQL files — no Alembic), Next.js 16 with the App Router.

The architectural decisions that did the heavy lifting:
- Dual-mode auth — local email/password via bcrypt + JWT, and OAuth/SSO via PKCE — without Redis. Signed PKCE state tokens live in HTTP-only cookies.

- Polymorphic activity feed with @mention parsing and idempotent upserts.

- Atomic human-readable refs ('PRJ-123', 'PRJ-T-45') generated via PostgreSQL 'UPDATE...RETURNING' counters.

- 4-tier RBAC (owner, maintainer, contributor, viewer) plus a separate granular client-access model.

- GitHub integration with encrypted PAT storage (Fernet symmetric encryption) and a background asyncio poll loop for commit sync — no Celery, no Redis.

- MIME sniffing on file uploads (inspect leading bytes, never trust Content-Type headers).

- Caddy reverse proxy routing API ('/v1/*', '/healthz') vs web (everything else).

- Multi-stage Docker builds running as a non-root user in production.

The Outcome

A production-ready internal operations platform that replaced 4+ SaaS tools with a single self-hosted solution:

  • Project management with Kanban boards, components, and subtasks.
  • Support ticket queues with SLA tracking and queue routing.
  • A complete CRM pipeline from prospect targeting through won-to-client promotion.
  • A client portal with granular per-project access controls.
  • GitHub integration with automatic commit sync and cross-referencing to tasks/tickets.
  • A user inbox for quick capture with triage-to-task/ticket workflow.
  • Global stats and pipeline analytics with Excel export.
  • Both dev and production Docker Compose profiles with healthchecks on every service.

See it live

This isn't a screenshot. This is the actual app — running in production, right now. Log in and browse the project, tasks, activity feed, and client portal view.

See it live
Passnorealpass12345

Read-only credentials — no risk, no signup, no commitment.

Key Takeaway

A well-designed PostgreSQL monolith with modular routers, asyncio, and idempotent SQL can replace an entire SaaS stack — without Redis, without Celery, and without the operational tax of each thing you add.

Ready to Build Your Platform?

One 30-minute call to see if we're a fit. No pitch. No pressure. Just a conversation about what you need to build.

Most engagements start with a bounded architecture diagnostic: $5,000 to $12,000, 1 to 3 weeks. Fixed-price platform builds: $20,000 to $80,000, milestone-gated, 50% deposit. Fractional CTO: $6,000 to $10,000 per month, 90-day minimum.