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:
- 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.
- 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.
- Introduction to dbt
- Prerequisite: Setting up BigQuery
- Setting up dbt Cloud
- Setting up dbt locally with VS Code
- 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.
- Seeding the Doe family data
- Creating models, refs, and lineage
- CTEs — the building blocks of dbt models
- Materializations
- Jinja and programmatic SQL
- Macros and packages
- The Doe family project structure
- 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.
- Prerequisite: Ingesting source data with os-nexus
- Introduction to dbt-nexus
- Installing and configuring
- Setting up sources
- Identity resolution
- The family contacts list
- The Christmas card list
What you'll need
- A Nexus workspace and Google setup account — an owner or admin can create a BigQuery warehouse through the UI or MCP in 1.2 Setting up BigQuery. Review the billing account before approving creation. Nexus provisions ingestion access without asking you to download a service-account key.
- Source data for Module 3 — reuse that warehouse and connect source accounts using 3.1 Ingesting source data with os-nexus. Module 2 starts with seeds, so you can learn dbt before connecting sources.
- A separate dbt login — use your organization's dbt Cloud connection or a local profile with Google OAuth. Module 1 covers both; you only need one. dbt writes modeled output to its development dataset.
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.