Building with Svelte - all you need to know before you start
Tags: svelte, javascript, tutorial
Published: 2020-08-10 06:40:20

*TL;DR - unlike established component-based frameworks such as React, Angular, or Vue, with Svelte you can take building user interfaces to the next level. Many devs are interested in learning about building with Svelte and we’d love to help you kick start! Here is a hand-picked list of some valuable resources to assist you to get started with Svelte.*

## Why Svelte?

There's a good reason why Svelte is gaining popularity among frontend developers lately. I made a brief of the major advantages that are agreed by many developers who tried building with Svelte and lived to tell their story.

### What’s the benefit?

* Instead of doing most of the work in the browser, Svelte does its work when you build the app and it **compiles it to efficient vanilla JavaScript**.
* **Reduces the overhead** of the JavaScript framework you’re using. By compiling Svelte to vanilla JavaScript improves the code readability, enables re-use and it produces a much faster web app.
* Svelte does not require declarative, state-driven code, which the browser has to convert into DOM operations. That means **you don’t need to use virtual DOM anymore**.

### What’s the downside?

* **IDE support** is not yet comparable to the commonly-used frameworks. It still has a lot of room for improvement. Although there are some good resources online to solve some of the issues, it can be considered as a major disadvantage as of today. 
* **Not many Svelte dev tools** exist at the moment. It is still a young and growing ecosystem. Keep that in mind. However, that’s a great opportunity to develop some for the Svelte community. 
* **Small open-source ecosystem**. Like many other frameworks, it takes time to build a large community around a specific framework. Although Svelte has gone a pretty decent way already, there are still not enough open-source contributors. Same here, you can look at it as an opportunity as well. 

Want to read more about the pros and cons of building with Svelte?
* [CTO’s guide to Svelte – what can the rising frontend framework do for you?](https://tsh.io/blog/svelte-framework/)
* [Same but different: Introduction to Svelte](https://blog.codecentric.de/en/2020/02/same-but-different-introduction-to-svelte/)
* [Svelte: comparison with other frameworks](https://codeburst.io/svelte-comparison-with-other-frameworks-e895c45567de)
* [A quick example that emphasis the pros and cons of Svelte](https://dev.to/geeksrishti/building-a-dashboard-in-svelte-2fkp) 

## Resources to get you started

### Svelte ecosystem 101 👋🏼

* [Svelte’s Homepage](https://svelte.dev/)
* [The official Selvte community](https://svelte-community.netlify.app/)
* [Svelte GitHub repository](https://github.com/sveltejs/svelte)
* [Svelte Discord server](https://svelte.dev/chat)
* [Svelte sub-reddit](https://www.reddit.com/r/sveltejs/)

### Tutorials 🤓

We don’t want to overwhelm you with tutorials. There are tons of tutorials out there and we picked only the ones that are both **practical, comprehensive and user-friendly**:
* [The official tutorial](https://svelte.dev/tutorial/basics) by Svelte developers.
* [Building My First Svelte App: Thoughts and Impressions](https://scotch.io/tutorials/building-my-first-svelte-app-thoughts-and-impressions) by [Chris on Code](https://twitter.com/chrisoncode)

### Use Cases and Demos 🚀

Like anything, inspiration is important when starting with something new. Check out some cool projects that are using Svelte. Some of them are in production and some are demo apps: 
* [OmniaWrite](https://omniawrite.com/) - A text editor engineered for creative writing. Also on [GitHub](https://github.com/TorstenDittmann/OmniaWrite) 
* [TypeRunner.js](https://tsh.io/typerunner) - A simple typing game, which has 2-4 human players compete against each other. The one to first type out the entire block of text wins.
* [Hacker News clone](https://hn.svelte.dev/) built with Svelte. Also on [GitHub](https://github.com/sveltejs/hn.svelte.dev). 
* [Nomie](https://nomie.app/) - Mood and Life Tracker built with Svelte. Also on [GitHub](https://github.com/open-nomie/nomie). 
* Cool showcase of many other apps [made with Svelte](https://madewithsvelte.com/)

### Useful code repositories 💻

* [svelte-grid](https://github.com/vaheqelyan/svelte-grid) - A responsive, draggable and resizable grid layout, for Svelte
* [Vime](https://github.com/vime-js/vime) - Focused on making embedding and using media elements for the web simple
* [svelte-mui](https://github.com/vikignt/svelte-mui) - A set of Svelte UI components inspired by [Google's Material Design](https://material.io/design)
* [svelte-component-template](https://github.com/YogliB/svelte-component-template) - A base for building shareable Svelte 3 components
* [svelte-loader](https://github.com/sveltejs/svelte-loader) - Webpack loader for Svelte components
* [svelte-routing](https://github.com/EmilTholin/svelte-routing) - A declarative Svelte routing library with SSR support
* [Routify](https://github.com/roxiness/routify) - Automated Svelte routes
* [svelte-inetllij](https://github.com/tomblachut/svelte-intellij) - Provides syntax highlighting of Svelte components in WebStorm and friends
* [@testing-library/svelte](https://github.com/testing-library/svelte-testing-library) - Simple and complete DOM testing utilities that encourage good practices
* [svelte-apollo](https://github.com/timhall/svelte-apollo) - Svelte integration for Apollo GraphQL
* Search repos more [here](https://svelte-community.netlify.app/code/)
* Explore some basic [code examples](https://svelte.dev/examples#hello-world)

### Developer Tools 🔧

As we said… not many field-tested developer tools available at the moment. However, this one is quite useful: Svelte DevTools browser extension for [Chrome](https://chrome.google.com/webstore/detail/svelte-devtools/ckolcbmkjpjmangdbmnkpjigpkddpogn) and [Firefox](https://addons.mozilla.org/en-US/firefox/addon/svelte-devtools/)


### Stay updated about Svelte news 🏄🏻

* [The official Svelte blog](https://svelte.dev/blog)
* [Why Svelte](https://why-svelte-js.web.app/) - a news aggregator built especially for Svelte news
* [daily.dev](https://daily.dev/topic/svelte) - Never miss an update about Svelte. Let daily.dev collect and rank the latest tech news for you every new tab
* [Svelte newsletter](https://shershen08.github.io/sveltejsnews/) - get the latest Svelte news to your inbox bi-weekly 

Did I miss an important resource? Comment below and let me know! 👇🏽

<hr/>
## More posts that might be interesting as well

* [How to write viral stories for developers](https://dev.to/dailydotdev/how-to-write-viral-stories-for-developers-fho)
* [How to gain experience as a web developer? Powerful ideas for code newbies](https://dev.to/dailydotdev/how-to-gain-experience-as-a-web-developer-powerful-ideas-for-junior-developers-2p44)
* [10 useful web development newsletters](https://dev.to/dailydotdev/10-useful-web-development-newsletters-37nf)
* [5 useful DevOps newsletters that will blow your mind 🤯
](https://dev.to/dailydotdev/5-useful-devops-newsletters-that-will-blow-your-mind-1dh4)
* [5 practical ways for web developers to stay updated in the latest tech news](https://dev.to/dailydotdev/5-practical-ways-for-web-developers-to-stay-updated-in-the-latest-tech-news-4i32)

<hr/>
_[daily.dev](https://r.daily.dev/get?r=devto) delivers the best programming news every new tab. We will rank hundreds of qualified sources for you so that you can hack the future._
[![Daily Poster](https://dev-to-uploads.s3.amazonaws.com/i/b996k4sm4efhietrzups.png)](https://r.daily.dev/get?r=devto)