The tools you point at customers: apps and forms, payments, email, content, chat, scheduling, and how to pick between them.
Choosing Your Stack: When to Use What
7 lessonsFor builders who keep stalling on "which tool should I use for this". Seven lessons of plain decision rules covering automation platforms, app builders, databases, hosting and AI providers. You finish with a five-question scorecard you can run on any tool in fifteen minutes, and a written-down default stack you can defend when someone asks why you picked it.
7 lessons in this course
- The decision framework: what it is and when to use it
- A decision framework for picking tools
- Automation: Zapier, Make, n8n or code
- Building apps: no-code, internal tools or a framework
- Data: Postgres, Firebase, Mongo and vector databases
- Hosting: platforms, a VPS, or the big clouds
- AI providers: hosted, open or local
Written September 2026. n8n 2.38.x self-hosted, Docker Compose v2, Postgres 18, Next.js 15, Ollama current release. Pricing quoted is as of September 2026 and changes often; check the vendor's page before you commit.
Building Apps Without a Framework
6 lessonsFor members who need a working app this week, not a codebase. Covers Bubble and Glide for customer-facing apps, Retool and self-hosted ToolJet for internal tools, and how to wire any of the four into n8n with a webhook contract you control. Six text lessons, written against September 2026 versions, ending with the one n8n workflow that serves all of them.
Before you startThe internal-tool lessons assume a real database is already there; Postgres, Supabase and NocoDB is useful background.
What you end up withBy the last lesson you'll have built the same internal tool twice, once in Retool and once in self-hosted ToolJet, and the same small public form twice, in Bubble and Glide, with all four calling one shared n8n webhook.
6 lessons in this course
- App builders: what they are and when to use them
- The landscape: builders, internal tools and AI-generated code
- Retool: an internal tool on your Postgres in an hour
- ToolJet self-hosted: the same tool rebuilt on your own box
- Bubble and Glide: a customer-facing app that talks to n8n
- Connecting any builder to n8n
Bubble and Glide (hosted, current editors as of September 2026), Retool (cloud), ToolJet self-hosted (Docker Compose, community edition), n8n 2.38.x self-hosted, PostgreSQL 18, Docker Compose v2.
Stripe and Payment Automations
6 lessonsTake Stripe from a dashboard you click around in to a system n8n runs for you. Products and Payment Links, webhooks with real signature verification, Checkout Sessions and invoices built from n8n, the subscription statuses that matter and the automation each should fire, and a Postgres table that catches what a webhook missed. Runs in test mode; steps needing a live, activated account are called out. For members who can already run n8n and want it handling billing, not just marketing.
Before you startAssumes n8n is already running, and that you have a stable HTTPS URL for a permanent webhook endpoint.
What you end up withBy the last lesson you'll have one small, complete billing pipeline: a test-mode Stripe account with a product and price, an n8n webhook that verifies every event's signature before trusting it, and a Postgres log checked daily against Stripe's own balance transactions.
6 lessons in this course
- Stripe: what it is and when to use it
- Stripe basics for builders
- Webhooks into n8n
- Checkout sessions and invoices
- Subscription lifecycle
- Reconciliation and refunds
Stripe Dashboard and API in test mode, as of September 2026. n8n 2.38.x self-hosted. Postgres 18.
Email and Newsletter Automation
6 lessonsSend transactional and marketing email from n8n using Resend, Postmark and Beehiiv. Build the lead-magnet flow that turns a website form into a confirmed newsletter subscriber with a logged, trackable welcome email, then get your domain's SPF, DKIM and DMARC records right so the emails land in the inbox.
Before you startAssumes you already have n8n running, because every call here goes out through an HTTP Request node in a workflow.
What you end up withBy the last lesson you'll have a real, working lead-magnet flow: a website form that creates a Beehiiv subscriber with double opt-in, a Resend welcome email with the PDF and EPUB attached, and SPF, DKIM and DMARC records in place so the mail reaches the inbox.
6 lessons in this course
- Email automation: what it is and when to use it
- Transactional versus marketing email, and why you need both
- Sending from n8n: Resend
- Beehiiv from n8n
- The lead-magnet flow
- Deliverability
Beehiiv API v2 (api.beehiiv.com/v2), Resend API (api.resend.com), Postmark API (api.postmarkapp.com), n8n 2.38.x self-hosted, dated September 2026
Listmonk Newsletters
6 lessonsSelf-host your newsletter list on Listmonk instead of renting it from Beehiiv. Stand up Listmonk on Postgres, build opt-in lists with a public subscription form, send campaigns and read their stats, and fire transactional welcome email from n8n through the /api/tx endpoint. Closes with Shannon's honest reasoning for still using Beehiiv today.
Before you startListmonk needs a Postgres database of its own, and a real hostname behind Caddy or a Cloudflare Tunnel so unsubscribe links work.
What you end up withBy the end of this course you'll have Listmonk running in Docker on Postgres with SMTP configured, opt-in lists with a working public subscription form, a sent campaign with stats you can read, and an n8n workflow firing a transactional welcome email.
6 lessons in this course
- Listmonk: what it is and when to use it
- Listmonk in Docker on Postgres
- Lists and subscribers
- Campaigns and templates
- Transactional mail from n8n
- Beehiiv versus Listmonk
Listmonk v6.2.0, Postgres 18, n8n 2.38.x self-hosted, dated September 2026
Strapi and Headless CMS Pipelines
6 lessonsRun Strapi 5 in Docker with Postgres, model a content type, publish through the REST API with a token, push new posts to n8n over a webhook, and feed a static Next.js or Astro site from it. Ends with an honest look at when a CMS beats markdown in git.
Before you startAssumes a working n8n instance, since the point of wiring in webhooks is having something on the other end to react to a publish event.
What you end up withBy the last lesson you'll have Strapi running in Docker against Postgres, an API token reading a published entry back over REST, a webhook that fires into n8n on publish, and a static site that rebuilds on that same webhook.
6 lessons in this course
- Headless CMS: what it is and when to use it
- Strapi 5 in Docker with Postgres
- Content types and the API
- Webhooks to n8n
- Feeding a site
- Strapi versus Directus versus markdown in git
Strapi 5.x (no official Docker image, scaffolded with `npx create-strapi@latest` and built into your own image), PostgreSQL 16, Node 22 LTS, n8n 2.38.x self-hosted, as of September 2026
Typebot and Chatwoot
6 lessonsFor anyone who wants a chatbot that actually qualifies leads and a real support inbox behind it, both self-hosted. Covers running Typebot's builder and viewer in Docker, building a lead-qualifying bot that calls n8n, running Chatwoot with a website widget and agents, auto-triaging conversations by keyword, and handing a qualified Typebot lead straight into a live Chatwoot conversation.
Before you startIf you haven't run n8n self-hosted yet, do that course first. This one assumes a working n8n instance.
What you end up withBy lesson 5 you'll have Typebot and Chatwoot running in Docker, connected through one n8n workflow, so a visitor who answers three qualifying questions either gets a booking link or gets handed into a labeled, routed Chatwoot conversation.
6 lessons in this course
- Typebot and Chatwoot: what they are and when to use them
- Typebot in Docker: builder, viewer, Postgres, and your first bot
- A lead-qualifying bot: questions, conditions, and a webhook to n8n
- Chatwoot in Docker: Postgres, Redis, an inbox, a widget, and agents
- Chatwoot and n8n: conversation webhooks, the reply and label API, and auto-triage
- Putting them together: Typebot hands off a qualified lead to Chatwoot
Typebot 3.18.0 (Docker images `baptistearno/typebot-builder` and `baptistearno/typebot-viewer`), Chatwoot v4.17.1-ce (Docker image `chatwoot/chatwoot`), Postgres 18, Redis 7, n8n 2.38.1
Cal.com and Documenso
6 lessonsSelf-host scheduling and e-signing instead of renting them from Calendly and DocuSign. Stand up Cal.com and Documenso in Docker on their own Postgres databases, verify both tools' webhooks in n8n so a new booking sends a contract automatically, and build one end-to-end intake flow from form to booking to signed contract on a single Postgres table, with every failure point named honestly and the fix for each one named too.
Before you startBoth tools need their own Postgres database, and a real hostname behind HTTPS so their email links and webhooks work.
What you end up withBy the end of this course you'll have Cal.com and Documenso running in Docker, each on its own Postgres database, with a first event type live on Cal.com and a first signed document round-tripped through Documenso's certificate setup.
6 lessons in this course
- Cal.com and Documenso: what they are and when to use them
- Cal.com self-hosted: compose, env vars, first user and an event type
- Bookings into n8n: webhooks, a verified signature, and a prep-email workflow
- Documenso self-hosted: compose, certificate setup, first document and template
- Signing into n8n: webhooks, the API, and sending a contract on booking confirmed
- The intake flow: form to booking to signed contract, end to end
Cal.com v6.2.0, Documenso v2.17.0, Postgres 18, n8n 2.38.x self-hosted, dated September 2026