Svelte and Firebase - The Complete Course
Create two fantastic applications with Svelte, Trello & Twitter clones. Unleash Svelte reactivity and speed. Use Firebase as the data store.
Is this course right for you?
This course covers creating two applications with Svelte and minimal 3rd party dependencies. Almost every feature is made from scratch without any dependency package. This covers - Form Validation, Pagination, Modal, Popups, Snackbar, and more.
The course covers the explanation of Svelte by working on actual projects. This course will give you the confidence and skills required to start any project.
Students should have basic javascript knowledge to start working on this course.
What is Svelte?
Svelte is a radical new approach to building user interfaces. Whereas traditional frameworks like React and Vue do the bulk of their work in the browser, Svelte shifts that work into a compile step that happens when you build your app.
Instead of using techniques like virtual DOM diffing, Svelte writes code that surgically updates the DOM when the state of your app changes.
What are you going to work on?
The first application explains base Svelte features by working on the real project - Trello clone application.
In the second application, students will build a Twitter-like app from scratch - the HTML layout part is not part of the course (This will be provided in the course materials to save time and focus purely on Svelte). The focus of this course is coding and not writing HTML content.
The course starts with the preparation of the base layout of the application. All designs - images, and content are provided by the instructor.
Content can be briefly summarized in these points:
Layout preparation - A few lectures to prepare the HTML for your application. Separation of layout into the Svelte components.
Template syntax - Use special syntax inside of HTML
Directives & Events - Value binding of variables.
Svelte Kit Routing - This part explains creating a "multi-page" application. Students will learn how to create a routing with different routing strategies and navigation to the routes.
Reactivity - Explains how to create and manage reactive data
Lifecycle function - How to use onMount and onDestroy
Stores - More complex reactive data
Transitions - Fancy effects with Svelte
Auth Forms - Students will learn how to create a reactive form and bind the data to form inputs.
Custom Form Validation - Covers creating a custom input/form validation and error handling from scratch.
Firebase/Firestore - Initialization of Firebase application (data storage)
Hook Functions - Important part of the projects. Allows the feature-related code to be separated into its context.
Authentication - This part covers creating a login, register, and logout functionality. Students will learn how to authenticate a user upon the application visit.
Provider and Context - This creates a provider component, which can hold the data on the root level and provide them to underlying components.
Snackbars - App-wise functionality created with Provider to display any message as a toast popup.
Glide Creation - Covers how to create a new glide and display it on the main page. From this point on, students will often work with Firebase/Firestore.
Follow Functionality - Follow functionality allows users to subscribe to other users.
Display Glides from Following - Subscription (Following) to other users will allow seeing the Glides (messages) they post.
Paginate Glides - It would be inefficient to fetch/display all of the glides on the initial load. Students will learn how to implement their lazy loaded pagination when data are loaded as the users browse the application.
Create Sub-Glides - It's essential to have a way to respond to glides. This feature enables a user to create subglides, which is an answer to the glide.
Modal Messenger - Students will learn how to create a modal component from scratch. This will be used to display a messenger component on any page.
Image Upload - Deployment to Firebase Storage
Deployment to Vercel - Finally, the application will be live hosted on Vercel. Anybody on the internet will be able to visit your application.
While working on the features above, the students will learn and understand Svelte features. They will know how to architecture applications and will be able to create their applications with Svelte.
Base Javascript knowledge
Early Promo
How to resolve issues
Github Repo Tricks
Init Project
Coding Editor Setup
Folder Structure
Src Folder
Quiz
Layout
Tailwind
Tailwind Correction
Additional CSS Improvements
Quiz
New Route
More about layouts
Sub Page
Cleanup
Svelte Reactivity
Reactive statement
Reactive declarations
Quiz
Copy-Paste Layout
Task Item
Task List
Props
Formatting Options
Task List Data
Quiz
Each Loop
Iterate Tasks
Editable Component
If Block
Button Formatting
Editing Mode
Quiz
Value binding
Default Value
Bind to Component
Dispatch Event
Rename event
Pass Data in Events
Quiz
Stores
Sub to Store
Update Store
Unsub
Auto Subscription
Start Function
Stop Function
Readable Store
Task List Store Data
Event Forwarding
Quiz
Revert Update Task
Pass List Index
Find Task Idx
Update Task
Return subscribe only
Move update to store
Quiz
Add List Prep
Add new list
Allow Y Scrolling
Add Task
Make list full height
Drag Start
Drop Item
Event data transfer
Move code to store
Move Item
Refactor Props
List Hover Id
Hovering Effect
Script Module
Quiz
Crossfade Transition
Animate Flip
More Transitions
Persistence
Store Data
Quiz
Remove item function
Remove Task
Remove List
Editable List
Update List Name
Load Function
SSR + CSR
Prerendering
Fan with Scrollbar
Quiz
Project 2 Layout
Bottom Menu
Home Page
Format Document
Sidebars Components
Quiz
Trends data
Each Loop Trend
Nav Links Data
Render Links
Quiz
Create Shared Layout
Api Endpoint
Provide data to Layout
Create glide - simple
Provide more data to Glide
Glide post component
Login and Register Pages
Route Grouping
Auth layout component
Error page
Quiz
Path Alias
Fix Intelisense
Popup component
Wrap botom menu in popup
Logout Menu
Before Update and after update
Close popup
Clean event listener
Popup Bottom Position
Portal
Adjust popup left position
Adjust while resizing
Close on outside click only
Actions
Handle popup close in action
Quiz
UI Context
Set context
Get context abstraction
Set screen size
Helper size variables
Svelte window component
Simplify Ui context
Display icon conditionaly
Check for loading UI
CSR
Quiz
Auth Context
Simulate Authentication
Loader Component
Conditional Auth
Redirect if authenticated
Main layout component
Main pages redirect
Quiz
Move forms to components
Bind login data
Bind register data
Validate action
Add alias for actions and stores
Form Handler Store
Add state to form store
Create store separately
createStore lifecycle
Input event handlers
Check Validity Preparation
Errors store
Update Errors
Quiz
Random validator
Max length validator
Max length validator rework
Detach validator
Loop validators
First uppercase validator
Errors array
Form Errors Component
Pass errors as props
More validators
Pass custom values to validators
Quiz
Nice name function
Submit function
Remove form store
Validate on submit
Submit only when valid
Pass form to validator
Compare with validator
On Input validation
Login form validation
Quiz
Firebase Intro
Add firebase config
Create Users in DB
Register callback
Api folder
Register user firebase
Create user in collection
Quiz
Check auth state in callback
Refactor auth state
Logout user
Login User
Quiz
Reactive redirects
Auth Store
Loading auth state
Get user from Firestore
Display user data in bottom menu
Messenger component
Quiz
Snackbar Start
Snackbar in context
Snackbar Objects
Add snackbar
Remove snackbar
Remove snackbar from store
Auto hide snack
Progress bar
Snackbar transitions
Snackbar on authentication
Quiz
Create glide store
Create glide in Messenger
Disable messenger when adding glide
Glides API
Try catch
Store glide in FS
Add new glide reactively
Quiz
Fetch glides prep
Fetch glides
Store glides
Attach glide user to glide
Data loader indicator
Order data with constraints
Quiz
Change glides to pages
Display Pages
Rework add glide
Paginated glides component
Add treshold to load glides
Last glide doc
Load more glides
Loading stop condition
Quiz
Profile page
Page store
Load users
Fetch users from firestore
User item and loading
Fetch all but logged in user
Quiz
Follow user preparations
Follow User Update in FS
Filter out followed users
Disable button while following
Update auth user after follow
Throw error if following user
Remove following user from list
Display message when no users
Display glides from followed users
Quiz
Subscribe to new glides
Get glide raw data
Get glides from documents
Store fresh glides
Button to display more glides
Display glides - duplicate keys
Resub to glides
Autosize text area
Quiz
Add Lookup
Return lookup from extract function
Glide detail screen
Get route params
Navigate to detail page
Get glide lookup from user
Get glide data
Quiz
Glide Id store
Loading State in Detail
Provide glide post and messenger
Back Button
Fetch subglides
Pass glide lookup to messenger
Add glide in correct collection
Pass glide lookup to fetch subglides
Fetch subglides from lookup
Quiz
Add paginated to detail page
Increment glide count in FS
Update subglide count in real time
Add glide to subglides list
Handle refetch case
Refetch glide
On glide loaded callback
Reset pagination
Subglides pagination
Check for no glides
Quiz
Modal start
Open modal conditionally
Named slot
Opener slot
Slot props
Close on click outside
Messenger and disable scroll
Global Glide
Global on glide posted callback
Close modal when glide posted
Quiz
Handle image selection
Get image bytes
Preview image
Upload image function
Upload image working
Attach image to glide
Quiz
Fix issue with pagination
Github Repo
Deployment to Vercel
Last testing and finish
Filip Jerga
Every video contains a discussion where you can create a post describing an issue. The instructor usually responds within 1 business day.
Within 30 days of the purchase, you can ask for a full refund. No questions asked. Your happiness is our priority.
Of course not! Every lecture is committed (explained in the introduction section). You can start watching any lecture. Just download the correct project version attached to the lecture resources.
Single Course Access
$29.00
Access to this course only.
Get started nowMonthly Membership
$19.00 / month
Cancel Anytime!
Get started nowAnnual Membership
$190.00 / year
Cancel Anytime!
Get started now