Show HN: We built a permissions layer for Notion

My agency was bleeding $1,800/year on contractor Notion seats. The problem: I needed to give contractors access to specific data (CRM, project tracker) but couldn't let them see pricing, margins, or other clients' information.

Notion's native solution doesn't work:

Row-level filtering exists but it's view-only (contractors can't edit)

Column hiding doesn't exist

Guest sharing is read-only

So you either pay $15/mo per seat or duplicate databases (maintenance nightmare)

I built a permissions layer using Notion's OAuth API. It lets contractors see only specific rows and columns, edit data, all without expensive seats.

How it works:

Connect Notion via OAuth

Define roles: "Sales reps see only leads where owner = them, hide pricing column"

Contractors access a clean portal

They view/edit data in real-time (syncs every 5 minutes)

You pay $59/mo flat for unlimited users

The math:

5 contractors × $15/mo = $900/year wasted

20 contractors × $15/mo = $3,600/year wasted

50 contractors × $15/mo = $9,000/year wasted

With this: all of them = $59/mo flat.

Technical:

Frontend: React + TypeScript

Backend: Supabase + PostgreSQL (RLS)

Auth: Notion OAuth 2.0

Current state: 50 beta testers. First 20 customers get $49/month locked-in (launching at $79 after January).

Limitations:

Only Notion databases (not pages)

5-minute sync (not instant)

Requires role definition

No team permissions yet (roadmap)

The ask: If this solves a problem you have, we'd love feedback. Are there permission use cases we're missing? What's your price sensitivity?

Free trial: notionportals.com

12 points PEGHIN 9 months ago 7 comments

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton