All docs

Overview

rsopshub banner

RsOpsHub is the operating system for content and work. It is a self-hosted, single-owner workspace that pulls everything an indie operator, technical founder, or content-heavy team relies on into one place: drafted and published posts across Reddit / Hacker News / dev.to, blog drafts and analytics, live site traffic from PostHog and Cloudflare, project work in Linear, documents from Notion and Google Docs, spreadsheets from Drive, daily work logs, and a unified calendar that includes Google Meet meetings created right from the app. There is no public sign-up, no third-party SaaS sitting between you and your data, and no per-seat pricing. You install it once, point your integrations at it, and from then on your daily ops live inside one editorial-looking app you fully control.

The problem it solves

Most of the people I built this for already have a working stack — Notion for docs, Google Drive for spreadsheets and slides, Linear for engineering tickets, Reddit and Hacker News for community work, dev.to or a blog for writing, a Google calendar for meetings, and a notebook (literal or in their head) for daily todos. Each one is fine in isolation. Combined, they cost you twenty minutes a day just switching tabs, copying URLs, refreshing dashboards, and reconstructing yesterday's work for today's standup. RsOpsHub fixes that by mirroring the data you care about into one Postgres database, rendering it inside a single fast UI that knows your shape, and writing back to the source provider when it makes sense (creating a Linear issue, scheduling a Meet, archiving a sheet) so the original tools stay the system of record.

Who it's for

The single-owner shape is deliberate. There is exactly one owner per deployment, defined by OWNER_EMAIL + OWNER_PASSWORD in your environment. You then invite as many viewers as you want with a 16-character access code per workspace. Owners have full read / write; viewers are read-only by design. The model fits four shapes especially well:

  • Solo operator running their own startup, content brand, or side project who wants every signal in one place.
  • Founder + team where the founder owns ops and the team needs visibility into roadmaps, content cadence, and shipping rhythm without write access.
  • Agency lead who needs to share progress with clients in a clean read-only view per client (one workspace per client).
  • Internal tooling for a small team that doesn't want to pay enterprise tier prices on five different SaaS dashboards.

If you need multi-owner editing with role-based permissions, RsOpsHub is not the right tool — it intentionally trades the complexity of a multi-tenant identity system for the simplicity of one trusted owner.

The mental model

The application is organised around the workspace. A workspace is a self-contained world with its own access code, viewer roster, integration credentials, and data: every content record, task, work log, document, spreadsheet, calendar event, Linear issue, and notification belongs to exactly one workspace. Nothing is shared across workspaces — not even integrations — so you can run an "Acme client" workspace next to a "Personal" workspace and a "Side project" workspace and they never bleed into each other. The owner navigates between workspaces from the sidebar's workspace switcher; viewers see only the workspaces they have an active join for.

Within a workspace, the navigation maps to the way most operators actually think about their day: Home as the quick-glance dashboard, Content as the publishing log, Tasks as the local + Linear backlog, Work as the daily journal, Calendar as the unified time view, Documents and Sheets as the file mirrors, Analytics as the trend view, and Notifications as the inbox for everything that wants your attention. Each section is one page; you never have to drill three levels deep.

What's in a workspace

SectionPurpose
HomeToday's focus + activity heatmap
ContentReddit / HN / dev.to posts and comments + blog records
TasksLocal tasks alongside synced Linear issues
WorkDaily work log with AI-generated summaries
CalendarMonth / week view of scheduled + published content
DocumentsLocal notes + mirrored Notion pages + Google Docs
SheetsLocal files + Google Sheets
AnalyticsEngagement charts, referral traffic, PostHog + Cloudflare breakdown
NotificationsIn-app inbox for Linear, Google share offers, internal events
SettingsIdentity, access code, viewer joins, integration IDs
IntegrationsPer-workspace API keys + sync controls

Feature tour

Home

Personalised greeting, four KPI cards (Published, Scheduled, In draft, Impressions), today's focus list combining local tasks and Linear issues you own, a Meetings widget that lists upcoming Google Meet events with one-click Join links, a recent activity feed enriched with the actual content / task title (not just "Created a task"), and a year-long heatmap of work intensity computed from your task completions, Linear closures, and content publishes. The Meetings widget is also the entry point for creating a new Google Meet straight from the app — pick a time, invitees, optional description, and the event lands on your primary calendar with a Meet conference attached.

Content

A single editorial dashboard for every piece of content you have ever shipped. The Content page consolidates Reddit posts and comments (via your handle), Hacker News submissions and replies (via your handle), dev.to articles (full markdown body, page views, reactions, comments, organisation publication — pulled with your API key when available), and any other blog posts you add manually. You can switch between a sortable table view, a kanban board grouped by status (Idea / Draft / Scheduled / Published / Archived), and a calendar view that overlays content with meetings. Every row is editable: titles, status, body, tags, manual metrics. The integration sync is non-destructive — your manually-entered share counts on a public dev.to article are never overwritten by a refresh, because the API doesn't surface that field anyway.

Tasks

A two-tab layout. The Local tasks tab is a fast keyboard-driven list of tasks you've typed in yourself, with priority, due date, and status. The Linear tab is a synced view of your Linear issues with full board / list toggle, status filters, sub-issue navigation, comment threading with @-mention, and a side panel that mirrors Linear's own editor. Owners can create, edit, comment, archive, and template-save without leaving the app; viewers see the same data read-only so they can follow along.

Work tracker

A daily journal that combines a free-form summary, structured metrics (tasks shipped, content published, Linear closed, hours logged), and the heatmap. Each day's entry is generated automatically at 23:55 local time using OpenAI (if OPENAI_API_KEY is set) summarising the activity, but you can always type your own version — manual summaries are never overwritten by the cron. The auto-fill button reconstructs the day's metrics from the actual data on demand.

Calendar

Month or week view (toggle on the calendar page; the content page keeps month-only). Each day cell shows up to three content chips and two meeting chips, with overflow links and click-to-expand. Meetings come from Google Calendar (via OAuth); content comes from your publishing schedule. Owners can create new Google Meet calls; viewers can join existing ones.

Documents

Local rich-text notes, mirrored Notion pages, and Google Docs files side-by-side. Notion content is fetched on-demand and rendered inline (no need to switch tabs). Google Docs open inside an iframe using the /preview URL so viewers don't get stuck on Google's sign-in wall. Owners can pre-grant viewer access per document with a toggle.

Sheets

Local CSV / XLSX uploads (validated by mime + magic-bytes), Google Sheets via OAuth, plus any sheets shared with the connected Google account that surface as claim-able offers. Per-sheet share toggle works the same way as documents.

Analytics

Time-series charts per platform (impressions, upvotes, comments) plus a tasks-shipped line that merges local task completions with Linear issue closures. The date filter controls every chart at once. With PostHog connected, a Referral traffic chart shows which platform actually sent visitors.

The Detailed breakdown button on the traffic chart opens a live dashboard over PostHog and Cloudflare: pageviews and visitors over time, top pages, full URLs, referrers, UTM campaigns, countries, devices, browsers, OS, and custom events, plus a Cloudflare tab with requests, cache hit rate, bandwidth, threats, status codes, and TLS / protocol mix. Filter by path, source, country, or device, and click any URL to drill into exactly that page. See Integrations for the details.

AI assistant

A conversational layer over the whole app, launched from a floating button in the bottom-right (or ⌘/Ctrl + J). Tell it what you want — "add a task to prepare the Q3 investor update by next Friday", "show me analytics for the last three days", "turn on hour tracking" — and it executes the action, renders the result inline (task cards, charts, confirmation prompts), and only asks a follow-up when something genuinely can't be inferred. It's built on CopilotKit + AG-UI with a fully custom UI that matches the product, and it's owner-only since every action it can run is owner-gated. See AI Assistant for the architecture and how to extend it.

Notifications

A unified inbox for inbox-worthy signals across sources: Linear (assigned to you, status changed, mentioned), Google Docs / Sheets shared-with-me offers, internal viewer joins, system messages. Each row deep-links into the in-app view so a Linear notification opens the issue's side panel inside Tasks, not Linear's web app. Owners can mark read / unread / read-all.

Profile

Owners set a display name and avatar that viewers see at the top of /access and inside the sidebar of every workspace. Workspace list is presented with logos / emoji marks, click-to-open. Viewers always know whose hub they're inside.

Settings

Per-workspace identity (name, logo, slug, color, description), access code rotation, viewer roster with add / remove, integration IDs (Notion parent page, Google folder), and a Danger zone that demands the owner password before deleting a workspace.

Integrations

Per-workspace credentials for the providers that need it (Linear API key, dev.to API key, PostHog API key, Cloudflare API token, Google OAuth, dev.to / HN / Reddit handles). Global env-driven credentials for what's truly shared (Notion token, Google OAuth client, OpenAI key).

How it compares

Nothing else does exactly this, but plenty of tools overlap with a slice of it. They fall into four groups, and each one is excellent at its own slice:

  • Generic workspaces (Notion, Coda, ClickUp) store docs, tables, and tasks well. Content distribution, traffic, and daily ops are something you build yourself out of databases and paid add-ons.
  • Daily planners (Sunsama, Akiflow, Motion) pull tasks and calendars into one timeline. They know nothing about posts, metrics, or traffic, and they're built for one person, not for sharing with viewers.
  • Social schedulers (Buffer, Typefully, Hypefury, Publer) write and publish posts to X, LinkedIn, and friends. They stop at their own networks, so Reddit, Hacker News, and dev.to aren't covered, and the numbers never meet your task list or work log.
  • Web analytics (PostHog, Plausible, Cloudflare's own dashboard) tell you exactly who visited which URL. They have no idea which post sent the visitor or what you shipped that week.

RsOpsHub sits where those four overlap. It doesn't replace them. Linear, Notion, Google, PostHog, and Cloudflare stay the system of record, and RsOpsHub is the one screen that reads them all together and writes back where it makes sense.

In the tables below, yes means the workflow works end to end out of the box, partial means it's possible with a paid tier, an add-on, or a DIY setup, and no means it isn't there. The question is whether the workflow exists, not whether some half version of the feature ships.

At a glance

One table for the whole picture. The four tables after it break each row down into individual capabilities.

AreaRsOpsHubNotionClickUpSunsama / AkiflowBuffer / TypefullyPostHog / Plausible
Track Reddit, Hacker News, and dev.to posts with metricsyesnonononono
Write and auto-publish posts to social networksnonononoyesno
Tasks together with Linear issuesyespartialpartialyesnono
Daily work log and hours trackingyespartialpartialpartialnono
Calendar with in-app Google Meetyespartialpartialpartialpartialno
Docs and sheets (Notion, Google Docs, Google Sheets)yespartialpartialnonono
Referral traffic tied to the post that sent ityesnononopartialyes
URL-level analytics and Cloudflare edge datayesnonononopartial
Funnels, session replay, experimentsnononononoyes
AI assistant that acts on your datayesyesyesnopartialpartial
Read-only viewers with no per-seat costyespartialpartialnonopartial
Separate integration accounts per client workspaceyespartialpartialnopartialpartial
Self-hosted, data in your own Postgresyesnonononoyes
Pricing shapeyour own infraper seatper seatper userper channel / userusage or pageviews
Best atrunning content, work, and traffic from one screenteam wikis and docsteam project managementdaily planningscheduling social postsproduct analytics

Reading down the RsOpsHub column, the only "no" rows are things it deliberately leaves to other tools: it doesn't publish posts for you and it doesn't do product experimentation. Every other column has far more "no" and "partial" rows, because each of those tools is built around one slice.

Content and distribution

CapabilityRsOpsHubNotionClickUpSunsama / AkiflowBuffer / TypefullyPostHog / Plausible
Reddit and Hacker News posts + comments mirrored with metricsyesnonononono
dev.to articles mirrored with views, reactions, and commentsyesnonononono
Idea → draft → scheduled → published pipeline (table, kanban, calendar)yespartialpartialnoyesno
Add any post by pasting its linkyesnonononono
Writing and auto-publishing posts to social networksnonononoyesno

Work and planning

CapabilityRsOpsHubNotionClickUpSunsama / AkiflowBuffer / TypefullyPostHog / Plausible
Local tasks and Linear issues in one placeyespartialpartialyesnono
Full Linear editing (sub-issues, comments, templates) without leaving the appyesnonopartialnono
Daily work log written by AI from what actually happenedyespartialpartialpartialnono
Manual hours trackingyespartialyesyesnono
One calendar for content + meetings, Google Meet created in-appyespartialpartialpartialpartialno
Notion pages, Google Docs, and Google Sheets side by sideyespartialpartialnonono

Analytics

CapabilityRsOpsHubNotionClickUpSunsama / AkiflowBuffer / TypefullyPostHog / Plausible
Engagement charts across Reddit, HN, and dev.toyesnononopartialno
Referral traffic attributed to the platform that sent ityesnononopartialyes
URL-level drill-down (sources, countries, devices per page)yesnonononoyes
Cloudflare edge data (requests, cache, threats) next to product analyticsyesnonononono
Content metrics, site traffic, and shipped work on one timelineyesnonononono
Funnels, session replay, feature flags, experimentsnononononoyes

AI, sharing, and ownership

CapabilityRsOpsHubNotionClickUpSunsama / AkiflowBuffer / TypefullyPostHog / Plausible
AI assistant that acts on your data, not just writes textyesyesyesnopartialpartial
Read-only viewers with no per-seat costyespartialpartialnonopartial
Different integration accounts per client workspace, one loginyespartialpartialnopartialpartial
Self-hostable, data in your own Postgresyesnonononoyes
Pricing shapeyour own infraper seatper seatper userper channel / userusage or pageviews

When something else is the better pick

  • You need many people editing the same docs and wikis: use Notion.
  • You need sprints, Gantt charts, and permissions for a whole team of editors: use ClickUp or Linear directly.
  • You want a guided time-blocking ritual every morning: use Sunsama or Akiflow.
  • You want to write threads and have them published on a schedule: use Buffer or Typefully. RsOpsHub tracks what you published; it doesn't post for you.
  • You need funnels, session replay, or A/B tests: use PostHog itself. RsOpsHub reads PostHog and Cloudflare for the questions an operator asks every day, and links out to them for the deep product analytics.

Why the gap exists

None of this is laziness on the competitors' part; it's structural. A SaaS product has to serve every customer from one credential pool and one schema, so it can't let you plug a different Linear key, PostHog project, or Cloudflare zone into each client workspace, and it can't justify building first-class support for niche sources like Hacker News. It also has to charge per seat, so a read-only viewer either costs the same as an editor or doesn't exist. RsOpsHub skips both constraints because it's single-owner and self-hosted. The same architecture that limits it to one operator is what lets it ship the features the SaaS products can't.

The trade-offs

Honesty section. RsOpsHub is intentionally single-owner: there is no multi-tenant identity layer, no SSO, no row-level permissions inside a workspace beyond "owner / viewer". If you outgrow that, you outgrow the tool. It is also self-hosted: you bring your own Postgres, your own host, your own OAuth client. There is no cloud version, no marketplace, no plug-and-play install. And it's a personal-scale app — the in-memory rate limiter, the in-memory token cache, and the in-memory cron all assume a single server instance per deployment, which is the right shape for almost all individual operators and small teams but the wrong shape for genuinely high-traffic workloads.

How to get access

RsOpsHub is not available as a public download or a hosted SaaS. To get a deployment running for yourself or your team, reach out to the author Rohan Sharma at rohansrma.me — include a sentence on what you'd use it for and the size of your team, and you'll get the codebase, a setup walkthrough, and ongoing support.

If those trade-offs are fine and you've got access, keep reading. The Setup guide gets you from a clone to a running local dev server in under ten minutes.