dbt-nexus Course — the Doe Family

A hands-on introduction to dbt and dbt-nexus, built around a fictional family unifying Gmail, Google Calendar, and Notion into a personal data warehouse.

A general-purpose introduction to dbt and the dbt-nexus framework, told through a fictional example: the Doe family building a personal data warehouse.

This course is for anyone who wants to learn how dbt-nexus works without needing client context. Every concept is grounded in a relatable example you could plausibly build for yourself.


Meet the Doe family

  • Jane and John — the parents
  • Jack, Joe, and Julie — the three kids
  • An ever-growing cast of friends, teachers, and extended family — most notably Grandma JoAnne, who emails the kids constantly from two different addresses and calls the family from a third number

The Doe family wants a single, unified view of their personal life across the tools they already use:

Source What it carries
Gmail Email sent and received across the family
Google Calendar Events created, invitations sent, who showed up
Notion Tasks (who's responsible for what) and notes (kept on people
and topics)

By the end of the course, the Doe family's warehouse will produce two deeply useful outputs:

  1. A family contacts list — a clean, deduplicated, always-up-to-date list of everyone the family interacts with, derived from real activity rather than maintained by hand.
  2. A Christmas card list — built on top of the contacts list, with recency and frequency rules to pick who actually deserves a card this year.

Course structure

The course has three modules: infrastructure, then dbt concepts, then dbt-nexus. Modules that need outside infrastructure start with a short prerequisite lesson.

Module 1 — Setting Up dbt

Provision BigQuery, get dbt running two different ways (cloud and local), and put your project under version control.

  1. Introduction to dbt
  2. Prerequisite: Setting up BigQuery
  3. Setting up dbt Cloud
  4. Setting up dbt locally with VS Code
  5. Git and GitHub

Module 2 — dbt Basics

The dbt mental model. Seed real data first so the practicums have something to chew on, then walk through refs, CTEs, materializations, Jinja, macros, and project structure.

  1. Seeding the Doe family data
  2. Creating models, refs, and lineage
  3. CTEs — the building blocks of dbt models
  4. Materializations
  5. Jinja and programmatic SQL
  6. Macros and packages
  7. The Doe family project structure
  8. Examples and practicum

Module 3 — Setting Up dbt-nexus

Land raw data, install the package, wire up your sources, let identity resolution do its job, and turn the result into the family contacts list and Christmas card list.

  1. Prerequisite: Ingesting source data with os-nexus
  2. Introduction to dbt-nexus
  3. Installing and configuring
  4. Setting up sources
  5. Identity resolution
  6. The family contacts list
  7. The Christmas card list

What you'll need

  • A BigQuery project and a service account — covered step-by-step in 0.1 Setting up BigQuery. Datasets get created automatically by the ingestion pipeline and dbt.
  • Raw source data landed in BigQuery — the standard nexus path uses os-nexus (Convex + Nango). See 0.2 Ingesting source data with os-nexus for the walkthrough and a list of alternatives (Fivetran, Airbyte, custom scripts).
  • A dbt setup. Either dbt Cloud (free Developer plan) or local dbt with VS Code — Module 1 covers both. Pick whichever you prefer; you don't need both.

A note on scope

The course teaches how to set up and use dbt-nexus, not the internals of the algorithms that make it work. Identity resolution gets a conceptual treatment (with diagrams and a story about Grandma JoAnne); readers who want to understand the recursive SQL behind it should read the Entities reference docs after the course.


Ready?

Start with 1.1 Introduction to dbt.