Build & Deploy An AI-Powered Chat App | Vue, Node, TypeScript, Open AI, Stream & Neon Database
Key Takeaways
Build and deploy a full stack AI-powered chat app using Vue, Node, TypeScript, Open AI, Stream, and Neon Database, with features like user registration, chat history, and context-based conversation.
Original Description
In this project, we will build a full stack app that works similar to ChatGPT and answers prompts and keeps the context throughout the conversation. We will use Vue.js with Pinia for state management, Node and Express on the backend with TypeScript. Stream for the chat featrues and a Neon PostgreSQL database to store users and chat logs.
Stream Chat:
https://getstream.io/chat/sdk/react/?utm_source=youtube&utm_medium=referral&utm_content=&utm_campaign=traversymedia
Neon Database:
https://fyi.neon.tech/1traversy
Code (Node/Express Backend):
https://github.com/bradtraversy/chat-ai-api
Code (Vue.js Frontend):
https://github.com/bradtraversy/chat-ai-ui
Timestamps:
0:00 - Intro
2:43 - Documentation URLs
4:13 - Backend Init & Install Dependencies
7:56 - Backend TypeScript Config
10:03 - Express Server Setup
13:35 - /register-user Endpoint Setup
17:37 - Initialize Stream With API Keys
21:17 - Register User With Stream Chat
27:41 - /chat Endpoint & Open AI Init
42:49 - Neon PostgreSQL Database Setup
46:00 - Database Config & Neon Adapter
48:46 - Drizzle Schema
54:26 - Drizzle Config
57:31 - Database Migration
59:11 - Save Users In Neon PostgreSQL
1:04:58 - Save Chats In Neon PostgreSQL
1:09:38 - Get User Chat History
1:15:22 - Frontend Init & Install Dependencies
1:19:21 - TailwindCSS Setup & Clean Up
1:22:02 - Router & Page Setup
1:27:54 - Home Form Display
1:31:52 - Reactive Variables & Input Bind
1:37:24 - Pinia Initialization
1:39:19 - Pinia User Store
1:42:57 - Hook Up Home Form
1:50:02 - Header & Leave Chat/Logout
1:57:20 - Pinia Chat Store
2:01:45 - Load Chat History Function/Request
2:08:42 - Load Chat Into UI
2:17:50 - Send Message Function/Request
2:22:21 - Send Message Form
2:29:32 - Get Context Of Chat
2:37:37 - Format Output Text
2:40:52 - Backend API Deploy To Render
2:43:55 - Frontend Deploy To Vercel
Watch on YouTube ↗
(saves to browser)
Sign in to unlock AI tutor explanation · ⚡30
Playlist
Uploads from Traversy Media · Traversy Media · 0 of 60
← Previous
Next →
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
Changing Your DNS/Nameservers
Traversy Media
Create a MySQL database in cPanel
Traversy Media
Install & Uninstall Joomla Extensions
Traversy Media
Adding and linking an article in Joomla
Traversy Media
Create a Joomla Blog
Traversy Media
Import & Export A MySQL Database
Traversy Media
Use A Custom Font On Your Website Using CSS
Traversy Media
Connect Joomla Site With Dreamweaver
Traversy Media
Remove Phoca Gallery 3.2.3 Footer Text
Traversy Media
Drupal 7 Security Update 7.19 to 7.20
Traversy Media
Add An Addon Domain In Cpanel
Traversy Media
Pull A Heroku Rails App and Database
Traversy Media
Create a Custom Joomla 2.5 Module - Part 1
Traversy Media
Create a Custom Joomla 2.5 Module - Part 2
Traversy Media
Create a Custom Joomla 2.5 Module - Part 3
Traversy Media
Joomla SEO Tutorial - sh404sef Configuration
Traversy Media
Font Dragr
Traversy Media
Convert an HTML Template to Joomla 2.5/3.0 - Part One
Traversy Media
Convert an HTML Template to Joomla 2.5/3.0 - Part Two
Traversy Media
Rockettheme Rocketlauncher Joomla Site in Under 10 Minutes
Traversy Media
JQuery FAQ Slider Tutorial
Traversy Media
301 Redirect With htaccess File
Traversy Media
Convert HTML to Wordpress Theme - Part 1
Traversy Media
Convert HTML to Wordpress Theme - Part 2
Traversy Media
Easy JQuery Widgets
Traversy Media
Codeigniter App Part 1 - Creating the Database
Traversy Media
Codeigniter App Part 2 - Installation and Configuration
Traversy Media
Codeigniter App Part 6 - Login/Register System
Traversy Media
Codeigniter App Part 7 - Models List CRUD
Traversy Media
Codeigniter App Part 8 - Models Task CRUD
Traversy Media
Node.js Part 1 - Install NodeJS on Windows
Traversy Media
Node.js Part 3 - Building a Static Page Server
Traversy Media
Node.js Part 4 - NPM
Traversy Media
Node.js Part 2 - Install MongoDB in Windows
Traversy Media
Create a Joomla Quickstart with Custom Sample Data
Traversy Media
Install MongoDB in Ubuntu
Traversy Media
HTML5 Web Storage
Traversy Media
Create a Joomla Bootstrap Template From Scratch
Traversy Media
Ubuntu Server 14.04 Setup Part 1 - Installation
Traversy Media
Ubuntu Server 14.04 Setup Part 3 - Set Static IP
Traversy Media
Create A Wordpress Widget - Part 1
Traversy Media
Create A Wordpress Widget - Part 2
Traversy Media
Create A Wordpress Widget - Part 3
Traversy Media
Create A Wordpress Widget - Part 4
Traversy Media
Get Started With Sass on Windows
Traversy Media
Build An HTML5 Template With Bootstrap and SASS - Part 1
Traversy Media
Build An HTML5 Template With Bootstrap and SASS - Part 6
Traversy Media
Build An HTML5 Template With Bootstrap and SASS - Part 4
Traversy Media
Build An HTML5 Template With Bootstrap and SASS - Part 5
Traversy Media
Build An HTML5 Template With Bootstrap and SASS - Part 3
Traversy Media
Build An HTML5 Template With Bootstrap and SASS - Part 2
Traversy Media
Build An HTML5 Template With Bootstrap and SASS - Part 7
Traversy Media
Build An HTML5 Template With Bootstrap and SASS - Part 10
Traversy Media
Build An HTML5 Template With Bootstrap and SASS - Part 8
Traversy Media
Build An HTML5 Template With Bootstrap and SASS - Part 11
Traversy Media
Build An HTML5 Template With Bootstrap and SASS - Part 9
Traversy Media
Build An Audio Player Using HTML5 & jQuery - Part 1
Traversy Media
Build An Audio Player Using HTML5 & jQuery - Part 2
Traversy Media
Youtube Data API v3 & jQuery To List Channel Videos
Traversy Media
Using Bootstrap With Ruby on Rails
Traversy Media
More on: LLM Engineering
View skill →Related Reads
📰
📰
📰
📰
# Picking What to Read Next: The Trade-offs of Ranked-Choice Voting in a Django App
Medium · Python
The Ultimate Rust ORM Comparison 2026: Diesel vs SQLx vs SeaORM vs Rusqlite — Pick Your Powerhouse!
Medium · Programming
BASIC ARRAY METHODS IN JAVASCRIPT
Dev.to · G Gokul
Beginner projects
Reddit r/learnprogramming
Chapters (35)
Intro
2:43
Documentation URLs
4:13
Backend Init & Install Dependencies
7:56
Backend TypeScript Config
10:03
Express Server Setup
13:35
/register-user Endpoint Setup
17:37
Initialize Stream With API Keys
21:17
Register User With Stream Chat
27:41
/chat Endpoint & Open AI Init
42:49
Neon PostgreSQL Database Setup
46:00
Database Config & Neon Adapter
48:46
Drizzle Schema
54:26
Drizzle Config
57:31
Database Migration
59:11
Save Users In Neon PostgreSQL
1:04:58
Save Chats In Neon PostgreSQL
1:09:38
Get User Chat History
1:15:22
Frontend Init & Install Dependencies
1:19:21
TailwindCSS Setup & Clean Up
1:22:02
Router & Page Setup
1:27:54
Home Form Display
1:31:52
Reactive Variables & Input Bind
1:37:24
Pinia Initialization
1:39:19
Pinia User Store
1:42:57
Hook Up Home Form
1:50:02
Header & Leave Chat/Logout
1:57:20
Pinia Chat Store
2:01:45
Load Chat History Function/Request
2:08:42
Load Chat Into UI
2:17:50
Send Message Function/Request
2:22:21
Send Message Form
2:29:32
Get Context Of Chat
2:37:37
Format Output Text
2:40:52
Backend API Deploy To Render
2:43:55
Frontend Deploy To Vercel
🎓
Tutor Explanation
DeepCamp AI