u/False_Staff4556

14 months building a self-hosted Slack + Notion + Linear + Zoom replacement. Shipped v2 today with GitHub sync, webhooks, and admin archiving. Here's what I learned.

Been building OneCamp in public for about 14 months now. It's a self-hosted all-in-one workspace. Chat, tasks, docs, video calls, calendar, AI assistant. Your server, one-time payment, no per-seat fees.

Shipped v2 today. Here's what's new and what building it actually taught me.

What's new in v2

GitHub bi-directional sync. Admins connect their GitHub org via OAuth. Repos get linked to projects. Issues and PRs import as tasks. Webhooks flow both ways with per-link HMAC secrets and delivery deduplication via postgres to prevent double-processing. Automation rules let you map GitHub labels to OneCamp task statuses automatically.

Slack-compatible incoming webhooks. I reverse-engineered the Slack webhook spec so any tool that already posts to Slack can post to OneCamp without code changes. URL verification challenge, HMAC v1 timestamped signatures, slash commands, block rendering. Outgoing webhooks fire on events like task status changes, channel creation, user joins.

Admin archiving. Policy-based with configurable retention, per-entity-type jobs, full undo history, and Redis-backed rate limiting to prevent runaway jobs. Admins can restore individual items or roll back an entire archive job.

Full UI redesign. Cut a lot of visual noise from the old design. Much cleaner.

What building this actually taught me

The hardest part was not the code. It was resisting the urge to keep adding features instead of shipping. I probably have 3 months of "almost done" features I still haven't shipped because I kept rebuilding them.

The second hardest part was the real-time layer. Getting MQTT, Yjs CRDTs, and LiveKit to all coexist without stepping on each other took way longer than I expected. Especially collaborative doc editing, where the WebSocket from Hocuspocus and the MQTT pub/sub messages needed very different conflict resolution strategies.

The thing I'm most proud of is the AI layer. It uses RAG with OpenSearch embeddings, SSE streaming, per-user rate limiting, a circuit breaker, and session memory. The "Catch Me Up" feature that summarizes what happened in a channel while you were away is something I use every single day myself now.

Current state

Live demo: https://onecamp.onemana.dev Product: https://onemana.dev/onecamp-product Frontend OSS: https://github.com/OneMana-Soft/OneCamp-fe One-time price: Rs 1499 ($19) lifetime

Stack for anyone curious: Go (Chi) + PostgreSQL + Redis + OpenSearch + Dgraph + LiveKit + EMQX (MQTT) + Hocuspocus + Next.js 16 + React 19 + Redux Toolkit + Tiptap

What I'm building next: proper mobile app (currently PWA with push notifications), better onboarding flow, and a hosted cloud option for teams that don't want to self-host.

If anyone's building something similar or has questions about any of the architecture decisions, happy to get into the weeds.

reddit.com
u/False_Staff4556 — 8 hours ago

I spent a year building a self-hosted alternative to Slack + Notion + Linear + Zoom combined. Just shipped a big v2 update.

Hey r/sideprojects,

About 14 months ago I got fed up paying 5 separate SaaS bills for tools that don't talk to each other. Slack for chat, Jira for tasks, Notion for docs, Zoom for calls, Google Calendar for events. My brain was literally the integration layer between all of them.

So I built OneCamp. A self-hosted, all-in-one workspace you run on your own server.

What it does:

  • Real-time chat (channels, DMs, groups, threads, reactions, file sharing)
  • Kanban project management (subtasks, assignees, due dates, drag and drop)
  • HD video calls with recording and live transcription
  • Collaborative docs (real-time editing, think Notion but self-hosted)
  • Unified calendar (tasks and events in one view)
  • Local AI assistant (ask questions, summarize chats, create tasks from conversation)
  • Mobile PWA with push notifications

The v2 update I just shipped adds:

GitHub bi-directional sync. You link a repo to a project and issues/PRs become tasks automatically. Change a task status in OneCamp, it reflects on GitHub. Full automation rules per repo.

Slack-compatible webhooks. Incoming and outgoing, with HMAC v1 signing. Any tool that can send a Slack webhook can now post into OneCamp channels, DMs, or group chats.

Admin archiving system. Policy-based archiving with full undo history, job logs, and Redis-backed rate limiting. Built for teams that need compliance-level control over data lifecycle.

Redesigned UI. The whole frontend got cleaned up. Less clutter, better information hierarchy.

It runs entirely in Docker Compose, one command. One-time payment, no per-seat fees, no subscription.

Live demo if you want to poke around: https://onecamp.onemana.dev Product page: https://onemana.dev/onecamp-product Frontend is open source: https://github.com/OneMana-Soft/OneCamp-fe

Happy to answer any questions about the architecture or the build process. The tech stack is Go + PostgreSQL + Redis + OpenSearch + Dgraph + LiveKit + MQTT + Next.js 16 if anyone's curious about specific decisions.

reddit.com
u/False_Staff4556 — 8 hours ago

Added GitHub sync, webhooks, and admin archiving to my self-hosted team workspace - now it actually plays nice with the rest of your stack

Been building OneCamp - a self-hosted all-in-one workspace (chat, tasks, docs, video calls, local AI) that deploys with a single Docker Compose command. Just shipped three things I've been putting off for a while.

GitHub integration Incoming webhooks from GitHub sync issues directly to OneCamp tasks. HMAC signature validation, loop prevention via last_synced_at so OneCamp's own outgoing syncs don't cause cycles, user assignment mapping, and real-time frontend updates over MQTT. You can also configure automation rules — e.g. auto-create a task when a PR is opened.

Generic incoming + outgoing webhooks Incoming: token-secured endpoint, Slack-style signature verification + challenge handshake, rich block rendering, and routing to specific channels or DMs via payload fields. Outgoing: any event (post.created, task.status_changed, etc.) triggers a dispatch - HMAC-signed payload, configurable target URL, retry logic, and delivery logs in the admin UI.

Admin archiving Policy-based archiving with retention durations, mutex + DB-level locking to prevent concurrent job collisions, background job queue, and an undo function for recently archived content. The dashboard auto-polls every 3s when a job is running.

Still solo, still self-funded. The project is open source (frontend on GitHub) and the full product is live at onemana.dev.

Happy to answer questions about the architecture - especially the MQTT-based real-time sync or the archive job locking approach if anyone's curious.

reddit.com
u/False_Staff4556 — 7 days ago

Getting from 0 to 1 paying customer is the hardest thing I've ever done. Last month (in April), I finally crossed that line and got my first two sales for OneCamp.

OneCamp is a unified workspace (Chat, Tasks, Docs, Video) that you self-host via Docker.

While building this, I had to make a huge decision on pricing. Everyone says "charge a monthly subscription," but I realized my target audience—the self-hosted community—hates subscriptions. They want to own their data and their software.

The Open Core Model: Instead of a SaaS, I decided on this model:

  1. The Frontend is 100% Open Source: Built in Next.js 16. It acts as a marketing engine and builds trust (just hit 50 stars on GitHub!).
  2. The Backend is Proprietary: Built in Go. I sell the compiled binary for a flat, one-time fee of $19.

The Pros of this model:

  • Instant trust. Users can see the FE code.
  • No hosting costs for me. Users pay for their own AWS/DigitalOcean servers.
  • Extremely high conversion when people realize $19 replaces $150/mo in Slack bills.

The Cons (Where I need advice):

  • $19 is arguably way too cheap for B2B software. Some people have told me that pricing it this low makes it look like a "toy" to enterprise buyers, and that I should raise it to $99.

I’m currently debating if I should introduce a $99 "Pro" tier with priority support, or just raise the base price entirely now that I have market validation from these first 2 sales.

Has anyone here transitioned from a cheap lifetime deal to a higher-priced B2B tier? How did the community react?

(Link to the project in the comments if anyone wants to see the landing page!)

reddit.com
u/False_Staff4556 — 21 days ago

Started building OneCamp in public about 2 months ago. Here's where things stand:

⭐ 50+ GitHub stars

💰 2 paying customers ($29 total revenue)

📦 All organic - no ads, no paid promotion

What is it?

OneCamp is a self-hosted all-in-one workspace - chat, tasks, docs, video calls, calendar, and local AI - that deploys with a single Docker Compose file. One-time lifetime price, no subscriptions.

The idea: people are tired of paying $50+/month across Slack, Notion, Asana, Zoom. Self-host it once, own it forever.

What's working

- Organic Reddit + Twitter discovery

- Build-in-public content

- The "no subscriptions" angle resonates hard

What's hard

- Distribution as a solo founder is brutally slow

- Self-hosted products have a narrower audience

Still early, but shipping every week. Happy to answer questions.

GitHub: github.com/OneMana-Soft/OneCamp-fe

Site: onemana.dev

reddit.com
u/False_Staff4556 — 23 days ago
▲ 2 r/buildinpublic+1 crossposts

Started building OneCamp in public about 2 months ago. Here's where things stand:

⭐ 50+ GitHub stars

💰 2 paying customers ($29 total revenue)

📦 All organic - no ads, no paid promotion

**What is it?**

OneCamp is a self-hosted all-in-one workspace - chat, tasks, docs, video calls, calendar, and local AI - that deploys with a single Docker Compose file. One-time lifetime price, no subscriptions.

The idea: people are tired of paying $50+/month across Slack, Notion, Asana, Zoom. Self-host it once, own it forever.

**What's working**

- Organic Reddit + Twitter discovery

- Build-in-public content

- The "no subscriptions" angle resonates hard

**What's hard**

- Distribution as a solo founder is brutally slow

- Self-hosted products have a narrower audience

Still early, but shipping every week. Happy to answer questions.

GitHub: github.com/OneMana-Soft/OneCamp-fe

Site: onemana.dev

u/False_Staff4556 — 23 days ago