Skip to content
Finance Archive

Authoring studio

Publish a note in three moves.

Compose every article as Learn, Calculate, and Apply. The studio builds a database-ready document in real time, so a note can move from idea to the archive without hand-editing code.

LearnCalculateApply

Start from a note

Load an existing note to edit it, or begin with a blank draft. Every field maps directly to the archive content model.

Essentials

Lowercase, hyphenated

Learn · sections

01

Used for the table of contents

Feeds the formula library

Calculate · interactive tool

The list is generated from the calculator registry, so every kind the app can render is selectable here. A bespoke widget needs a new file and a registry entry; a formula experiment is picked up automatically.

Apply · case study & questions

Practice questions

01

Publishing

Publish straight to the API, which validates the article and upserts it into the notes collection. Prefer a file? Export the seed JSON from the panel beside this one and import it with mongosh.

Live preview

Untitled note

Add a summary to see it here.

Corporate FinanceFoundationgrowth

1

Sections

0

Formulas

0

Questions

MongoDB document

{
  "_id": "untitled",
  "schemaVersion": 1,
  "createdAt": "2026-10-20",
  "slug": "untitled",
  "title": "Untitled note",
  "summary": "",
  "subject": "Corporate Finance",
  "track": "foundations",
  "level": "Foundation",
  "tags": [],
  "readingMinutes": 4,
  "updatedAt": "2026-10-20",
  "sections": [
    {
      "id": "overview",
      "title": "Overview",
      "paragraphs": []
    }
  ],
  "calculate": {
    "kind": "growth"
  },
  "references": [
    {
      "label": "OpenStax · Principles of Finance (free textbook)",
      "url": "https://openstax.org/details/books/principles-finance"
    }
  ]
}

The content model

One shape, every note.

Every article is a single document with three deliberate stages. The frontend never hard-codes an article; it renders whatever the document describes. That is what makes adding a note a content task, not a code change.

Learn

sections[] with paragraphs, optional formulas, and key-point callouts.

Calculate

calculate.kind selects an interactive widget from the registry.

Apply

apply.caseStudy plus numeric or multiple-choice questions with explanations.

Available calculators

Assign one of these kinds to a note, or add a new widget in src/components/learning/widgets.

IRR & payback

irr

WACC & CAPM

wacc

CVP & break-even

cvp

Bond pricing

bond

Dividend model

ddm

Leverage & EPS

leverage

Duration & sensitivity

duration

Risk & performance

portfolio-risk

Net present value

npv

Compound growth

growth

Break-even

break-even

Working capital

working-capital

From draft to database

  1. 01Fill the three stages in the studio above (or edit a seed file in src/data/notes).
  2. 02Export the seed JSON and upsert it into MongoDB using the note slug as _id.
  3. 03Swap the reads inside src/lib/notes.ts for database queries. Components do not change.

Full details are in the project documentation: content model, authoring guide, and the MongoDB seeding runbook.

Download note packs as JSON