OpenKnowledge

Billing & Invoices

docs/billing-and-invoices.md · Updated today, 11:02 by Claude · Co-authored with you · main

Overview

Invoice generation, payment terms, and plan pricing live in this document. It is the source of truth for the billing squad and feeds the customer-facing help center.

Pricing tiers

Pricing tiers reflect the plan a customer selects at signup and can be changed at any time.

Pricing is the quietest promise we make to customers. Every tier should exist because a real customer told us they would use it — we price for outcomes, not seats. We would rather launch a slightly-too-expensive tier and grandfather early customers than paint ourselves into a corner. And we revisit pricing twice a year, out loud, with customers in the room.

PlanPriceForNotes
Free$0Solo evaluation3 seats · community support
Team$28 / user / mo Growing teams SSO · audit logs · 99.9% SLAremoved — merged into Pro
Pro$12 / user / mo Small teams Unlimited docs · priority support
Pro$12 / user / mo Small & growing teams Unlimited docs · priority support · SSO · audit logs · 99.9% SLA
EnterpriseCustomLarge orgsDedicated support · private cloud

Customers

Customer expectations are captured here so billing can route each account to the right workflow.

Billing is per-account, not per-user. Large accounts should email [email protected] to consolidate invoices under one master agreement instead of paying per seat.

Invoices generate on the 1st of each month and land with the billing contact on file. Payment is due net-30 from the invoice date.

Invoicing process

A default invoice runs: draft → finance review → send → follow-up. Dunning kicks in at day 45 with a polite email; at day 60, finance hops on a call.

Open questions

Things the billing squad is still deciding.

  • What credit does a grandfathered team get when Pro pricing changes?
  • Should usage-based billing ship before enterprise self-serve?
  • What's the SLA promise for the first 90 days?

Design Rationale

docs/design-rationale.md · Created today, 14:30 by Yuanyuan · Co-authored with Claude · main

1. Moving from AI approval to AI review workflow

The assumption behind this design is that document editing itself is already a mature experience. Users are already familiar with creating and editing documents through tools like Notion and Google Docs. The challenge is not creating another editing workflow, but helping users understand and manage changes introduced by an AI agent.

Instead of requiring users to approve every AI-generated change before it is applied, I designed the experience around an AI review workflow. The agent completes the editing task first, and users review the updated document afterward. This allows AI to make larger edits efficiently while giving users the ability to keep, modify, or revert changes based on their intent.

We originally asked users to approve every AI-generated change before applying it. That slowed the flow and limited the size of edits the agent could make. Shifting to an AI review workflow lets the agent finish the work up front while users decide afterward what to keep, modify, or revert.


2. Making the current document the primary review surface

A traditional side-by-side diff view is useful for code review, but document editing requires more context. Users need to understand how the updated document reads as a whole, not only compare individual changes.

Therefore, I prioritized the current document view over a permanent comparison layout. The latest version remains the main canvas, while previous versions are available when users need additional context. This helps users evaluate the final outcome first and investigate specific changes only when necessary.

Nothing is lost by keeping the current version in front. Every earlier version of a paragraph stays one click away in the comparison panel, and reverting puts it back exactly as it was written.


3. Revealing change details progressively

Showing every AI change, explanation, and comparison state upfront can make the experience feel complex and distract users from the document itself. The design uses progressive disclosure to balance simplicity and transparency.

The document remains unclutteredclean by default, while users can identify that changes exist and open detailed comparisons when they need more information. This supports both technical users who want to inspect changes and non-technical users who prefer a calmersimpler experience.


4. Treating AI as a collaborative editor instead of reinventing the editing experience

The goal of this experience is not to create a completely new AI-specific workflow, but to make AI collaboration feel like a natural extension of existing document editing behaviors.

Users already understand the mental model of working with documents: editing content, reviewing updates, making adjustments, and saving the final version. Instead of introducing unfamiliar concepts around AI approvals or agent actions, I treated the AI agent as another editor contributing to the document.

By building on existing editing patterns, the experience feels familiar for both technical users and users who are comfortable with tools like Notion and Google Docs. AI enhances the existing workflow rather than requiring users to learn a new way of working.


5. Keeping review, editing, and recovery in the same experience

The document remains editable throughout the workflow, allowing users to review AI changes, modify content directly, and save the final version without switching contexts.

Because AI edits can affect multiple parts of a document, the experience also supports reversible version switching before saving. Users can explore changes, switch between versions, and continue editing with confidence. This keeps AI collaboration flexible while preserving user ownership of the final document.

Onboarding

docs/onboarding.md · Updated today, 10:20 by Claude · Co-authored with you · main

Quick start

This guide walks a new workspace from signup to first published doc. Most teams are up and running in under an hour.

Invite your team

The workspace owner adds people, and every member shares the same plan.

Invite teammates with an email invite — they land on the same plan as the workspace owner, and their seats are billed from the workspace account.

Invite teammates from the People page. Every new member gets a free seat for 30 days before billing starts.

First project

Projects start in draft and get published to an audience folder.

Projects start in draft. Publish to docs/, engineering/, or a custom folder — the folder decides which audience sees it.

You can connect a GitHub repo and keep docs in sync with code; the docs build runs on every push.

FAQ

Common questions from new teams.

  • Can I cancel anytime? Yes — billing is monthly and you keep access until the end of the period.
  • Do you offer a student discount?
  • Is there a lifetime deal?

Help Center

docs/help-center.md · Updated today, 09:45 by Claude · Co-authored with you · main

Getting started

Everything you need to set up your first workspace.

  • How long does it take to index my docs? Usually under 2 minutes per repo.
  • What happened to the legacy search widget?

Accounts & billing

Invoices, plans, and how payments work.

Change it in Settings → Billing. Invoices are re-sent to the new address automatically; the old one is kept on file for compliance.

Send a request to support@ and we will update it within 2 business days.

Troubleshooting

Stuck on something? Start here.

Why is my sync stuck on "Waiting"? A sync stays Waiting when the connected repo is paused or a concurrent build is running. Re-trigger it from the repo page, or wait for the build to finish.

If it is still Waiting after 15 minutes, check the repo's access token — a revoked token pauses all syncs silently.

API Architecture

engineering/api-architecture.md · Updated today, 14:05 by Claude · Co-authored with you · main

Authentication

Every API request must carry a valid credential.

Requests are authenticated with a bearer token scoped to a project. Rotate tokens from the Dashboard; tokens are hashed at rest and never returned again after creation.

Use an API key sent as a query parameter. Keys never expire and can be shared across the team.

Rate limits

Requests are limited per project, not per key.

PlanRequestsBurst
Free60 / min120
Pro1,000 / min2,000
Pro2,000 / min5,000
EnterpriseCustomCustom

Webhooks

Event delivery for integrations.

Subscribe to doc.published, doc.reviewed, and build.failed events. Payloads are signed with an HMAC secret you set in the Dashboard; redelivery retries 5 times with exponential backoff.

Dashboards

engineering/dashboards.md · Updated today, 16:40 by Claude · Co-authored with you · main

Metrics

Every dashboard is a saved query over the events pipeline.

Every dashboard is a saved query. Metrics are computed from the events pipeline with a 5-minute freshness window, so dashboards reflect near-real-time data.

Dashboards refresh every 15 minutes on a cron. To see fresher data, refresh the page.

Charts

The building blocks of every dashboard.

P95 response time is now tracked per route and per region. Use it to spot slow regions before they show up in error rates.

Filter any chart by region, plan, or workspace size with a single click.

Release Spec

engineering/release-spec.md · Updated today, 17:22 by Claude · Co-authored with you · main

Rollout plan

How a release moves from canary to full traffic.

Ship to a 10% canary for 24h, then 50% for another 24h, then full. Canary windows exist to catch issues before a full rollout, and the schedule is a floor, not a ceiling — hold any stage if metrics look off.

Deploy to prod on Tuesday. Monitor for an hour. If nothing breaks, we are done.

Checklist

Required steps before each release.

  • Verify log streaming works from the new region
  • Manually run the legacy export script
  • Ping the #releases channel for sign-off

Rollback

Automatic and manual rollback criteria.

Rollback is a re-deploy of the previous tagged image with a 10-minute TTL. If the error rate crosses 1.5% for 5 consecutive minutes, on-call rolls back automatically.

Changelog

docs/changelog.md · Updated yesterday · main

This week

  • P95 response time is now tracked per route and region
  • Faster sync for repos with more than 10k docs
  • Settings → Billing shows the next invoice date

Incident Playbook

engineering/incident-playbook.md · Updated last week · main

Severity levels

SEV-1: the service is down for a wide audience. SEV-2: degraded but usable. SEV-3: an isolated incident with a workaround.