Svelte
Svelte Logo.svg
Original author(s)Rich Harris
Developer(s)The Svelte contributors. Key contributors include Rich Harris, Alan Faubert, Tan Li Hau, Ben McCann, and Simon Holthausen
Initial releaseNovember 26, 2016; 5 years ago (2016-11-26)[1]
Stable release
3.48.0[2] Edit this on Wikidata / 30 April 2022; 5 months ago (30 April 2022)
Repositorygithub.com/sveltejs/svelte
Written inTypeScript
PlatformWeb platform
Size4.1 KB[3]
TypeWeb framework
LicenseMIT License
Websitesvelte.dev

Svelte is a free and open-source front end compiler created by Rich Harris and maintained by the Svelte core team members.[4] Svelte is not a monolithic JavaScript library imported by applications: instead, Svelte compiles HTML templates to specialized code that manipulates the DOM directly, which may reduce the size of transferred files and give better client performance;[5] application code is also processed by the compiler, inserting calls to automatically recompute data[6] and re-render UI elements when the data they depend on is modified.[7] This also avoids the overhead associated with runtime intermediate representations, such as virtual DOM,[8] unlike traditional frameworks (such as React and Vue) which carry out the bulk of their work at runtime, i.e in the browser. The compiler itself is written in TypeScript. Its source code is licensed under MIT License and hosted on GitHub.[9]

History

The predecessor of Svelte is Ractive.js, which Rich Harris had developed earlier.[10]

Version 1 of Svelte was written in JavaScript and was released on 29 November 2016. It was basically Ractive with a compiler.[11] The name Svelte was chosen by Rich Harris and his coworkers at The Guardian.[11]

Version 2 of Svelte was released on 19 April 2018. It set out to correct what the maintainers viewed as mistakes in the earlier version such as replacing double curly braces with single curly braces.[11]

Version 3 of Svelte is written in TypeScript and was released on 21 April 2019. It rethought reactivity by using the compiler to instrument assignments behind the scenes.[12]

The SvelteKit web framework was announced in October 2020 and entered beta in March 2021.[13][14]

Key early contributors became involved with Conduitry joining with the release of Svelte 1, Tan Li Hau joining in 2019, and Ben McCann joining in 2020.[15] Rich Harris and Simon Holthausen joined Vercel to work on Svelte fulltime in 2022.[16]

Syntax

Svelte applications and components are defined in .svelte files, which are HTML files extended with templating syntax that is similar to JSX.

Svelte repurposes JavaScript's native labeled statement syntax $: to mark reactive statements. Top-level variables become the component's state and exported variables become the properties that the component receives. Additionally, the { JavaScript code } syntax can be used for templating in HTML elements and components,[17] which is shown below:

<script>
    let count = 1;
    $: doubled = count * 2;
</script>

<p>{count} * 2 = {doubled}</p>

<button on:click={() => count = count + 1}>Count</button>

Associated projects

The Svelte maintainers created SvelteKit as the official way to build projects with Svelte. It is a Next.js-style framework that dramatically reduces the amount of code that gets sent to the browser. The maintainers had previously created Sapper, which was the predecessor of SvelteKit.[18]

The Svelte maintainers also maintain a number of integrations for popular software projects under the Svelte organization including integrations for Vite, Rollup, Webpack, TypeScript, VS Code, Chrome Developer Tools, eslint, and prettier.[19] A number of external projects such as Storybook have also created integrations with Svelte and SvelteKit.

Influence

Vue.js modeled its API and single-file components after Ractive.js, the predecessor of Svelte.[10]

Adoption

Svelte is widely praised by developers. Taking the top ranking in multiple large scale developer surveys, it was chosen as the Stack Overflow 2021 most loved web framework[20] and 2020 State of JS frontend framework with the most satisfied developers.[21]

Svelte has been adopted by a number of high-profile web companies including The New York Times, Apple, Spotify, Square, Yahoo, ByteDance, Rakuten, Bloomberg, Reuters, Ikea, Facebook, and Brave.[22][23][24]

A community group of non-maintainers run the Svelte Summit conference, write a Svelte newsletter, host a Svelte podcast, and host a directory of Svelte tooling, components, and templates.[25]

See also

References

  1. ^ "Frameworks without the framework: why didn't we think of this sooner?". Svelte.
  2. ^ https://github.com/sveltejs/svelte/releases/tag/v3.48.0.
  3. ^ "Svelte@3.31.2". BundlePhobia. January 8, 2021.
  4. ^ a b Krill, Paul (December 2, 2016). "Slim, speedy Svelte framework puts JavaScript on a diet". InfoWorld.
  5. ^ a b "React vs. Svelte, the JavaScript build-time framework". react-etc.net.
  6. ^ a b Rich Harris (2019-04-22). "Svelte 3: Rethinking reactivity". svelte.dev. Retrieved 2021-08-07.
  7. ^ a b "Svelte 3 Front-End Framework Moves Reactivity into the JavaScript Language, Q&A with Rich Harris". InfoQ.
  8. ^ a b Rich Harris (2018-12-27). "Virtual DOM is pure overhead". svelte.dev.
  9. ^ a b "GitHub - sveltejs/svelte: Cybernetically enhanced web apps". January 11, 2020 – via GitHub.
  10. ^ a b "About the Svelte JavaScript framework". ValueLogic | Blog. 2020-11-19. Retrieved 2021-06-10. By the way, Vue’s syntax has been influenced by Ractive.js, a direct predecessor of Svelte.((cite web)): CS1 maint: url-status (link)
  11. ^ a b c Svelte Origins: A JavaScript Documentary, retrieved 2022-07-09
  12. ^ Harris, Rich. "Svelte 3: Rethinking reactivity". svelte.dev. Retrieved 2022-07-09.
  13. ^ Rich Harris: Futuristic Web Development, archived from the original on 2021-12-12, retrieved 2021-08-03
  14. ^ Mar 23 2021, Rich Harris Tue. "SvelteKit is in public beta". svelte.dev. Retrieved 2021-08-03.
  15. ^ Svelte Origins: A JavaScript Documentary, retrieved 2022-09-04
  16. ^ Twitter https://twitter.com/rich_harris/status/1458822051263823875?lang=en. Retrieved 2022-09-04. ((cite web)): Missing or empty |title= (help)
  17. ^ "Svelte tutorial page", svelte.dev, retrieved 2022-07-06
  18. ^ Dec 31 2017, Rich Harris Sun. "Sapper: Towards the ideal web app framework". svelte.dev. Retrieved 2021-08-15.
  19. ^ "Svelte". GitHub. Retrieved 2021-08-03.
  20. ^ "Stack Overflow Developer Survey 2021". Stack Overflow. Retrieved 2021-10-26.((cite web)): CS1 maint: url-status (link)
  21. ^ "State of JS 2020: Front-end Frameworks". 2020.stateofjs.com. Retrieved 2021-10-26.
  22. ^ "Svelte • Cybernetically enhanced web apps". svelte.dev. Retrieved 2021-08-03.
  23. ^ "Websites using Svelte - Wappalyzer". www.wappalyzer.com. Retrieved 2021-08-03.
  24. ^ "Your Profile, Your Home Experience". yourhome.fb.com. Retrieved 2021-12-01.
  25. ^ "Home - Svelte Society". sveltesociety.dev. Retrieved 2021-08-03.