DEV Community

Cover image for How I Built a Full Helpdesk SaaS from Scratch as a Solo Developer
Titus Eddy
Titus Eddy

Posted on

How I Built a Full Helpdesk SaaS from Scratch as a Solo Developer

The Problem

I needed a helpdesk for a project. Zendesk wanted $55/agent/month. Freshdesk wasn't much better. As a developer I thought — I'll just build one. How hard can it be?
Several months later, ImaraDesk was born.
In this post I want to share the technical decisions, architecture choices and lessons learned building a full SaaS product solo.

The Stack

Backend: Django 5.0+ with Django REST Framework
Frontend: React with Vite
Database: PostgreSQL
Auth: JWT + 2FA implementation
Deployment: Docker

I chose Django because of its batteries-included approach — admin panel, ORM, migrations and authentication out of the box. React on the frontend for a snappy, modern UI.

The Modular Architecture
The most important technical decision I made was building ImaraDesk as a modular system. Each feature — tickets, knowledge base, assets, surveys, tasks — is an independent module that gets activated per workspace.
This means:

  • Clean separation of concerns
  • New businesses only activate what they need
  • Adding new modules doesn't break existing ones
  • Billing can eventually be per module or per agent

Each module lives in its own folder with its own models, views, serializers and routes.

The Hardest Parts

  1. Multi-tenancy Making sure one business never sees another business's data was the most critical and most stressful part. Every query is scoped to a workspace — one wrong filter and you have a data breach.
  2. SLA Tracking Calculating response and resolution times sounds simple. It isn't. Timezone handling, business hours, paused states — this took longer than I expected.
  3. Real-time notifications Getting email notifications to fire reliably for ticket updates required proper async task handling with Celery.

The Open Source Decision
The core version of ImaraDesk is fully open source on GitHub under AGPL license. Anyone can self-host it for free.
The cloud version at imaradesk.com is the commercial product. This is the open core model. Open source builds trust and community. The cloud product pays the bills.

What I Learned

Ship before you're ready — I kept adding features. At some point you just have to launch.
Documentation is harder than code — writing clear docs took almost as long as building features.
Modular architecture pays off — early investment in clean structure saves massive headaches later.
Solo doesn't mean alone — communities like dev.to, IndieHackers and GitHub stars kept me going.

What's Next

AI features in v2 — suggested replies, auto-tagging, sentiment detection
More integrations — Slack, WhatsApp, email piping
Mobile app

Try It

🔗 Cloud version: imaradesk.com
📖 Open source: github.com/imaradesk/imaradesk-os
📄 Docs: docs.imaradesk.com

I'd love feedback from the dev.to community — what would you add? What would make you self-host or switch from your current helpdesk tool?

Top comments (0)