Svelte.js - The Complete Guide
Build high-performance web applications with SvelteJS - a lightweight JavaScript compiler
Start courseSvelte.js (or just "Svelte") is a modern JavaScript compiler that allows you to write easy-to-understand JavaScript code which is then compiled to highly efficient code that runs in the browser.
You'll write your frontend application using normal JavaScript, following specific rules laid out by Svelte (which are of course taught in this course). As a result, the Svelte compiler will produce a small and highly optimized JavaScript bundle which can be deployed.
In this course, you'll learn all about Svelte, how it works, its core features and how to run your final app on a real server!
Svelte.js is a tool for building highly reactive, modern user interfaces for the web - and it's a great alternative to JavaScript frameworks and libraries like React.js, Angular or Vue.
What will you learn?
- What is Svelte and why would you use it?
- All the core features and base syntax
- How to render conditional and list content
- How to write reactive and fast web applications
- All about components, how to pass data around and how to create re-usable building blocks
- How to efficiently manage data in your application via Svelte stores
- How to reach out to a backend server and send + fetch data
- How to pre-render your app on a server and improve SEO
Is this course for you?
Svelte is a popular alternative to React.js, Angular and Vue and learning it will benefit any frontend web developer.
You don't need to know these frameworks to learn Svelte though - but if you do know them, you'll learn about an interesting alternative which might allow you to build your web projects with less code (and get an even faster app along the way!).
You need NO advanced JavaScript knowledge, basic knowledge will do.
If you're interested in building modern, reactive user interfaces that load quickly and run fast, SvelteJS is a tool you shouldn't overlook!
What's in the course?
- Learn Svelte from scratch - zero knowledge assumed!
- Theory and practice modules
- A complete course project (the "meetup planner")
- Assignments and tasks
- All source code is attached to lectures and modules
- 30 day trial phase - get your money back with no questions asked if you're not happy!
Course content
Section 1Getting Started
- Introduction2:38
- Why Svelte?7:13
- What is Svelte?4:29
- Join our Online Learning Community1:00
- Setting Up a First App & The Course Project11:09
- Writing Some Svelte Code7:26
- Course Outline4:48
- How To Get The Most Out Of The Course3:27
- Course Resources1:00
Section 2Base Syntax & Core Features
- Module Introduction3:55
- Using Curly Braces & Understanding the Core Syntax5:36
- Reactive VariablesPremium5:48
- More ReactivityPremium2:09
- Binding to Element PropertiesPremium4:16
- Two-Way Binding ShortcutPremium1:41
- Using Multiple ComponentsPremium8:30
- Components & Communication via PropsPremium3:45
- Diving Deeper into BindingsPremium6:00
- Using Self-Extending PropertiesPremium1:10
- Outputting HTML ContentPremium3:32
- A XSS ExamplePremium1:00
- Setting Dynamic CSS ClassesPremium4:15
- Assignment - Basics (Problem)Premium2:13
- Assignment - Basics (Solution)Premium10:27
- Wrap UpPremium1:16
- Useful Resources & LinksPremium1:00
Section 3Working with Conditionals & Loops
- Module IntroductionPremium0:49
- Using "if" Statements in HTMLPremium5:25
- if, else & else-ifPremium4:27
- Outputting Lists with "each"Premium8:05
- "each", "else" & Extracting the IndexPremium2:11
- Lists & KeysPremium9:55
- Assignment - Conditionals & Loops (Problem)Premium1:19
- Assignment - Conditionals & Loops (Solution)Premium9:07
- A Closer Look at List KeysPremium4:16
- Wrap UpPremium0:36
- Useful Resources & LinksPremium1:00
Section 4A Closer Look At Reactivity
- Module IntroductionPremium0:58
- Updating Arrays & Objects ImmutablyPremium2:29
- Understanding Event ModifiersPremium5:04
- Using Inline FunctionsPremium3:11
- Wrap UpPremium0:44
- Useful Resources & LinksPremium1:00
Section 5Course Project - First Steps
- Module IntroductionPremium1:18
- Project Setup & A First ComponentPremium8:41
- Different Ways of Mounting ComponentsPremium5:07
- How to Embed WidgetsPremium1:00
- Adding DataPremium3:35
- Adding a New Component (MeetupItem)Premium4:18
- Working with Different Component TypesPremium3:32
- Passing Data Into ComponentsPremium5:37
- Adding a "MeetupGrid" ComponentPremium4:25
- Adding New Meetups via a FormPremium9:24
- Creating a "TextInput" ComponentPremium11:08
- Adding a Custom "Button" ComponentPremium5:58
- Wrap UpPremium2:20
- Useful Resources & LinksPremium1:00
Section 6Diving Deeper Into Components
- Module IntroductionPremium1:43
- Understanding the Different Component TypesPremium1:40
- Component Communication OverviewPremium3:01
- Event ForwardingPremium4:52
- Emitting Custom EventsPremium4:54
- How to Extract Event DataPremium2:27
- Using Spread Props & Default PropsPremium6:56
- Working with SlotsPremium6:25
- Named & Default SlotsPremium3:30
- Example: Opening & Closing a ModalPremium3:18
- Using Slot PropsPremium5:26
- The Component Lifecycle - TheoryPremium4:53
- Creation & Update Lifecycle Hooks in ActionPremium7:27
- Using "tick()"Premium9:18
- Wrap UpPremium0:56
- Useful Resources & LinksPremium1:00
Section 7Course Project - Components Deep Dive
- Module IntroductionPremium0:33
- Adding Default PropsPremium3:22
- Communication via Custom EventsPremium11:16
- Utilizing SlotsPremium5:11
- Creating an "EditMeetup" ComponentPremium7:56
- Communicating Between ComponentsPremium3:45
- Time for More Slots!Premium3:21
- Adding a Re-Usable "Modal" ComponentPremium7:05
- Finishing the "Modal" ComponentPremium3:29
- Wrap UpPremium0:37
- Useful Resources & LinksPremium1:00
Section 8Working with Bindings & Forms
- Module IntroductionPremium0:34
- Two-Way Binding RefresherPremium2:46
- Understanding Custom Component BindingsPremium6:05
- Relying on Automatic Number ConversionPremium2:55
- Binding Checkboxes & Radio ButtonsPremium4:53
- Binding DropdownsPremium2:04
- Binding to Element ReferencesPremium5:17
- Binding to Component ReferencesPremium2:49
- Validating Forms & InputsPremium6:42
- Wrap UpPremium0:58
- Useful Resources & LinksPremium1:00
Section 9Course Project - Bindings & Forms
- Module IntroductionPremium0:33
- Exploring Different Validation SolutionsPremium2:31
- Adding Validation & Error Output to the "TextInput" ComponentPremium3:36
- Adding Some Validation LogicPremium3:24
- Finishing "TextInput" ValidationPremium7:00
- Validating the Overall FormPremium2:50
- Improvements & Wrap UpPremium3:16
- Useful Resources & LinksPremium1:00
Section 10Managing State & Data with Stores
- Module IntroductionPremium1:03
- What's the Problem?Premium3:41
- Creating a Writable Store & SubscribingPremium5:34
- Updating Store DataPremium4:35
- Stores and Stateful & Presentational ComponentsPremium1:56
- Managing Store SubscriptionsPremium3:52
- Using AutosubscriptionsPremium2:49
- A Second Store!Premium6:48
- Subscribing for a Short PeriodPremium3:48
- Understanding Readable StoresPremium8:45
- Unlimited Power with Custom StoresPremium7:56
- Wrap UpPremium1:21
- Derived Store & Store BindingsPremium1:00
- Useful Resources & LinksPremium1:00
Section 11Course Project - Stores
- Module IntroductionPremium1:13
- Setting Up a StorePremium3:00
- Using a Custom StorePremium8:09
- Tapping into the Store from Different ComponentsPremium5:06
- Adding a "MeetupDetail" ComponentPremium12:33
- Preparing the "Edit Meetup" FormPremium5:09
- Continuing Work on the "Edit" FeaturePremium9:13
- Adding a "Delete" FunctionalityPremium3:22
- Adding a "Filter" ComponentPremium8:48
- Some Final StepsPremium2:36
- Wrap UpPremium0:48
- Useful Resources & LinksPremium1:00
Section 12Motion, Transitions & Animations
- Module IntroductionPremium0:53
- Animating Values with a Tweened StorePremium6:54
- Using a Spring Store InsteadPremium8:20
- Preparing a Transition ExamplePremium3:38
- Element TransitionsPremium6:30
- More on TransitionsPremium5:17
- Using Different "in" and "out" TransitionsPremium1:30
- Animating Passive (Affected) ItemsPremium2:51
- Deferred TransitionsPremium1:00
- Wrap UpPremium0:47
- Useful Resources & LinksPremium1:00
Section 13Course Project - Transitions
- Module IntroductionPremium1:03
- Animating the ModalPremium3:26
- Animating the Meetup ItemsPremium4:53
- Animating the "Favorite" Badge & Wrap UpPremium1:25
- Useful Resources & LinksPremium1:00
Section 14Network Interaction via Http
- Module IntroductionPremium1:32
- Adding a REST APIPremium2:44
- Sending Data via a POST RequestPremium6:58
- Showing a Loading Indicator & Sending Correct DataPremium3:16
- Fetching & Transforming DataPremium4:12
- Things to ConsiderPremium2:48
- Using the "await" BlockPremium3:35
- Http + A StorePremium5:34
- Wrap UpPremium0:59
- Useful Resources & LinksPremium1:00
Section 15Course Project - Http
- Module IntroductionPremium0:34
- Storing Meetups on a ServerPremium9:16
- Fetching & Transforming DataPremium4:53
- Adding a Loading SpinnerPremium5:44
- Updating via PATCHPremium6:32
- Sending "Favorite" Updates & Deleting DataPremium3:56
- Fixing the Order of ItemsPremium1:09
- Adding Error HandlingPremium7:13
- Wrap UpPremium0:47
- Useful Resources & LinksPremium1:00
Section 16Special Elements
- Module IntroductionPremium0:35
- Dynamic ComponentsPremium7:22
- Recursive ComponentsPremium6:10
- Accessing Windows, Body & HeadPremium6:45
- Cross-Component ScriptsPremium5:38
- Useful Resources & LinksPremium1:00
Section 17Routing & Server-side Rendering with Sapper
- Module IntroductionPremium0:46
- What and Why?Premium4:58
- Understanding the Folder StructurePremium2:53
- Inspecting the Web PagePremium2:20
- Filenames & RoutesPremium6:45
- Error & Layout PagesPremium2:16
- Preloading in ComponentsPremium5:12
- Pre-fetching DataPremium6:31
- Migrating the Meetup Project Files into the Sapper ProjectPremium6:45
- Fetching Data on the Client SidePremium9:14
- Prefetching Data on the ServerPremium6:12
- Syncing Fetched Data & the StorePremium3:32
- Editing & Deleting MeetupsPremium1:58
- Rendering the MeetupDetail PagePremium7:49
- Adding Global CSSPremium0:43
- Wrap UpPremium0:37
- Useful Resources & LinksPremium1:00
Section 18Deployment
- Module IntroductionPremium0:35
- Different App Types & Deployment OptionsPremium4:35
- Building the AppPremium4:38
- Rendering Content Correctly on the ServerPremium2:52
- Deploying a SSR AppPremium3:19
- Hosting a Static SitePremium4:49
- Wrap UpPremium0:42
- Useful Resources & LinksPremium1:00
Section 19Course Roundup
- Svelte vs React vs Angular vs VuePremium8:56
- Course SummaryPremium2:44
Course instructor
Maximilian Schwarzmüller
As a self-taught professional I really know the hard parts and the difficult topics when learning new or improving on already-known languages. This background and experience enable me to focus on the most relevant key concepts and topics. My track record of many 5-star rated courses, more than 1,000,000 students worldwide as well as a successful YouTube channel is the best proof for that.
The most rewarding experience for me is to see how people find new, better jobs, build awesome web applications, work on amazing projects or simply enjoy their hobby with the help of my content. That's why, together with Manuel Lorenz, I founded Academind to offer the best possible learning experience and to share the pleasure of learning with our students.