Svelte or SvelteKit: Making an Informed Decision for Web Developmentication

Page 1

Home  Insights  Svelte vs SvelteKit: Understanding Key Di몭erences and Similarities
vs SvelteKit: Understanding Key
AUTHOR Tien Nguyen DATE May 12, 2023 CATEGORY Insights       In today’s digital landscape, you have many options for building modern web   This website uses cookies to ensure you get the best experience on our website. Learn more x
Svelte
Differences and Similarities

In today’s digital landscape, you have many options for building modern web applications. Two popular frameworks in this space are Svelte and SvelteKit.

In this article, we’ll explore Svelte and SvelteKit in detail, discovering what they have in common and how they di몭er. Whether you’re an experienced developer or new to coding, understanding these frameworks is crucial for making informed choices in your projects.

Throughout this post, I’ll guide you on a comprehensive tour of Svelte vs SvelteKit, highlighting their strengths, architectural styles, and tools. By the end, you’ll have a clear understanding of what makes these frameworks unique and how they can be used to create exceptional web applications

So, let’s dive in!

Table of Contents

1 Understanding Svelte

2. Exploring SvelteKit

3 Svelte vs SvelteKit

4. Language and Syntax

5. Component-based Architecture

6 Routing and Navigation

7. SSR

8. State Management

9 Performance and Bundle Size

10. Learning Curve and Documentation

11 Use Cases and Real-world Examples

12. Pros and Cons

13. Conclusion

14 FAQs

Understanding Svelte

Got it

Before we delve into the comparisons, let’s start by gaining a solid understanding of Svelte itself Svelte is a modern JavaScript framework that has been gaining popularity for its innovative approach to building web applications. Unlike traditional frameworks that run in the browser, Svelte takes a di몭erent approach.

At its core, Svelte is a compiler It compiles your declarative code into highly e몭cient JavaScript code that runs in the browser. This means that instead of shipping a bulky framework library to the client, Svelte compiles your components into optimized code during the build process

One of the key advantages of Svelte is its simplicity and lightweight nature. With Svelte, you don’t need to deal with complex virtual DOM or heavy runtime libraries. Instead, you focus on writing expressive and reactive components using Svelte’s intuitive syntax

Svelte introduces the concept of reactive statements, allowing you to declaratively de몭ne how your components respond to changes in data. This reactive nature of Svelte enables a smooth and e몭cient rendering process, ensuring that only the necessary parts of your application are updated when data changes.

Additionally, Svelte embraces a component-based architecture. You can break down your application into reusable and self-contained components, each with its own logic and styling. These components can be easily composed together to build complex user interfaces, promoting code reusability and maintainability.

With Svelte, you also have the 몭exibility to choose your preferred state management approach. Whether you opt for the built-in reactivity system or prefer to use external state management libraries like Redux or MobX, Svelte o몭ers seamless integration.

Exploring SvelteKit

In this section, we’ll shift our focus to SvelteKit, a framework built on top of Svelte. SvelteKit takes the robust foundation of Svelte and enhances it with additional features, making it an excellent choice for building scalable and dynamic web applications.

SvelteKit is designed to address the challenges of building larger, multi-page applications It introduces server-side rendering (SSR), allowing you to pre-render your application on the server and deliver optimized HTML to the client. This approach improves initial load times and ensures search engine optimization (SEO) bene몭ts.

One of the signi몭cant advantages of SvelteKit is its integrated routing system It provides a straightforward way to de몭ne and handle routes within your application. Whether you need simple static routes or dynamic routes that fetch data from external APIs, SvelteKit has you covered It simpli몭es the process of creating navigational 몭ows and handling user interactions.

SvelteKit also embraces a modular architecture, allowing you to organize your application into separate routes and layouts Each route can have its own set of components, styles, and logic, promoting code separation and maintainability This modular structure makes it easier to collaborate with other developers and scale your application as it grows.

Another notable feature of SvelteKit is its built-in support for serverless functions With serverless functions, you can o몭oad backend logic to serverless platforms like AWS Lambda or Azure Functions. This enables you to build dynamic and interactive features without the need for a traditional backend server

SvelteKit bene몭ts from the same simplicity and reactivity that Svelte o몭ers. You can still leverage Svelte’s intuitive syntax, reactive statements, and component-based architecture while enjoying the additional capabilities provided by SvelteKit

Svelte vs SvelteKit

The following table summarizes the key features of Svelte and SvelteKit:

Language and Syntax Simple and intuitive syntax

Builds upon Svelte syntax

Component-based Architecture Yes Yes

Routing and Navigation Requires external library Built-in routing system

Server-side Rendering (SSR) No Built-in SSR capabilities

State Management Reactive variables

Performance and Bundle Size

Learning Curve and Documentation

Use Cases

Small bundle size

Easy to learn

Single-page applications

Reactive variables + Stores

Optimal performance and bundling

Extensive documentation and resources

Multi-page applications, larger projects

In the following sections, we’ll dive into each aspect in more detail

Language and Syntax

When it comes to language and syntax, both Svelte and SvelteKit share a common foundation since SvelteKit is built on top of Svelte. However, there are some di몭erences and additional features introduced by SvelteKit

Svelte

Svelte uses a straightforward and expressive syntax that focuses on simplicity and readability. It employs a component-based approach where you de몭ne your UI elements as reusable Svelte components. The syntax resembles HTML and JavaScript, making it easy for developers familiar with these languages to get started

In Svelte, you write your component templates using HTML-like markup with the addition of special directives and reactive statements. These directives allow you to handle events, conditionally render content, iterate over arrays, and bind data to HTML elements.

JavaScript code is seamlessly integrated within the component, allowing you to de몭ne component-speci몭c logic and manipulate data You can write JavaScript code inside

Feature Svelte SvelteKit

component-speci몭c logic and manipulate data. You can write JavaScript code inside script tags using the familiar JavaScript syntax.

Here’s a simple code example to demonstrate how Svelte works:

1 <!­­ App svelte ­­>

2 <script>

3 let name = 'Tien Nguyen';

4. </script>

5.

6. <main>

7 <h1>Hello, {name}!</h1>

8 <p>Welcome to the exciting world of Svelte </p>

9

10 <label>

11. Enter your name:

12. <input type="text" bind:value={name}>

13. </label>

14 </main>

App.svelte

<script> name 'Tien Nguyen'

In this example, we have a Svelte component called Inside the tag, we declare a variable and set its initial value to . This variable will be reactive, meaning any changes to it will automatically update the corresponding parts of the user interface

SvelteKit

SvelteKit builds upon the Svelte syntax and extends it with additional features to facilitate building multi-page applications. It introduces a routing system that enables you to de몭ne and handle routes within your application.

In SvelteKit, you de몭ne your routes using a dedicated routing syntax, where you specify the route path and associate it with a speci몭c component. This allows you to create separate pages for di몭erent URLs and manage the navigation 몭ow of your application.

SvelteKit also provides a layout system, which allows you to de몭ne common layouts that are shared across multiple pages. This helps in maintaining consistent styling and structure throughout your application.

Furthermore, SvelteKit introduces SSR capabilities. With SSR, you can de몭ne serverside endpoints that handle data fetching and pre-render your application on the server. This provides the bene몭t of improved initial load times and SEO.

Here is a basic example of a SvelteKit app that has three routes: , , and : / /about /posts/[id]

index.svelte

1. <!­­ src/routes/index.svelte ­­>

2 <script>

3 // this is the home page

4 </script>

5

6 <h1>Welcome to SvelteKit</h1>

7. <nav>

8. <a href="/about">About</a>

9 <a href="/posts/1">First post</a>

10 <a href="/posts/2">Second post</a>

11 </nav>

about svelte

1 <!­­ src/routes/about svelte ­­>

2 <script>

3 // this is the about page

4 </script>

5.

6. <h1>About SvelteKit</h1>

7 <p>SvelteKit is a framework for building full­stack web applications using Svelte components and server­side rendering </p>

8 <a href="/">Go back home</a>

[id] svelte

1 <!­­ src/routes/posts/[id] svelte ­­>

2 <script context="module">

3 // this function runs on the server and returns props for the component

4. export async function load({ params, fetch }) {

5. // get the post id from the params object

6. const { id } = params;

7.

8. // fetch the post from an API

9. const res = await fetch(`https://jsonplaceholder typicode com/posts/${id}`);

10 const post = await res json();

11

12 // return the post as props

13 return {

14 props: { 15 post

16. } 17. };

18. }

19. </script>

20.

21. <script>

22 // receive the props from the load function

23 export let post;

24 </script>

25

26

<!­­ this is a dynamic page that displays a post based on the id

>

27. <h1>{post.title}</h1>

28. <p>{post.body}</p>

29 <a href="/">Go back home</a>

Component-based Architecture

Both Svelte and SvelteKit embrace a component-based architecture, which promotes code reusability, modularity, and maintainability However, there are some di몭erences in how components are created and used in each framework.

Svelte

In Svelte, components are at the heart of building user interfaces. You de몭ne components as reusable building blocks that encapsulate their own markup, styles, and logic Each component consists of three main parts: the HTML-like template, the JavaScript code, and the optional CSS styles.

Components in Svelte can be easily reused throughout your application. You can import and use components within other components, allowing for composition and building complex user interfaces. Svelte’s reactivity system ensures that changes in data 몭ow seamlessly through the component hierarchy, triggering UI updates as needed.

SvelteKit

In SvelteKit, the component-based architecture remains similar to Svelte, with some additional features to facilitate building multi-page applications. Components play a crucial role in de몭ning the UI for each page.

Each page in SvelteKit is associated with a speci몭c component that acts as its main template This component represents the entire content and logic for that particular page. You can de몭ne components within a page component to encapsulate reusable parts of the page UI or functionality.

SvelteKit introduces layouts, which are higher-order components that de몭ne the common structure, styles, and behaviors shared across multiple pages. Layouts allow you to create consistent headers, footers, sidebars, or navigation menus that are applied to multiple pages

The component-based nature of SvelteKit makes it easy to create and manage complex application structures. You can break down your application into modular components, organize them in a logical hierarchy, and reuse them across multiple pages and layouts.

Routing and Navigation

Routing and navigation are essential aspects of building web applications, allowing users to navigate between di몭erent pages or views. Both Svelte and SvelteKit o몭er solutions for handling routing and navigation, albeit with some variations.

Svelte

In Svelte, handling routing and navigation requires the integration of external routing libraries or manual implementation There are popular routing libraries available, such as Svelte Routify or Svelte SPA Router, that provide routing capabilities for Svelte applications.

These routing libraries allow you to de몭ne routes and associate them with speci몭c components You can specify route parameters, handle dynamic URLs, and handle navigation events such as clicking on links or programmatically triggering navigation.

With a routing library in Svelte, you can achieve client-side routing, where navigation occurs within the browser without a full page reload This provides a smooth user experience as the content updates dynamically without the need for a complete page refresh.

SvelteKit

SvelteKit simpli몭es the process of routing and navigation by providing an integrated routing system It allows you to de몭ne routes directly within your SvelteKit application without the need for external routing libraries.

In SvelteKit, you de몭ne routes in a dedicated directory, specifying the URL routes

path and associating it with a corresponding page component. This approach provides a clear and centralized way to de몭ne the navigational structure of your application.

SvelteKit supports both client-side navigation and SSR When a user navigates between pages, the appropriate page component is rendered and displayed without a full page reload. This ensures a seamless and responsive user experience.

Additionally, SvelteKit supports features like route parameters, query parameters, and nested routes You can de몭ne dynamic segments in your routes, allowing you to handle URLs with variable values. This 몭exibility enables you to create dynamic and interactive web applications.

With SvelteKit’s integrated routing system, you can easily manage the navigation 몭ow of your application, handle di몭erent routes, and create dynamic pages without relying on external routing libraries.

SSR

Let’s examine how Svelte and SvelteKit handle SSR.

Svelte

By default, Svelte focuses on client-side rendering, where the application is rendered and executed on the client’s browser. If you want to support SSR in your Svelte app, use SvelteKit

SvelteKit

SvelteKit introduces built-in SSR capabilities, making it easier to adopt and leverage SSR in your applications. With SvelteKit, SSR is seamlessly integrated into the framework’s routing system.

When a request is made to a SvelteKit application, the server pre-renders the corresponding page on the server and sends back the pre-rendered HTML to the client. This initial HTML payload ensures fast and meaningful content for users, enhancing the overall user experience

SSR in SvelteKit is particularly bene몭cial for content-heavy applications or scenarios where SEO is a priority. By delivering pre-rendered HTML to search engine crawlers, you can improve the discoverability and ranking of your application in search engine results

results.

In addition to SSR, SvelteKit also supports client-side hydration. Once the initial HTML is loaded, SvelteKit takes over on the client side and rehydrates the application, making it interactive and reactive. This combination of SSR and client-side hydration o몭ers the best of both worlds.

By providing integrated server-side rendering capabilities, SvelteKit simpli몭es the process of adopting SSR and o몭ers a powerful solution for building performant and SEO-friendly web applications.

State Management

State management is a crucial aspect of web application development, as it allows you to manage and share data between components e몭ciently. Let’s examine how Svelte and SvelteKit handle state management.

Svelte

Svelte provides a built-in reactive system that simpli몭es state management within components With Svelte’s reactivity, you can declaratively de몭ne how your components react to changes in data.

In Svelte, you can declare variables and reactive statements within your component’s JavaScript code These variables can hold the state of your application, and when they change, Svelte automatically updates the a몭ected parts of the UI.

Svelte’s reactive nature eliminates the need for complex state management libraries in many cases You can handle state within individual components using simple reactive assignments and conditionals.

However, if your application requires more advanced state management or you prefer to use external state management libraries, Svelte allows seamless integration with popular libraries like Redux or MobX. This 몭exibility empowers you to choose the state management approach that best suits your application’s needs.

SvelteKit

SvelteKit inherits the reactive state management capabilities of Svelte and extends them to handle state management at the application level

$session $page

$session

In SvelteKit, you can de몭ne shared state using the and stores. The store holds data that persists across multiple pages and client-side navigations, while the store holds data speci몭c to the current page

$page

These stores allow you to share and synchronize data between di몭erent components and pages in your SvelteKit application. By leveraging the stores, you can ensure that the shared state remains consistent and reactive across the entire application

With the combination of reactive state management and the application-level stores in SvelteKit, you have powerful tools to handle state e몭ectively and share data between components and pages

Performance and Bundle Size

Performance and bundle size are critical considerations when developing web applications Let’s explore how Svelte and SvelteKit fare in terms of performance and bundle size.

Svelte

Svelte is known for its excellent performance due to its compile-time approach. During the build process, Svelte compiles the components into highly optimized JavaScript code that is speci몭cally tailored to the component’s functionality This approach results in leaner and more e몭cient code compared to traditional runtime frameworks.

Svelte’s compile-time approach also eliminates the need for a virtual DOM, which reduces the overhead associated with virtual DOM di몭ng and reconciliation This leads to faster initial rendering and updates, resulting in a smoother user experience

Moreover, Svelte’s reactive nature allows it to update only the a몭ected parts of the UI when the underlying data changes. This 몭ne-grained reactivity minimizes unnecessary updates and further enhances the performance of Svelte applications

In terms of bundle size, Svelte produces compact bundles due to its e몭cient compilation process. Svelte optimizes the output by removing unused code, treeshaking dependencies, and generating minimal runtime overhead This results in smaller bundle sizes, allowing for faster downloads and improved page load times.

SvelteKit

SvelteKit

SvelteKit inherits the performance bene몭ts of Svelte while also introducing additional optimizations speci몭c to web applications

SvelteKit leverages SSR to pre-render pages on the server, providing fast initial content loading and improved perceived performance. By sending pre-rendered HTML to the client, users can view meaningful content without waiting for JavaScript to load and execute.

After the initial load, SvelteKit takes over on the client side and rehydrates the application, making it interactive and reactive This combination of server-side rendering and client-side hydration provides a smooth and responsive user experience.

When it comes to bundle size, SvelteKit optimizes the generated bundles by automatically splitting code and loading components and dependencies on demand This lazy-loading approach reduces the initial bundle size and improves the overall performance of the application.

In short, both Svelte and SvelteKit prioritize performance and aim to generate e몭cient and optimized applications. Svelte’s compile-time approach and 몭ne-grained reactivity contribute to its excellent performance, while SvelteKit combines SSR, client-side hydration, and lazy-loading to enhance the overall performance and user experience.

Learning Curve and Documentation

The learning curve and availability of comprehensive documentation are important factors to consider when adopting a new framework. Let’s examine the learning curve associated with Svelte and SvelteKit and the resources available to support your learning journey.

Svelte

Svelte o몭ers a relatively gentle learning curve, especially for developers familiar with web development concepts like JavaScript, HTML and CSS. Its syntax is intuitive and easy to understand, making it accessible for beginners and experienced developers alike.

The o몭cial Svelte documentation serves as an excellent resource for learning the framework It provides detailed explanations, code examples, and tutorials to guide you through the core concepts and features of Svelte The documentation covers topics

through the core concepts and features of Svelte. The documentation covers topics ranging from basic usage to advanced techniques, making it a comprehensive learning companion.

In addition to the o몭cial documentation, the Svelte community actively creates tutorials, blog posts, video courses, and other learning materials. These community resources can further assist you in gaining a deeper understanding of Svelte and exploring best practices for building applications

SvelteKit

SvelteKit builds upon the concepts of Svelte and introduces additional features, so the learning curve may be slightly steeper compared to Svelte. However, if you are already familiar with Svelte, transitioning to SvelteKit should be relatively smooth.

The SvelteKit documentation provides a dedicated section that covers the unique features and usage of the framework. It guides you through the process of setting up a SvelteKit project, understanding the routing system, handling SSR, and more. The documentation is well-structured and o몭ers practical examples to help you grasp the concepts e몭ectively.

Additionally, the Svelte community and SvelteKit Discord channels serve as valuable platforms for seeking assistance, sharing experiences, and engaging with fellow developers. These communities foster a collaborative learning environment where you can connect with others and gain support as you explore SvelteKit.

Use Cases and Real-world Examples

Understanding the practical use cases and seeing real-world examples of applications built with Svelte and SvelteKit can help you evaluate their suitability for your projects. Let’s explore the use cases and highlight some notable examples.

Svelte

Svelte’s simplicity, performance, and reactivity make it a great choice for a wide range of applications Some common use cases for Svelte include:

1. Single-page Applications (SPAs): Svelte’s lightweight nature and e몭cient rendering make it well-suited for building SPAs that require fast initial loading, seamless navigation, and smooth user interactions

2. UI Components and Libraries: Svelte’s component-based architecture and reusability make it an excellent choice for developing UI components and libraries that can be easily integrated into di몭erent projects

3 Data Visualization: Svelte’s reactive capabilities make it ideal for building interactive data visualizations and dashboards where data updates can trigger realtime updates in the UI.

4. Prototyping and Proof of Concepts: Svelte’s simplicity and rapid development cycle make it a great tool for quickly prototyping ideas and creating proof of concepts.

Some notable examples of applications built with Svelte include:

GoDaddy: A company that specializes in providing website hosting and domain registration services.

The New York Times: An in몭uential daily newspaper based in New York City, widely read by people around the world

1Password: A password manager that o몭ers a convenient and secure way for users to store and manage their passwords, software licenses, and other sensitive information in a virtual vault, protected by a master password.

SvelteKit

SvelteKit’s additional features expand its range of use cases. Here are some scenarios where SvelteKit shines:

1. Full-stack Applications: SvelteKit’s built-in SSR and routing capabilities make it suitable for building full-stack applications, where both the server and client components are seamlessly integrated

2. Content-rich Websites and Blogs: SvelteKit’s SSR enables fast and SEO-friendly content delivery, making it an excellent choice for content-rich websites and blogs.

3. E-commerce Platforms: SvelteKit’s performance optimizations and SSR can enhance the user experience on e-commerce platforms, providing fast initial page loads and search engine visibility.

4. Collaborative Applications: SvelteKit’s real-time updates and reactive nature make it suitable for building collaborative applications that require real-time data synchronization and seamless user interactions

Some real-world examples of applications built with SvelteKit include:

Some real-world examples of applications built with SvelteKit include:

Appwrite – an open-source backend as a service that provides developers with a set of APIs to help them build applications faster

OneSkool – an online learning platform

Nordic SvindKit – a company that uses SvelteKit in their tech stack.

These examples highlight the versatility of Svelte and SvelteKit in various domains and their ability to power both small-scale projects and complex, production-ready applications.

Pros and Cons

Considering the pros and cons of Svelte and SvelteKit can help you weigh the advantages and limitations of each framework. Let’s examine the key strengths and weaknesses of both frameworks.

Svelte

Pros:

E몭ciency: Svelte’s compile-time approach and absence of a virtual DOM result in highly optimized and performant applications.

Reactivity: Svelte’s reactivity system simpli몭es state management and updates only the necessary parts of the UI, leading to faster rendering and responsiveness.

Simplicity: Svelte’s intuitive syntax and straightforward concepts make it easy to learn and use, particularly for developers familiar with HTML, CSS, and JavaScript.

Smaller Bundle Sizes: Svelte’s compilation process generates lean and compact bundles, resulting in faster downloads and improved page load times.

Active Community: Svelte has a growing and supportive community that contributes tutorials, libraries, and resources to aid developers in their journey

Cons:

Limited Ecosystem: While the Svelte ecosystem is expanding, it may not o몭er the same breadth of tools, libraries, and resources as more established frameworks.

Learning Curve for Reactive Paradigm: Developers transitioning from imperative or virtual DOM-based frameworks may need to adapt to Svelte’s reactive paradigm

or virtual DOM-based frameworks may need to adapt to Svelte’s reactive paradigm and the absence of explicit lifecycle methods.

SvelteKit:

Pros:

SSR: SvelteKit provides built-in SSR capabilities, resulting in faster initial content loading, improved SEO, and enhanced perceived performance.

Client-side Hydration: SvelteKit seamlessly transitions from SSR to client-side interactivity, o몭ering a smooth and responsive user experience

Routing and Layouts: SvelteKit’s integrated routing system and layouts simplify the management of routes and shared structures across pages.

Ecosystem Compatibility: SvelteKit bene몭ts from the existing Svelte ecosystem while adding speci몭c features for building web applications.

Cons:

Limited Maturity: As a relatively new framework, SvelteKit may have fewer resources and community plugins compared to more established frameworks

Learning Curve: SvelteKit’s additional features and concepts may introduce a slightly steeper learning curve, especially for developers new to Svelte.

Conclusion

In summary, we have explored the key di몭erences and similarities between Svelte and SvelteKit, two powerful web development frameworks.

If you’re looking for a simple and e몭cient way to build single-page applications, Svelte might be the right choice However, if you’re working on larger projects that require routing, SSR, and a more comprehensive ecosystem, SvelteKit provides the necessary tools and features.

Ultimately, both frameworks o몭er tremendous value and empower developers to create exceptional web applications. Whether you prefer the simplicity of Svelte or the extended capabilities of SvelteKit, you can’t go wrong with either choice.

You might want to checkout the following comparisons of Svelte vs other frameworks:

Svelte vs SolidJS Svelte vs NextJS

If you have any questions or need further assistance, feel free to refer to the FAQs section or leave a comment below. Happy coding!

FAQs

Here are some frequently asked questions about Svelte and SvelteKit:

1. Can I use Svelte components in SvelteKit? Yes, Svelte components can be seamlessly used in SvelteKit projects. SvelteKit builds upon the concepts of Svelte, so you can leverage your existing Svelte components or create new ones to build your application.

2. Can I migrate my existing Svelte project to SvelteKit? Yes, migrating an existing Svelte project to SvelteKit is possible and relatively straightforward SvelteKit provides a migration guide in its documentation to help you transition your project smoothly

3. How does server-side rendering (SSR) work in SvelteKit? SvelteKit incorporates SSR by pre-rendering your application on the server before sending it to the client. This enables faster initial content loading and improves SEO by providing fully rendered HTML to web crawlers.

4. What is the performance di몭erence between Svelte and SvelteKit? Both Svelte and SvelteKit emphasize performance, but SvelteKit’s SSR and client-side hydration provide additional bene몭ts. SSR helps improve initial content loading, while client-side hydration ensures interactivity and responsiveness after the initial page load. However, the exact performance gains depend on the speci몭c application and use case

5. Are there any notable companies or projects using Svelte or SvelteKit? Yes, Svelte and SvelteKit have gained popularity and are used by various companies and projects. Some notable examples include GoDaddy, The New York Times, and

1Password These applications showcase the versatility and capabilities of both frameworks.

6. Which framework is better for beginners: Svelte or SvelteKit? For beginners, Svelte is often considered a good starting point due to its simplicity and intuitive syntax. It provides a solid foundation for understanding reactive programming and

building web applications. Once familiar with Svelte, transitioning to SvelteKit becomes more accessible, leveraging the knowledge gained from working with Svelte

PREVIOUS ARTICLE

10 Best Books for HTML and CSS [2023]: Beginners to Advanced

You may also like

WebSocket vs WebRTC: Choosing the Right Protocol for Real-Time Communication

LEAVE A REPLY

Comment:

Flutter vs React Native: The Ultimate Comparison (2023)

Next JS vs Express: An In-Depth Comparison for Developers

Name:*

Email:*

Website:

Save my name, email, and website in this browser for the next time I comment

POST COMMENT

Recent posts

10 Best Books for HTML and CSS [2023]: Beginners to Advanced

May 11, 2023

Is CSS Hard to Learn? Discovering the Truth Behind Learning

CSS

May 10, 2023

WebSocket vs WebRTC: Choosing the Right Protocol for RealTime Communication

May 9, 2023

Is JavaScript Hard to Learn? Demystifying the Learning Curve and Tips for Success

May 7, 2023

Shallow Copy vs Deep Copy in JavaScript: Which One Should You Use?

POST COMMENT

FRONTEND MAG

hello@frontendmag.com

INFORMATION

Use?
You
May 3, 2023
About Contact Terms and Conditions Privacy Policy CONTACT 
 Hanoi,
Discover and share the exciting world of frontend web development to build stunning websites, apps, and services with cutting-edge technologies CONNECT     Copyright © 2022-2023 Frontend Mag All Rights Reserved
Vietnam

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.