RsOpsHub.
My workbench, on the web.

A private operations hub for Reddit posts, Hacker News submissions, comments, replies, and the work I do every day — structured, searchable, in one place.

No signup. Owner and viewer access codes, rotatable any time.

rsopshub.local / w / tessl / content
Tessl
New

Content

Reddit, Hacker News, blog posts, and more — structured.

TableKanbanCalendarAnalytics
StatusView
TitleStatusPosted onImpressionsUpvotesCommentsSharesPublished
Why we rebuilt our agent loop on top of MCP
Reddit Post
Published@tessl-io1.2M18.4K2.3K4.1KJun 25
Open models are making Sonnet comparisons less ridiculous
HN Post
Published@claudecode1.6M24.9K3.6K3.9KJun 24
The new Tessl review: now you decide what “good” looks like
Blog Post
Published@tessl842K9.1K1.2K980Jun 23
How we hit 10k stars without a marketing budget
Blog Post
Published@rohansrma498K12.6K3.4K2.7KJun 22
GLM 5.2 is now a better model than Sonnet on coding tasks
Reddit Post
Published@rohansrma233K7.1K290220Jun 21
The case for tiny models in 2026
Blog Post
Published@tessl-io612K7.4K8901.1KJun 21

What lives in here.

Everything I have been faking with spreadsheets, finally as proper records.

Content operations

Reddit posts, comments, replies, Hacker News submissions, blog and social posts — structured records with wins, challenges, learnings, follow-ups.

Analytics with context

Engagement trends, platform breakdowns, top performers — when there is enough data to be honest about it.

Unified calendar

Publishing schedule, deadlines, and a GitHub-style contribution heatmap of the work that actually shipped.

One inbox

Notion comments, Linear assignments, Sheets updates, and internal mentions — in a single triage view.

Owner-only writes

Only one person can create or edit. Everyone else gets a read-only view with action buttons hidden everywhere.

Read-only viewers

Share what I have shipped with a 16-character code. Viewers see the dashboard. They cannot break a thing.

Two doors. One workspace.

There is no public signup. You either sign in as the owner, or you use a read-only access code I shared with you.

If you are me.

Sign in with the email and passphrase set in the server environment. You can create, edit, archive, and connect integrations. Rotate credentials by editing one file and restarting.

Owner sign in

If you are a viewer.

Enter your email and the 16-character secret I shared with you. You can browse everything but cannot create, edit, or delete anything. Read-only, by design — good for sharing with colleagues.

Viewer access

Every thread, every post, every reply — structured.

Wins, learnings, follow-ups, metrics — captured as first-class fields. Not buried in a column labeled notes2.

rsopshub.local / content / all
TitleTypeStatusImpressionsUpvotes
Why we rebuilt our agent loop on top of MCPReddit PostPublished1.2M18.4K
Open models are making Sonnet comparisons less ridiculousHN PostPublished1.6M24.9K
The new Tessl review: now you decide what good looks likeBlog PostPublished842K9.1K
Built a tiny eval harness for tool-using agentsHN PostScheduled
How we hit 10k stars without a marketing budgetBlog PostPublished498K12.6K
The case for tiny models in 2026Blog PostPublished612K7.4K

Want your own RsOpsHub?

If you would like a private operations workspace like this set up for yourself, reach out to Rohan Sharma and we can figure it out together.

Contact Rohan Sharma

No signup. No OAuth. No reset link.

The whole app is built around the fact that I am the only person who can change anything. Everything below is how that is enforced.

01

Owner credentials live in env vars

OWNER_EMAIL and OWNER_PASSWORD are read from .env.local. Nothing about the owner is stored in the database.

02

Viewers need a 16-character code

Anyone you want to share with enters their email and the secret code you set. Wrong code, no access.

03

Rotate by editing one file

Change OWNER_PASSWORD or VIEWER_ACCESS_CODE in .env.local and restart. Every old session dies instantly.

04

Every login is slow on purpose

scrypt hashing, timing-safe comparison, and a 250 ms delay on each attempt. Brute force is not a real plan against this.