OakWiki
v1.4 just shipped · backlinks & graph view →

The team wiki that stays current.

OakWiki brings your scattered Google Docs and Notion-shaped chaos into one organised tree. Real-time presence, granular permissions, and writing tools that don’t fight you.

Browse templates
Free for unlimited pages No credit card Import from Notion / Confluence
AK
MV
JT
SP
☀ Read
Engineering
Architecture
Service map
Data model
Onboarding
Day 1 checklist
Local setup
RFCs
042 — Auth redesigndraft
041 — DB migration
040 — Caching
039 — Rate limits
Product
Q3 Roadmap
Customer interviews
Pricing decisions
People
Team handbook
Time off & leave
Meeting cadence
RFC Last edited 4 minutes ago · Edited by 3 people today

RFC 042 — Auth redesign

We need to rework the authentication flow because the current state has a hard time keeping up. The OAuth redirect chain on social login bounces through three middleware steps that don’t do anything useful, the session-fixation check is a hangover from 2019, and the password-reset email leaks the canonical user ID in the URL.

The plan is to collapse all of this into a single redirect-to-callback flow, drop the legacy session-fixation middleware, and switch password reset to short-lived signed tokens. We also want to take this chance to actually log what’s happening at each step — the current logging assumes everything works.

MV
Mikko2m
Should we also drop the cookie-domain rewrite? That’s the other 2019 thing.

Important — this affects all OAuth providers (Google, GitHub, Microsoft, Apple). Coordinate with Mikko before merging; each provider has slightly different callback semantics.

Scope

  • Audit the current redirect chain — document each middleware step Aino
  • Spec the new flow as a sequence diagram Aino
  • Implement the new callback handler in @/lib/auth Mikko · ETA Fri
  • Switch password-reset tokens to signed JWTs Jonas
  • QA across browsers + mobile Safari quirks Sara

What we’re replacing

# Current flow: 3 hops, no useful logging
GET /auth/oauth/provider/redirect    → bounces to provider
GET /auth/oauth/provider/callback    → middleware spaghetti
GET /auth/oauth/provider/finalize    → session-fixation check (legacy)
# ↓ new flow: 1 callback, structured logging
GET /auth/callback                       → one handler, one log line per step
Currently viewing · 4
AK
Aino
MV
Mikko
JT
Jonas
SP
Sara
12s
Activity
MV
Mikko commented on “single redirect-to-callback flow”2m ago
AK
Aino edited “What we’re replacing”4m ago
JT
Jonas opened RFC 04222m ago
AK
Aino marked “Audit the current redirect chain” done1h ago
SP
Sara linked RFC 041 from this page3h ago
Linked from
Q3 Roadmap · section 1.1
Onboarding — Local setup
Security review — 2026 Q2
used by teams at
Pinion Labs harbour.io Trasselsudd stack/seven Roundkey Castlefork
What's in the box

A wiki your team will actually open.

A small, considered surface: pages, links between them, real-time presence, and granular permissions. No marketplace, no 47 block types.

Page tree, not flat search

Organise pages into a real tree. Move them with drag, search with /, jump with breadcrumbs. The tree is the index.

Live presence, no nagging

See who’s on the page right now, where their cursor is, and whether they’re typing. No “5 unread comments” banner that turns into 47.

Permissions that follow the tree

Permissions inherit. Set “engineering can edit” on the Engineering folder, override on a sub-page if you need to. No clicking through 12 modals.

Bidirectional links

Link to a page; both sides know about it. The “Linked from” sidebar shows what references this page, no extra setup.

Imports from Notion + Confluence

Drop a Notion export or a Confluence space dump. The tree comes across, pages keep formatting, internal links rewrite themselves.

No AI sidebar

We don’t auto-summarise your pages, auto-write your meeting notes, or add a chatbot. The canvas is for your words. The product gets out of the way.

The writing experience

Writing that feels like writing.

Markdown-style keyboard shortcuts that just work. Headings, lists, code blocks, callouts, checklists, links. Slash command for blocks. No twelve-step formatting toolbar.

  • Markdown shortcuts — ## for h2, - [ ] for checklist, > for callouts
  • Slash command for any block; type to filter
  • Editor reads like a book — serif body, generous line height
  • Code blocks with real syntax highlighting
  • Embed live data from the URL of any other OakWiki page
page
Team handbook — how we run meetings
last edited 2 weeks ago · 12 contributors · 4-min read

The default for most things is async — write it down, let people respond in their own time, only escalate to a meeting if a decision needs to be made together.

If you do schedule a meeting, three rules: have an agenda in the doc, have a written outcome, and have it land on the right page in the wiki. That last one is what makes the wiki stay current — meetings become artefacts, not events.

Permissions

Granular, but not tedious.

Set permissions at the right level. They inherit down the tree. Override where you need to. Most teams set one rule and never touch it again.

Workspace

Everyone can read

Default for most teams. New hires don’t have to ask for access.

@everyone · can read
Folder

Engineering can edit

Set on the Engineering folder. Inherits to every page inside.

@engineering · can edit
Page

Reviewers only

Override on a specific page. Just the people you list can edit.

specific users · can edit
External

Public sharing (Pro)

Publish a single page to the world. Read-only, SEO-indexable.

link share · read-only
From a recent customer
We retired our Confluence space and our Notion workspace in the same week. OakWiki became the single source of truth our team will actually trust.
HK
Henna Korpela
Head of Engineering · Pinion Labs (Series B, 80 engineers)
Pricing · Free unlimited pages · Team $8 / user · Org $18 / user

Pricing that doesn’t punish small teams.

Free tier covers small teams properly — unlimited pages, up to 10 collaborators. Paid tiers add permissions, SSO, audit log. No metering, no per-page surcharge.

See pricing Browse templates