
Build AI-Powered Apps
Projektkurs von Mosh Hamedani zum Bauen von LLM-Anwendungen: von den Grundlagen der Sprachmodelle (Tokens, Modellwahl, Model Settings) über ein modernes Full-Stack-Setup mit Bun, TailwindCSS und shadcn/ui bis zu zwei durchgehenden Projekten — einem Chatbot mit Streaming-UI und einem Review Summarizer mit MySQL, Prisma und TanStack Query. Dazu ein eigenes Modul Prompt Engineering und der Einsatz von Open-Source-Modellen über Hugging Face und Ollama. Ein durchgehendes Thema ist das Refactoring: Repository, Service und Controller werden schrittweise herausgezogen. Vollständig abgeschlossen (alle Lektionen).
Inhalte & Kompetenzen
- Grundlagen der Sprachmodelle: Was LLMs können, Tokens verstehen und zählen, das passende Modell wählen, Model Settings und API-Aufrufe
- Modernes Full-Stack-Setup: Bun, getrenntes Frontend und Backend, OpenAI-API-Key-Handling, TailwindCSS, shadcn/ui, Prettier und Pre-Commit-Checks mit Husky
- Chatbot-Backend: Chat-API, Verwaltung des Konversationszustands, Input-Validierung und Fehlerbehandlung — anschließend refactored in Repository, Service, Controller und Routes
- Chatbot-Frontend: Chat-UI, State-Management, Markdown-Rendering, Typing-Indicator, Auto-Scrolling und Fehlerbehandlung, zerlegt in eigene Komponenten
- Prompt Engineering: Aufbau eines guten Prompts, Kontext liefern, Ausgabeformat steuern, Beispiele geben, Halluzinationen reduzieren und Prompts iterativ verbessern
- Review Summarizer: MySQL und Prisma mit Schema, Migrationen und realistischen Testdaten, API zum Abrufen und Zusammenfassen von Reviews, Speichern und Regenerieren der Summary, Edge Cases
- Frontend mit TanStack Query: Reviews und Sternebewertungen anzeigen, Loading Skeletons, Fehlerbehandlung, Mutations und eine herausgezogene API-Schicht
- Open-Source-Modelle: Modelle auf Hugging Face finden und aufrufen, das passende Modell für die Aufgabe wählen, Modelle lokal mit Ollama betreiben
Kursaufbau
Die Kursseite nennt 7 Stunden und 120 Lektionen in 8 Abschnitten, listet die Einzellektionen aber nur für „Getting Started“. Die Gliederung hier ist deshalb dem Kursplayer entnommen und zeigt alle 109 Lektionen, die zum Abschluss im Dezember 2025 enthalten waren — der Kurs ist seither gewachsen. Die Urkunde von Code with Mosh weist selbst keinen Umfang aus. Die Nummerierung der Unterlektionen (2.1, 4.3 …) ist zugunsten einer durchlaufenden Zählung entfernt.
Getting Started7 Min. · 6 Lektionen
- Welcome
- Prerequisites
- What You'll Learn
- Getting Help
- Source Code
- Submitting Feedback
Introduction to AI Models32 Min. · 8 Lektionen
- Rise of AI Engineering
- What Are Large Language Models?
- What Can You Do With Language Models?
- Understanding Tokens
- Counting Tokens
- Choosing the Right Model
- Understanding Model Settings
- Calling Models
Setting Up a Modern Full-Stack Project50 Min. · 11 Lektionen
- Setting Up Bun
- Creating the Project Structure
- Creating the Backend
- Managing OpenAI API Key
- Creating the Frontend
- Connecting the Frontend and Backend
- Running Both Apps Together
- Setting Up TailwindCSS
- Setting Up ShadCN/UI
- Formatting Code With Prettier
- Automating Pre-Commit Checks With Husky
Building a ChatBot1 Std. 15 Min. · 30 Lektionen
- Introduction
- Building the Backend
- Building the Chat API
- Testing the API
- Managing Conversation State
- Input Validation
- Error Handling
- Refactoring the Chat API
- Extracting Conversation Repository
- Extracting Chat Service
- Extracting Chat Controller
- Extracting Routes
- Building the Frontend
- Designing the Chat UI
- Managing State
- Sending Messages
- Displaying Messages
- Styling Messages
- Rendering Markdown Text
- Adding a Typing Indicator
- Auto-Scrolling to the Latest Message
- Improving Copy Behaviour
- Improving the Look and Feel
- Handling Errors
- Refactorings
- Extracting TypingIndicator Component
- Extracting ChatMessages Component
- Extracting ChatInput Component
- Recap
- Summary
Prompt Engineering32 Min. · 12 Lektionen
- What is Prompt Engineering
- Anatomy of a Good Prompt
- Providing Context
- Controlling the Output Format
- Providing Examples
- Handling Errors and Edge Cases
- Reducing Hallucinations
- Refining Prompts
- Improving Chatbot Responses
- Adding Sound Effects
- Exercises
- Summary
Building a Review Summarizer2 Std. 20 Min. · 32 Lektionen
- Introduction
- Setting Up the Database
- Setting Up MySQL
- Setting Up Prisma
- Defining the Prisma Schema
- Running Migrations
- Refining the Prisma Schema
- Populating the Database with Realistic Data
- Building the Backend
- Creating the API to Fetch Reviews
- Refactoring: Separation of Concerns
- Creating an API for Summarizing Reviews
- Generating Summaries
- Refactoring: Extracting the LLM Logic
- Refactoring: Extracting the Prompt
- Storing the Summary
- Handling Regeneration
- Handling Edge Cases
- Fetching the Summary
- Building the Frontend
- Displaying Reviews
- Displaying Star Ratings
- Displaying Loading Skeletons
- Handling Errors
- Introducing Tanstack Query
- Displaying the Summary
- Triggering Summary Generation
- Displaying Loading Skeletons
- Handling Errors
- Refactoring with Mutations
- Refactoring for Readability
- Extracting the API Layer
Building with Open Source Models28 Min. · 8 Lektionen
- Introduction
- Why Use Open-Source Models
- Finding Open-Source Models
- Calling Hugging Face Models
- Choosing the Right Model For the Job
- Running Models Locally
- Using Hugging Face Models with Ollama
- Calling Ollama Models
Course Wrap Up2 Lektionen
- Course Wrap Up
- Feedback