<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Pavel Lazarev</title>
    <description>The latest articles on DEV Community by Pavel Lazarev (@plazarev).</description>
    <link>https://dev.to/plazarev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F340834%2F39a10a13-624b-474a-b7cf-0132042701f8.png</url>
      <title>DEV Community: Pavel Lazarev</title>
      <link>https://dev.to/plazarev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/plazarev"/>
    <language>en</language>
    <item>
      <title>DHTMLX React Scheduler: Create Customizable Scheduling Interfaces with React</title>
      <dc:creator>Pavel Lazarev</dc:creator>
      <pubDate>Thu, 28 Aug 2025 09:32:13 +0000</pubDate>
      <link>https://dev.to/plazarev/dhtmlx-react-scheduler-create-customizable-scheduling-interfaces-with-react-2dlg</link>
      <guid>https://dev.to/plazarev/dhtmlx-react-scheduler-create-customizable-scheduling-interfaces-with-react-2dlg</guid>
      <description>&lt;p&gt;When building scheduling features in a React app, developers often run into limitations with basic calendar libraries, including poor performance, limited flexibility, or unimpressive feature set. DHTMLX &lt;a href="https://dhtmlx.com/docs/products/dhtmlxScheduler-for-React/" rel="noopener noreferrer"&gt;React Scheduler&lt;/a&gt; solves these issues by providing a fully-featured scheduling component designed for React.&lt;/p&gt;

&lt;p&gt;With native props, state-friendly updates, full access to the Scheduler API, and seamless integration with Redux and Material UI, it allows web developers to focus on building powerful applications instead of reinventing scheduling logic.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F89fr0xrg59u42s89cxe1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F89fr0xrg59u42s89cxe1.png" alt="dhtmlx-react-scheduler" width="800" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let’s dive into the main feature set of DHTMLX React Scheduler and learn how to get started quickly while building scheduling calendars in React.&lt;/p&gt;

&lt;h2&gt;
  
  
  React Scheduler Key Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  📂Declarative Data Handling
&lt;/h3&gt;

&lt;p&gt;DHTMLX React Scheduler is built to feel natural for React developers and simplify data management by embracing a declarative approach. You can pass arrays of events, calendar views, markers, and other configuration elements directly as props. This allows your scheduler to automatically render and update based on the data you provide, keeping your React code clean and in sync with your app state.&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚛️Full Control Through React Components
&lt;/h3&gt;

&lt;p&gt;You can replace default elements, including a lightbox editor or event templates, with custom React components by updating a property with no manual DOM manipulations.&lt;/p&gt;

&lt;h3&gt;
  
  
  🗓️Built-in Basic and Advanced Calendar Views
&lt;/h3&gt;

&lt;p&gt;The Scheduler component comes with a rich set of customizable calendar views to cover a wide range of scheduling scenarios. Out of the box, you can switch between Day, Week, Month, Year, Agenda, and Map views to display events in the most convenient format.&lt;/p&gt;

&lt;p&gt;For more complex scenarios, DHTMLX Scheduler offers advanced views, including Grig, Week Agenda, Timeline, and Units. The Timeline view displays events arranged horizontally across separate timelines, making it perfect for visualizing workloads by people, rooms, or equipment. The Units view organizes resources along the X-axis with a timescale on the Y-axis. This setup makes it easy to build daily planners or staff timetables, since any property can group events.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔁Recurring Events
&lt;/h3&gt;

&lt;p&gt;The React Scheduler component comes with built-in support for recurring events. You can define repeat patterns, e.g., on a daily, weekly, monthly, and yearly basis, and the component will automatically generate and update all instances, thus saving end-users from managing complicated recurrence logic themselves.&lt;/p&gt;

&lt;h3&gt;
  
  
  🖱️Rich Drag-and-Drop Behavior
&lt;/h3&gt;

&lt;p&gt;DHTMLX Scheduler provides smooth drag-and-drop support for event management. Users can create new events by dragging elements from external DHTMLX components into the calendar. Events can also be moved between multiple schedulers on the same page. Developers have full control over enabling or restricting drag-in/out actions, making scheduling more intuitive.&lt;/p&gt;

&lt;h3&gt;
  
  
  🚫Avoiding Overlapping Events
&lt;/h3&gt;

&lt;p&gt;You can set a limit on the number of events allowed per slot. Thus, for example, if a time interval is already booked, the React Scheduler can deny the creation of a second event at that time. By applying a simple configuration, DHTMLX Scheduler ensures data integrity and provides end-users with a clear, conflict-free scheduling experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚡️Dynamic Loading
&lt;/h3&gt;

&lt;p&gt;When working with large event collections, loading all data at once can slow down your app. DHTMLX React Scheduler solves this with dynamic loading, which fetches only the data required for the current visible area of the calendar.&lt;/p&gt;

&lt;p&gt;You can define how much data should be loaded at a time (by day, week, month, or year). For example, in a Week mode, the Scheduler will only request events for the current week, fetching additional weeks on demand as users navigate.&lt;/p&gt;

&lt;p&gt;For a better user experience, you can also enable a loading spinner, ensuring users know when new data is being fetched.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎨Flexible Theming and MUI Compatibility
&lt;/h3&gt;

&lt;p&gt;DHTMLX Scheduler comes with built-in themes and supports runtime theming using the skin prop. Styling is simplified through CSS variables. Therefore, you can adjust colors, fonts, and other UI elements consistently across your app. In addition, seamless integration with Material UI ensures your scheduler blends perfectly into modern React interfaces.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgvzk4gvk2vu34foijx9v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgvzk4gvk2vu34foijx9v.png" alt="react-scheduler-dark-skin" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Get Started
&lt;/h2&gt;

&lt;p&gt;DHTMLX React Scheduler is available as an NPM package and requires React 18 and newer. Under the hood, it initializes a standard DHTMLX Scheduler instance but translates React props.&lt;/p&gt;

&lt;p&gt;Here is an example of importing and rendering the Scheduler:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React, { useEffect, useRef, useState } from 'react';
import ReactScheduler, { Event, SchedulerConfig, SchedulerTemplates } from "@dhx/react-scheduler";
import "@dhx/react-scheduler/dist/react-scheduler.css";
import "./styles.css";
import { initialData } from "./DemoData";


export default function SchedulerTemplatesDemo() {
  const config: SchedulerConfig = {
    first_hour: 8,
    last_hour: 20,
    time_step: 15
  };

  const templates: SchedulerTemplates = {
    event_class: (start, end, event) =&amp;gt; {
      return event.classname || '' ;
    }
  };



  return (
    &amp;lt;div style=height: '100%', display: 'flex', flexDirection: 'column'&amp;gt;
      &amp;lt;ReactScheduler
        events={initialData.events}
        date={new Date("2025-08-15T00:00:00Z")}
        view={"week"}
        templates={templates}
        config={config}
      /&amp;gt;
    &amp;lt;/div&amp;gt;
  );
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can explore the &lt;a href="https://docs.dhtmlx.com/scheduler/react.html" rel="noopener noreferrer"&gt;React Scheduler documentation&lt;/a&gt; to dive deeper into its API and configuration options. For a hands-on introduction, check out the &lt;a href="https://github.com/DHTMLX/react-scheduler-quick-start" rel="noopener noreferrer"&gt;React Scheduler quick start&lt;/a&gt; on GitHub to see working examples and get up and running quickly.&lt;/p&gt;

&lt;p&gt;Summing up, DHTMLX React Scheduler is a powerful and developer-friendly solution for building advanced scheduling interfaces in React. With features like multiple calendar views, recurring events, and drag-and-drop support, it streamlines event management. Whether you’re creating booking systems or resource planners, React Scheduler helps you deliver a smooth and professional scheduling experience.&lt;/p&gt;

</description>
      <category>react</category>
      <category>reactjsdevelopment</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>⚛️ Introducing DHTMLX React Gantt: Build Professional Project Timelines in React</title>
      <dc:creator>Pavel Lazarev</dc:creator>
      <pubDate>Tue, 03 Jun 2025 15:47:56 +0000</pubDate>
      <link>https://dev.to/plazarev/introducing-dhtmlx-react-gantt-build-professional-project-timelines-in-react-1mbc</link>
      <guid>https://dev.to/plazarev/introducing-dhtmlx-react-gantt-build-professional-project-timelines-in-react-1mbc</guid>
      <description>&lt;p&gt;If you’re developing a React app and looking for a powerful Gantt chart component for managing projects, tasks, and resources, you should try DHTMLX Gantt. With support for React integration, DHTMLX Gantt brings enterprise-grade features out of the box to your React ecosystem. Developers can use the component natively and apply familiar concepts, without resorting to manual DOM manipulation.&lt;/p&gt;

&lt;p&gt;In this article, we’ll take a closer look at what features &lt;a href="https://dhtmlx.com/docs/products/dhtmlxGantt-for-React/" rel="noopener noreferrer"&gt;DHTMLX React Gantt&lt;/a&gt; offers, how to get started, and why this component might be a great fit for your project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0afy0uspioqdw71qmhec.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0afy0uspioqdw71qmhec.png" alt="dhtmlx-react-gantt" width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  📊 Key Features
&lt;/h3&gt;

&lt;p&gt;Here’s what makes DHTMLX React Gantt stand out:&lt;/p&gt;

&lt;h4&gt;
  
  
  🧩 Usage with Redux
&lt;/h4&gt;

&lt;p&gt;You can integrate Redux into your React Gantt setup to manage and store Gantt settings in a centralized state. When Gantt-related data changes, dispatching Redux actions updates the storage and triggers an automatic re-render.&lt;/p&gt;

&lt;h4&gt;
  
  
  🔄 Various Task Types and Dependencies
&lt;/h4&gt;

&lt;p&gt;The component supports a variety of task types, including regular tasks, projects, and milestones, allowing for flexible workflow visualization. Users can control how tasks relate to each other within the timeline by defining different types of dependencies, such as Start-to-Start, Finish-to-Finish, Finish-to-Start, and Start-to-Finish.&lt;/p&gt;

&lt;h4&gt;
  
  
  ⚙️ Auto Scheduling
&lt;/h4&gt;

&lt;p&gt;DHTMLX Gantt comes with a built-in scheduling engine that automatically calculates task start and end dates. It handles constraints and updates related tasks when changes occur. This feature is especially valuable for complex projects and large-scale charts that require dynamic recalculation.&lt;/p&gt;

&lt;h4&gt;
  
  
  🔗 Critical Path Calculation
&lt;/h4&gt;

&lt;p&gt;When enabled, DHTMLX Gantt highlights tasks that impact the project’s finish date, helping teams focus on the most time-sensitive parts of the schedule. This feature is handy when you need to monitor potential bottlenecks and ensure the key milestones are met on time.&lt;/p&gt;

&lt;h4&gt;
  
  
  👥 Resource Allocation
&lt;/h4&gt;

&lt;p&gt;The Gantt chart component allows end-users to assign and track resources across projects and tasks. It generates task- and resource-specific work-time calendars based on individual availability, shifts, and non-working days. You can select from two predefined resource views, namely resource load diagram and resource histogram, that visually highlight how resources are distributed, making it easier to identify overbooking or potential workload conflicts.&lt;/p&gt;

&lt;h4&gt;
  
  
  ⚛️ Custom React Components
&lt;/h4&gt;

&lt;p&gt;DHTMLX React Gantt provides total control over how a Gantt chart looks and behaves. Thus, for example, you can embed custom React components into lightbox forms, task templates, and inline editors.&lt;/p&gt;

&lt;h4&gt;
  
  
  🎨 MUI Support and Theming
&lt;/h4&gt;

&lt;p&gt;The Gantt chart component comes with several built-in themes that make it easy to customize its appearance to fit your app’s style. Themes can be applied dynamically and fine-tuned by adding custom CSS variables. DHTMLX Gantt also integrates smoothly with Material UI components.&lt;/p&gt;

&lt;h3&gt;
  
  
  🛠️ Getting Started
&lt;/h3&gt;

&lt;p&gt;DHTMLX React Gantt is distributed as a dedicated NPM package for easy setup in React 18+ apps. Under the hood, it initializes a standard DHTMLX Gantt instance, translating React props like tasks and settings automatically into the proper Gantt chart structures.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { useEffect, useRef } from "react";
import { useState } from 'react';
import ReactGantt from '@dhx/react-gantt';
import '@dhx/react-gantt/dist/react-gantt.css';
import { demoData } from './DemoData'
export default function BasicGantt() {
    const [tasks, setTasks] = useState(demoData.tasks);
    const [links, setLinks] = useState(demoData.links);
    const config = {
    scales: [
        { unit: "month", step: 1, format: "%F %Y" },
        { unit: "day", step: 1, format: "%d" }
    ]
    };
    return (
    &amp;lt;div style={{ height: '100vh' }}&amp;gt;
        &amp;lt;ReactGantt
        tasks={tasks}
        links={links}
        config={config}
        /&amp;gt;
    &amp;lt;/div&amp;gt;
    );
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🗣 Final Thoughts
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://dhtmlx.com/docs/products/dhtmlxGantt/download.shtml" rel="noopener noreferrer"&gt;DHTMLX React Gantt&lt;/a&gt; brings enterprise-level timeline visualization to the React ecosystem with a clean and flexible API. Whether you're building a startup MVP or an enterprise platform, this component provides the power and flexibility needed to deliver a great experience.&lt;/p&gt;

&lt;p&gt;Have you tried using DHTMLX React Gantt in your app? Thinking about integrating it? Share your thoughts in the comments!&lt;/p&gt;

</description>
      <category>react</category>
      <category>reactjsdevelopment</category>
      <category>webdev</category>
      <category>projectmanagement</category>
    </item>
    <item>
      <title>How to Create a Custom DataView Editor in a JavaScript Grid Table with DHTMLX</title>
      <dc:creator>Pavel Lazarev</dc:creator>
      <pubDate>Tue, 27 May 2025 11:54:36 +0000</pubDate>
      <link>https://dev.to/plazarev/how-to-create-a-custom-dataview-editor-in-a-javascript-grid-table-with-dhtmlx-54o</link>
      <guid>https://dev.to/plazarev/how-to-create-a-custom-dataview-editor-in-a-javascript-grid-table-with-dhtmlx-54o</guid>
      <description>&lt;p&gt;Data editing is one of &lt;a href="https://dhtmlx.com/blog/exploring-dhtmlx-grid-top-10-features-javascript-data-table/" rel="noopener noreferrer"&gt;numerous powerful features&lt;/a&gt; implemented in the DHTMLX Grid widget. Combining it with other Grid strengths like high customizability and interoperability with Suite widgets, you can add custom editing options to cover specific use case scenarios. In this article, you will learn how to enrich the Grid configuration with a dataview editor.&lt;/p&gt;

&lt;h2&gt;Example of a JavaScript Grid Table with a Custom DataView Editor&lt;/h2&gt;

&lt;p&gt;DHTMLX Grid is shipped with a range of &lt;a href="https://docs.dhtmlx.com/suite/grid/configuration/#types-of-column-editor" rel="noopener noreferrer"&gt;built-in column editors&lt;/a&gt; that make it much easier to add various editing forms to data tables in web apps. But what if you work on a dashboard or CMS that requires something more informative and visually appealing than basic input or dropdown editors? That’s where a dataview editor like in the sample below comes in handy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://snippet.dhtmlx.com/1lvoz1ra?text=grid&amp;amp;mode=wide" rel="noopener noreferrer"&gt;Check the sample &amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clicking any cell in the “Owner” column opens a popup editor featuring a card-style list of available options. You can visually browse and select an appropriate option, the content of the selected cell will be updated accordingly.&lt;/p&gt;

&lt;h2&gt;Step-by-Step Guide on Adding a Custom Dataview Editor in DHTMLX Grid&lt;/h2&gt;

&lt;p&gt;Let us proceed to concrete steps that will allow you to incorporate a custom dataview editor into a &lt;a href="https://dhtmlx.com/docs/products/dhtmlxGrid/" rel="noopener noreferrer"&gt;JavaScript grid table&lt;/a&gt; with DHTMLX. When using our Grid widget, you don’t need a third-party dataview component or build it from scratch. Instead, you can use the corresponding JavaScript DataView and Popup widgets from the Suite library that can be seamlessly integrated with Grid, saving you much time and effort. However, we still have to clarify some key points to make this integration more meaningful and straightforward.&lt;/p&gt;

&lt;h3&gt;Step 1: Initializing and Configuring the Grid Table&lt;/h3&gt;

&lt;p&gt;First of all, you initialize a JavaScript data table and specify its structure and behavior. The columns configuration property outlines each column’s id, type, formatting, and editing options, including the “Owner” column that will later be complemented with the DataView-based editor.&lt;/p&gt;

&lt;p&gt;In preparation for that, you need to use the &lt;strong&gt;mark&lt;/strong&gt; property to assign a special CSS class (&lt;strong&gt;dataview-editor&lt;/strong&gt;) to cells in the “Owner” column to trigger a custom editor. You should also apply &lt;strong&gt;editable: false&lt;/strong&gt; to prevent default editing in the column.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const grid = new dhx.Grid("grid", {
    columns: [
        { id: "project", header: [{ text: "Project" }], width: 180 },
        {
            id: "owner",
            header: [{ text: "Owner" }],
            mark: () =&amp;gt; "dataview-editor",
            editable: false,
            autoWidth: true
        },
            … // Config for other columns
    ],
    selection: true,
    editable: true,
    keyNavigation: false,
    data,
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this step, you also define how the Grid behaves by default – enabling editing, selection, disabling keyboard navigation, and loading initial data.&lt;/p&gt;

&lt;h3&gt;Step 2: Create the DataView Editor&lt;/h3&gt;

&lt;p&gt;Next, you initialize &lt;a href="https://dhtmlx.com/docs/products/dhtmlxDataView/" rel="noopener noreferrer"&gt;DHTMLX DataView&lt;/a&gt; and provide a custom HTML layout for cells in the “Owner” column that appears when a user edits them. This layout is defined via the template property and includes a visually rich card format displaying a person’s photo, name, position, phone number, birthday, and email.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const dataview = new dhx.DataView(null, {
    selection: true,
    itemsInRow: 2,
    template: ({ name, photo, post, phone, birthday, mail }) =&amp;gt; (`
    ... // Custom HTML layout for cards appearing in the editor
`),

    `),
    data: owner_data,
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This improves the editing experience by offering structured and intuitive visuals. The styling of this layout will be detailed in the final step of the tutorial.&lt;/p&gt;

&lt;h3&gt;Step 3: Attach the DataView to a Popup&lt;/h3&gt;

&lt;p&gt;Now, you need to create a popup window using the &lt;a href="https://dhtmlx.com/docs/products/dhtmlxPopup/" rel="noopener noreferrer"&gt;JavaScript Popup&lt;/a&gt; widget from the Suite library:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const popup = new dhx.Popup({
    css: "dhx_widget--border-shadow popup",
});
popup.attach(dataview);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You insert the previously created DataView layout into the popup via &lt;strong&gt;popup.attach(dataview)&lt;/strong&gt;. The popup lets you reveal a rich UI of the editor only when it’s needed i.e. when a user clicks on any cell of the “Owner” column. Extra styling with &lt;strong&gt;css: “dhx_widget–border-shadow popup”&lt;/strong&gt; helps make the popup visually distinct and match the rest of the UI.&lt;/p&gt;

&lt;p&gt;To make the popup appear when a user clicks on the Owner cell, you attach event hadlers to cells in the Owner column by targeting the &lt;strong&gt;dataview-editor&lt;/strong&gt; class applied via the column’s HTML template.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;eventHandlers: {
    onclick: {
        "dataview-editor": (event, { row, col }) =&amp;gt; {
            const ownrer = dataview.data.find(item =&amp;gt; item.name == row[col.id]);
            dataview.selection.add(ownrer.id);// Highlights the selected card in the DataView
            popup.show(event.target, { centering: false });// Opens the popup near the clicked element
       }
    }
},
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;Step 4: Update Grid Cell After Selection&lt;/h3&gt;

&lt;p&gt;When an item is selected in the dataview editor, you need to update the grid cell and hide the popup using the &lt;strong&gt;afterSelect&lt;/strong&gt; event:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dataview.events.on("AfterSelect", () =&amp;gt; {
    const owner = dataview.selection.getItem();
    const { row } = grid.selection.getCell();
    grid.data.update(row.id, { "owner": owner.name });
    popup.hide();
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This step makes the custom editor work the way it should – users click a cell, pick a card, and the grid updates in real time.&lt;/p&gt;

&lt;h3&gt;Step 5: Custom Styling of DataView Editor for Better User Experience&lt;/h3&gt;

&lt;p&gt;Once your custom dataview editor becomes fully functional, you can make it more visually appealing. When using DHTMLX widgets, you can apply one of the predefined CSS layout templates for the dataview items:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;…

.dhx_dataview_template_d__picture {
        width: 110px;
        min-width: 110px;
        background: center center/cover no-repeat #f7f7f7;
}


.dhx_dataview_template_d__picture:before {
        content: "";
        display: block;
        padding-top: 100%;
}


.dhx_dataview_template_d__body {
        padding-left: 12px;
        width: 150px;
}
…
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These styles are applied to structure and style the DataView item template provided in Step 2, when &lt;strong&gt;dhx.DataView&lt;/strong&gt; is initialized.&lt;/p&gt;

&lt;p&gt;Following the steps above, you can create a JavaScript data table with a custom dataview editor like in our &lt;a href="https://snippet.dhtmlx.com/1lvoz1ra?tag=grid&amp;amp;mode=wide" rel="noopener noreferrer"&gt;sample&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Final Thoughts&lt;/h2&gt;

&lt;p&gt;This tutorial vividly demonstrates just one of many ways you can customize DHTMLX Grid. Its rich API empowers you to go far beyond default settings and extend Grid with new functional capabilities and design patterns. The widget offers a high degree of control over UI and data behavior. Whether you’re building a common dashboard or a complex enterprise app, DHTMLX Grid is a dependable tool for reaching your web development goals. Still on the fence? Try the &lt;a href="https://dhtmlx.com/docs/products/dhtmlxGrid/download.shtml" rel="noopener noreferrer"&gt;30-day trial version&lt;/a&gt; free of charge and see how our Grid widget fits your project.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This tutorial was originally &lt;a href="https://dhtmlx.com/blog/create-custom-dataview-editor-javascript-grid-table-dhtmlx/" rel="noopener noreferrer"&gt;published on the DHTMLX blog&lt;/a&gt; on April 15, 2025.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>coding</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Tools for Building a Modern JavaScript Booking Application</title>
      <dc:creator>Pavel Lazarev</dc:creator>
      <pubDate>Wed, 12 Feb 2025 10:55:54 +0000</pubDate>
      <link>https://dev.to/plazarev/tools-for-building-a-modern-javascript-booking-application-30j3</link>
      <guid>https://dev.to/plazarev/tools-for-building-a-modern-javascript-booking-application-30j3</guid>
      <description>&lt;p&gt;The advent of digital technologies gives companies a wide range of opportunities for better work efficiency and enhanced customer experience. For instance, it is hard to imagine any thriving hotel, medical center, or repair shop without the possibility of making an appointment on the web. &lt;/p&gt;

&lt;p&gt;We have become so used to online booking that the lack of such a service may threaten businesses with significant losses of potential customers and profits. Thus, unsurprisingly, such a solution often becomes a priority objective.&lt;/p&gt;

&lt;p&gt;According to the Business Research Company, the reservation and online booking software market is expected to grow to $120.62 billion in 2025 at a compound annual growth rate (CAGR) of 25.4%.&lt;/p&gt;

&lt;p&gt;This article highlights a range of tools that can facilitate the implementation of functional capabilities widely used in modern booking apps.&lt;/p&gt;

&lt;h2&gt;Booking Functionality&lt;/h2&gt;

&lt;p&gt;It is a centerpiece of any availability calendar solution. This functionality should combine an intuitive UI structure with features for convenient booking such as various filtering options, localization, user-friendly reservation form, etc. So, there are some useful tools aimed to help in the delivery of such complex features.&lt;/p&gt;

&lt;p&gt;If the project involves a lot of specific requirements such as custom settings or certain styling, it is better to use flexible stand-alone components like the &lt;a href="https://dhtmlx.com/docs/products/dhtmlxBooking/" rel="noopener noreferrer"&gt;DHTMLX Booking widget&lt;/a&gt;. It is a JavaScript UI widget that offers full control over the system’s look and feel and options for deep customization.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe7ymwufs4v887lgtz254.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe7ymwufs4v887lgtz254.png" alt="dhtmlx-javascript-booking-widget" width="800" height="621"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The extensive API allows for defining rules for time slots and adding a needed filtering mechanism. This lightweight widget is also notable for its responsive design, built-in themes, and cross-browser compatibility.&lt;/p&gt;

&lt;p&gt;The product comes with well-written documentation and numerous online samples. Apart from that, it can also be smoothly integrated with a more advanced DHTMLX Scheduler for &lt;a href="https://snippet.dhtmlx.com/d5zbq3g3?tag=booking&amp;amp;mode=wide" rel="noopener noreferrer"&gt;comprehensive solutions&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;However, if you are looking for an out-of-the-box solution with minimal technical involvement, it is reasonable to consider SaaS platforms such as &lt;a href="https://www.appointedd.com/" rel="noopener noreferrer"&gt;Appointedd&lt;/a&gt;, &lt;a href="https://calendly.com/" rel="noopener noreferrer"&gt;Calendly&lt;/a&gt;, and &lt;a href="https://scheduly.com/" rel="noopener noreferrer"&gt;Scheduly&lt;/a&gt;. These products may not provide the same level of flexibility and customization as the DHTMLX Booking widget, but they can be the right choice when speed and ease of deployment are the main priorities.&lt;/p&gt;

&lt;h2&gt;User Authentication&lt;/h2&gt;

&lt;p&gt;In booking calendar apps, you’ll certainly need a tool to add a user authentication feature required for a secure and personalized experience. It ensures that only legitimate users can access personal data and reduces the risk of data breaches and other threats.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe81jvxxbx4pv0ydt8hkw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe81jvxxbx4pv0ydt8hkw.png" alt="user-authentication" width="800" height="537"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are many various tools and services that simplify secure access management. For instance, you can count on &lt;a href="https://firebase.google.com/" rel="noopener noreferrer"&gt;Firebase Authentication&lt;/a&gt; designed by Google. It supports popular authentication methods such as email/password, social (Google, Facebook, etc.), and even custom options. &lt;/p&gt;

&lt;p&gt;Alternatively, you can consider another popular authentication and authorization platform called &lt;a href="https://auth0.com/" rel="noopener noreferrer"&gt;Auth0&lt;/a&gt;. It also provides a number of authentication strategies that can be seamlessly implemented in a web app.&lt;/p&gt;

&lt;p&gt;A robust authentication mechanism is also important for other popular booking calendar features such as payments and integration with third-party services that will be discussed below.&lt;/p&gt;

&lt;h2&gt;Real-Time Updates&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftpowct2n8tc2fk0l5mnq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftpowct2n8tc2fk0l5mnq.png" alt="real-time-updates" width="800" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is essential to maintain the reliability and responsiveness of your booking app, and real-time updates have a vital part in it. This feature ensures that any changes in the booking system will be instantly visible to all users. &lt;/p&gt;

&lt;p&gt;It is crucial for time-sensitive services with high loads such as medical appointments or event reservations. Real-time updates help avoid unpleasant things like double bookings and increase user satisfaction and dynamic experience. &lt;/p&gt;

&lt;p&gt;Tools like &lt;a href="http://socket.io/" rel="noopener noreferrer"&gt;Socket.IO&lt;/a&gt; and &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API" rel="noopener noreferrer"&gt;WebSockets&lt;/a&gt; significantly simplify the implementation of real-time communication between client and server.&lt;/p&gt;

&lt;h2&gt;Integration with External Calendars&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv4eiuxmdcxe0agiubqm3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv4eiuxmdcxe0agiubqm3.png" alt="integration-with-external-calendars" width="800" height="633"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In today’s fast-paced world, it has become common for individuals to use scheduling calendars to arrange their day-to-day activities. Therefore, it can be very useful if your booking app offers seamless synchronization with popular platforms like Google or Outlook calendars. &lt;/p&gt;

&lt;p&gt;To enable end-users to view their bookings via popular calendar tools, you must use &lt;a href="https://developers.google.com/calendar/api/guides/overview" rel="noopener noreferrer"&gt;Google Calendar API&lt;/a&gt;, &lt;a href="https://learn.microsoft.com/en-us/graph/outlook-calendar-concept-overview" rel="noopener noreferrer"&gt;Outlook Calendar API&lt;/a&gt;. Thus, you’ll be able to make your booking app more appealing to potential users and provide a unified scheduling experience.&lt;/p&gt;

&lt;h2&gt;Online Payment&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqtkd98xinmp4kj4o76sb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqtkd98xinmp4kj4o76sb.png" alt="online-payment" width="703" height="600"&gt;&lt;/a&gt;&lt;br&gt;
It is often the case that booking apps are requested to be able to process paid reservations. Such payment solutions should meet some common requirements for covering end-users’ needs related to handling transactions within the booking system. &lt;/p&gt;

&lt;p&gt;So, instead of investing time and effort into customization, you can make it much faster with time-tested tools such as &lt;a href="https://developer.paypal.com/sdk/js/" rel="noopener noreferrer"&gt;PayPal&lt;/a&gt;, &lt;a href="https://stripe.com/" rel="noopener noreferrer"&gt;Stripe&lt;/a&gt;, and &lt;a href="https://developer.squareup.com/us/en" rel="noopener noreferrer"&gt;Square&lt;/a&gt;. They offer built-in features required for a robust payment gateway.&lt;/p&gt;

&lt;h2&gt;Notification Channels&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz48p1fj7i3olxrutc824.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz48p1fj7i3olxrutc824.png" alt="notification-channels" width="776" height="645"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When working on a booking app, it is necessary to take care of notification channels that should be integrated into the system to inform end-users about their bookings (confirmations, cancellations, reminders, etc.). There are several popular options that can be integrated into the booking system using special tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;email alerts (&lt;a href="https://sendgrid.com/en-us" rel="noopener noreferrer"&gt;SendGrid&lt;/a&gt;, &lt;a href="https://www.mailgun.com/" rel="noopener noreferrer"&gt;Mailgun&lt;/a&gt;),&lt;/li&gt;
&lt;li&gt;push notifications (&lt;a href="https://firebase.google.com/products/cloud-messaging" rel="noopener noreferrer"&gt;Firebase Cloud Messaging&lt;/a&gt;, &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API" rel="noopener noreferrer"&gt;Notification API&lt;/a&gt;, &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Push_API" rel="noopener noreferrer"&gt;Push API&lt;/a&gt;),&lt;/li&gt;
&lt;li&gt;SMS (&lt;a href="https://www.twilio.com/en-us" rel="noopener noreferrer"&gt;Twilio&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With these notification channels, end-users will receive timely updates on their bookings, enhancing your app’s usability.&lt;/p&gt;

&lt;h2&gt;Maps and Geolocation&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg3womicd7d2fh63q5tk2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg3womicd7d2fh63q5tk2.png" alt="maps-and-geolocation" width="800" height="542"&gt;&lt;/a&gt;&lt;br&gt;
If you are working on a booking calendar solution that offers location-specific services (clinics, barber shops, etc.), adding the possibility of using interactive maps would be nice. This feature enables end-users to search for nearby locations, view directions, and estimate travel times. &lt;/p&gt;

&lt;p&gt;The most popular choice for implementing this functionality is &lt;a href="https://mapsplatform.google.com/" rel="noopener noreferrer"&gt;Google Maps&lt;/a&gt;. Also, you can estimate popular mapping libraries like &lt;a href="https://www.mapbox.com/maps" rel="noopener noreferrer"&gt;Mapbox&lt;/a&gt; and &lt;a href="http://leaflet.js/" rel="noopener noreferrer"&gt;Leaflet.js&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Wrapping Up&lt;/h2&gt;

&lt;p&gt;As you can see, booking calendars may include various useful features. Implementing these capabilities from scratch makes sense when many custom features are required, otherwise, it can be done faster and more reliably with special ready-made tools like the ones reviewed in this article. &lt;/p&gt;

&lt;p&gt;It is a thoughtful approach that helps avoid many potential issues during development and ensures that your booking app is functional, responsive, and user-friendly.&lt;/p&gt;

&lt;p&gt;This article was originally &lt;a href="https://javascript.plainenglish.io/tools-for-building-a-modern-javascript-booking-application-6fec34fc5119" rel="noopener noreferrer"&gt;published on Medium&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>JavaScript News, Updates, and Tutorials: November 2024 Edition</title>
      <dc:creator>Pavel Lazarev</dc:creator>
      <pubDate>Mon, 02 Dec 2024 11:02:17 +0000</pubDate>
      <link>https://dev.to/plazarev/javascript-news-updates-and-tutorials-november-2024-edition-3a36</link>
      <guid>https://dev.to/plazarev/javascript-news-updates-and-tutorials-november-2024-edition-3a36</guid>
      <description>&lt;p&gt;November has been an exciting month for the DHTMLX team and the overall JavaScript community, with the series of updates from DHTMLX, Webix, SVAR, Angular, and TypeScript that web developers won’t want to miss. This digest arrives on Black Friday — a day known for its great deals and opportunities. As anticipated as pleasant discounts, these updates complemented with useful materials on JavaScript promise to boost productivity and enhance your projects, making them worth exploring. Let’s unpack this month’s highlights!&lt;/p&gt;

&lt;h1&gt;
  
  
  New Releases and Updates
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Meet Brand-New DHTMLX Booking Widget 1.0
&lt;/h2&gt;

&lt;p&gt;DHTMLX Booking is a new widget in our product line of JS tools designed to speed up the development of online booking systems for the web. This widget has a user-friendly UI with two main sections — filtering area and cards list with time slots. It offers plenty of options for configuring the booking structure as needed.&lt;/p&gt;

&lt;p&gt;For instance, the rich API allows specifying rules for time slots and filtering settings, thereby securing seamless and productive appointment management. DHTMLX Booking is also notable for simple styling with CSS variables and localization support. To make the most of this product, you should consider combining it with the time-proven DHTMLX Scheduler. These tools can be easily integrated and synchronized within a single app, becoming a solid foundation for an advanced scheduling solution. This &lt;a href="https://dhtmlx.com/blog/dhtmlx-booking-1-0/" rel="noopener noreferrer"&gt;blog post&lt;/a&gt; will give you a complete picture of this product.&lt;/p&gt;

&lt;h2&gt;
  
  
  Other DHTMLX Updates: Suite UI Library 9.0 and Kanban 1.6
&lt;/h2&gt;

&lt;p&gt;The DHTMLX release schedule in November included two more significant events. In addition to the Booking widget, our development team also prepared updates for Suite and Kanban libraries.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dhtmlx.com/blog/dhtmlx-suite-9-0/" rel="noopener noreferrer"&gt;DHTMLX Suite v9.0&lt;/a&gt; is a big step forward in the development of the top-requested Suite widget — &lt;a href="https://dhtmlx.com/docs/products/dhtmlxGrid/" rel="noopener noreferrer"&gt;JS data table&lt;/a&gt;. It received several highly-anticipated features in v9.0, becoming an all-encompassing solution for data management in business apps.&lt;/p&gt;

&lt;p&gt;First, we merged the TreeGrid widget into Grid, enabling it to handle hierarchical data. The ability to process tree-like structures is at the core of the key Grid feature added in v9.0, namely, row data grouping. This novelty is a powerful instrument for analyzing large datasets and detecting patterns that usually count when making decisions. Another essential feature of this release is the ability to specify custom stats functions and render the totals of data calculations. You can also enhance accuracy and consistency in data grids and forms built with DHTMLX by setting specific formats for entered data with input masks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dhtmlx.com/blog/dhtmlx-kanban-1-6/" rel="noopener noreferrer"&gt;DHTMLX Kanban 1.6&lt;/a&gt; introduces a pack of targeted improvements that will add more setup and personalization options at your disposal. For instance, there are templates for column headers and search results, new options for opening and displaying the Kanban editor, simplified voting for tasks, and settings for displaying users assigned to tasks. Using these features, you can also enhance the usability of DHTMLX-based Kanban boards.&lt;/p&gt;

&lt;p&gt;As a bonus, we also rolled out a new &lt;a href="https://dhtmlx.com/blog/announcing-new-javascript-project-management-demo/" rel="noopener noreferrer"&gt;project management demo app&lt;/a&gt; that is a great example of how our products can be combined to deliver real-life solutions of any scale with minimum time and effort.&lt;/p&gt;

&lt;h2&gt;
  
  
  Webix 11.0 Release
&lt;/h2&gt;

&lt;p&gt;Webix presented a number of updates in the core and complex widgets of the library. The enhancements equip users with a wider variety of tools for data manipulation, report and file management, as well as extended export-import to/from Excel capabilities.&lt;/p&gt;

&lt;p&gt;Let’s have a look at the key features of the Webix v11.0:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Core Updates: support of the recent version of PDF.js, export of images, frozen rows and columns to Excel, auto mode to have the page orientation option available in a browser;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Report Manager: reports as standalone widgets;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;File Manager: extended filters for searching files;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SpreadSheet: export of SpreadSheet images to Excel (available in the core), possibility to get a cell reference from a cell id in a table, import of filters from Excel, export of frozen rows and columns to Excel (available in the core), searching for and replacing data in cells, filtering math methods by category, highlights for math methods.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To learn more about Webix updates read the &lt;a href="https://blog.webix.com/webix-11-0-release/" rel="noopener noreferrer"&gt;release article&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  SVAR UI Widgets: New React Gantt Chart and Svelte 5 Compatibility
&lt;/h2&gt;

&lt;p&gt;This month, SVAR introduced two major updates. First, the new &lt;a href="https://svar.dev/react/gantt/" rel="noopener noreferrer"&gt;Gantt chart for React&lt;/a&gt; has been released — an open-source, interactive Gantt chart component that helps developers quickly integrate project workflow visualization into React apps. The component offers customizable UI, responsive design, fast performance with large datasets, and 2 sleek themes: light and dark. In addition, SVAR Svelte UI components have been upgraded to &lt;a href="https://svar.dev/blog/migration-to-svelte5/" rel="noopener noreferrer"&gt;support the latest Svelte 5&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Angular 19 is Generally Available Now
&lt;/h2&gt;

&lt;p&gt;Getting to the top of popularity is one thing, yet quite another to remain on a high level for a long time in a competitive environment like web development. And the Angular team knows it very well. It is hard to call Angular a favorite front-end framework among web developers, but it is still a decent choice for complex, enterprise-grade apps. Regular updates help stir the public’s interest in the project. In November, the world saw the release of Angular 19. This major update is aimed at making Angular more developer-friendly and performant. This list of novelties includes partial and incremental hydration, route-level render mode, linked signals, event replay, and much more. Find more in the &lt;a href="https://blog.angular.dev/meet-angular-v19-7b29dfd05b84" rel="noopener noreferrer"&gt;release article&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introducing TypeScript 5.7
&lt;/h2&gt;

&lt;p&gt;Many JavaScript developers say that once you try coding with TypeScript, you’ll never want to switch back to plain JS. TypeScript is especially admired for its reliability, scalability, and developer experience. This month, more reasons to enjoy TypeScript have emerged with its update to version 5.7. The new TypeScript version provides an updated mechanism for checking never-initialized variables aimed to help avoid runtime errors. You should also pay attention to such novelty as path rewriting for relative paths. Now, TypeScript also supports ES2024 features, enabling devs to benefit from the latest JS capabilities. Check out the &lt;a href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-7/" rel="noopener noreferrer"&gt;primary source&lt;/a&gt; on the TypeScript blog for more information on v5.7.&lt;/p&gt;

&lt;h1&gt;
  
  
  Useful Tips and Articles
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Benefits of Using JS To Do List for Implementing GTD System
&lt;/h2&gt;

&lt;p&gt;Getting Things Done (GTD) is a popular methodology adopted by individuals and professionals across various fields to improve their time management and productivity. Various tools can be used for the practical implementation of GTD, but a to-do list is often viewed as the most appropriate option, as it aligns perfectly with its structure. To make it work on the web, you can use DHTMLX To Do List. This &lt;a href="https://dhtmlx.com/blog/dhtmlx-javascript-list-good-implementing-gtd-productivity-system/" rel="noopener noreferrer"&gt;article&lt;/a&gt; highlights the main aspects of GTD and how our JS solution will help you make the most of this methodology.&lt;/p&gt;

&lt;h2&gt;
  
  
  Useful JavaScript SEO Tricks
&lt;/h2&gt;

&lt;p&gt;Some devs underestimate the importance of JavaScript SEO, but it plays an important role in how search engines index and rank web apps. If JavaScript is used in apps without SEO optimizations, web projects usually lose visibility and traffic. This &lt;a href="https://thenewstack.io/top-10-javascript-seo-tricks-every-developer-should-know/" rel="noopener noreferrer"&gt;article&lt;/a&gt; provides a range of useful SEO tricks for JavaScript content.&lt;/p&gt;

&lt;h2&gt;
  
  
  Less-Known But Useful JavaScript Features
&lt;/h2&gt;

&lt;p&gt;Learning JavaScript is an unending journey since its ecosystem is constantly enriched with new features and tools. So it is not surprising developers may overlook some less popular, but still useful JS features and not use them in their projects. The author of this &lt;a href="https://www.youtube.com/watch?v=CzCDYl1V-a4" rel="noopener noreferrer"&gt;video&lt;/a&gt; offers a list of such features and explains them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Deeper Insight into JavaScript Symbols
&lt;/h2&gt;

&lt;p&gt;JavaScript symbols are unique identifiers serving as object keys to exclude property name collisions. They are especially useful when extending objects without interfering with existing code or working with shared libraries. If are not quite familiar with the concept of JS symbols, check out this &lt;a href="https://www.trevorlasn.com/blog/symbols-in-javascript" rel="noopener noreferrer"&gt;article&lt;/a&gt;, where the subject is covered with great examples.&lt;/p&gt;

&lt;h2&gt;
  
  
  Impact of Using GitHub Copilot on Code Quality
&lt;/h2&gt;

&lt;p&gt;It is just amazing how fast AI tools have become an indispensable part of modern technology stacks. GitHub Copilot is a striking example of such a tool used for writing code. But there remains the question about the efficiency of such tools. The recent GitHub study addresses this question and proves the positive impact of such tools on the development flow. Check out the &lt;a href="https://github.blog/news-insights/research/does-github-copilot-improve-code-quality-heres-what-the-data-says/" rel="noopener noreferrer"&gt;results&lt;/a&gt; for more information.&lt;/p&gt;

&lt;p&gt;That’s it for now. Stay tuned for more DHTMLX releases and JavaScript news.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This article was originally &lt;a href="https://itnext.io/javascript-news-updates-and-tutorials-november-2024-edition-c32810188266" rel="noopener noreferrer"&gt;published on Medium&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
      <category>angular</category>
    </item>
    <item>
      <title>JavaScript News, Updates, and Tutorials: October 2024 Edition</title>
      <dc:creator>Pavel Lazarev</dc:creator>
      <pubDate>Fri, 01 Nov 2024 13:26:52 +0000</pubDate>
      <link>https://dev.to/plazarev/javascript-news-updates-and-tutorials-october-2024-edition-1hfd</link>
      <guid>https://dev.to/plazarev/javascript-news-updates-and-tutorials-october-2024-edition-1hfd</guid>
      <description>&lt;p&gt;Hello everyone! October has been an eventful month on the JavaScript landscape. We at DHTMLX rolled out a highly-anticipated major update of our JS Gantt component. Significant releases also occurred in SVAR, Deno, and Svelte projects. &lt;/p&gt;

&lt;p&gt;Apart from that, Evan You presented a new toolchain for JavaScript. We will review these releases in this post and add a traditional pack with JS tutorials and other useful materials.&lt;/p&gt;

&lt;h1&gt;
  
  
  New Releases and Updates
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Meet DHTMLX Gantt 9.0
&lt;/h2&gt;

&lt;p&gt;Development teams around the world have always admired DHTMLX Gantt for its extensive feature set that allows managing workflows in projects of any complexity. With the recent release of version 9.0, we hope that our Gantt will also be loved for its new theming and styling capabilities.&lt;/p&gt;

&lt;p&gt;Development teams around the world have always admired DHTMLX Gantt for its extensive feature set that allows managing workflows in projects of any complexity. With the recent release of version 9.0, we hope that our Gantt will also be loved for its new theming and styling capabilities.&lt;/p&gt;

&lt;p&gt;In v9.0, our dev team fully overhauled the existing Gantt themes and added a new Dark option. The themes are updated in line with modern design practices, enhancing both visual appeal and usability. To reduce the need for custom styling efforts, we introduced the possibility of customizing various Gantt elements like icons or links using CSS variables.&lt;/p&gt;

&lt;p&gt;Apart from that, we also implemented a range of useful configuration options that will certainly contribute to more effective project management. The list of novelties includes manually scheduled summary tasks, built-in support for baselines, built-in visualization of deadlines and constraints, and sticky labels for time scales. &lt;/p&gt;

&lt;p&gt;The new Gantt version enables you to build a modern-looking Gantt chart with new capabilities for managing project tasks conveniently. Learn more in the &lt;a href="https://dhtmlx.com/blog/dhtmlx-gantt-9-0/" rel="noopener noreferrer"&gt;release article&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  SVAR UI Widgets: New React DataGrid and Improved Svelte Gantt Chart
&lt;/h2&gt;

&lt;p&gt;The SVAR team has released an open-source &lt;a href="https://svar.dev/react/datagrid/" rel="noopener noreferrer"&gt;React DataGrid component&lt;/a&gt; that combines blazing-fast performance with advanced features like tree data view, context menu, flexible column layouts, and rich in-cell editing options (including combo, date picker, text and rich select). &lt;/p&gt;

&lt;p&gt;There’s also a piece of news for Svelte developers: the SVAR Svelte Gantt chart &lt;a href="https://svar.dev/blog/gantt-1-1-released/" rel="noopener noreferrer"&gt;has been updated&lt;/a&gt; to feature auto-calculated summary tasks, intuitive sorting, and optimized batch requests. With this latest release, SVAR Gantt offers a professional way to track tasks, project timeline and progress.&lt;/p&gt;

&lt;h2&gt;
  
  
  Svelte 5.0 is Finally Here
&lt;/h2&gt;

&lt;p&gt;After 1,5 years of preparatory work, the Svelte team finally presented the long-awaited stable release of the popular JavaScript framework. The new version 5.0 is said to be the most significant release in the Svelte’s history. Let us see what’s so special about it.&lt;/p&gt;

&lt;p&gt;Many developers like this framework for its simplicity and reactivity. But nothing is perfect and rapidly changing requirements stimulate the product’s progress. For instance, the use of Svelte in large projects unveiled its shortcomings in reactivity. &lt;/p&gt;

&lt;p&gt;The updated framework provides a new mechanism for declaring a reactive state called runes. It is expected to become a game-changer and an effective solution in dealing with existing reactivity issues. &lt;/p&gt;

&lt;p&gt;The development team also modified the event handling process. Moreover, Svelte now comes with native TypeScript support. More info on v5.0 can be found in this &lt;a href="https://svelte.dev/blog/svelte-5-is-alive" rel="noopener noreferrer"&gt;article&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introducing Deno 2.0
&lt;/h2&gt;

&lt;p&gt;Many developers were not very enthusiastic about the appearance of Deno and doubted the prospects of this project back in 2018. But for several years now, Deno has been steadily growing in functionality and popularity among programmers. &lt;/p&gt;

&lt;p&gt;Recently, Ryan Dahl’s team presented a new version of Deno, which shows the seriousness of the team’s intentions to give a real fight to the generally recognized (but not ideal) Node.js.&lt;/p&gt;

&lt;p&gt;When looking through a considerable list of updates included in v 2.0, the first thing that catches one’s eye is that Deno is now backward compatible with Node.js and npm. In other words, this novelty allows seamlessly running existing Node.js projects and simultaneously benefiting from Deno’s strengths. &lt;/p&gt;

&lt;p&gt;This major feature will certainly contribute to faster Deno adoption. Much effort was directed toward making Deno more performant in real-case scenarios. For more details on v2.0, visit the &lt;a href="https://deno.com/blog/v2.0" rel="noopener noreferrer"&gt;Deno blog&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s New in Next.js 15
&lt;/h2&gt;

&lt;p&gt;If you look through the latest editions of popular surveys such as State of JS or Developer Survey, you will certainly find Next.js among the top frameworks. Built on top of React, this tool can be effective in handling both front-end and server-related tasks. The development team of this project fuels interest in the product by delivering regular updates. So let us take a look at the new Next 15.&lt;/p&gt;

&lt;p&gt;Although, currently React 19 has an RC status, Next 15 comes with full support for the upcoming React update and its new features. In version 15, you can also find numerous improvements in catching semantics that should have a positive impact on performance. &lt;/p&gt;

&lt;p&gt;One more noteworthy addition of v15 is a stable release of Turbopack Dev, an incremental bundler optimized for JavaScript and TypeScript. Read the &lt;a href="https://nextjs.org/blog/next-15" rel="noopener noreferrer"&gt;release article&lt;/a&gt; to get an absolute impression of the new Next.js capabilities.&lt;/p&gt;

&lt;h2&gt;
  
  
  VoidZero: New Toolchain for JavaScript from Evan You
&lt;/h2&gt;

&lt;p&gt;Evan You is a well-known figure in the dev community, primarily as the creator of two popular dev tools — Vue.js and Vite. Despite numerous existing achievements, he continues working on new promising projects. &lt;/p&gt;

&lt;p&gt;During the work on a new bundler for Vite’s needs, Evan You faced existing challenges of the JS ecosystem such as fragmentation, incompatibilities, etc. This led to the development of a new toolchain for JavaScript named VoidZero. This project raised $4.6 million in seed funding. &lt;/p&gt;

&lt;p&gt;The dev team of the project already delivered crucial elements of the toolchain such as a JS parser, Node.js-compatible resolver, TypeScript/JSX transformer, linter, and more. This &lt;a href="https://voidzero.dev/posts/announcing-voidzero-inc" rel="noopener noreferrer"&gt;article&lt;/a&gt; offers more curious insights on VoidZero and Evan You’s plans for the future.&lt;/p&gt;

&lt;h1&gt;
  
  
  Useful Tips and Articles
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Building a JS Gantt Chart with a Resource Panel in Salesforce with DHTMLX
&lt;/h2&gt;

&lt;p&gt;Many dev teams prefer implementing their business apps in cloud-based environments like Salesforce. Our devs continue adapting our popular JS components for use on the Salesforce platform. The list of helping materials now includes a new demo that demonstrates an example of building a Gantt chart with a resource panel for Salesforce. With the demo highlighted in this &lt;a href="https://dhtmlx.com/blog/announcing-new-dhtmlx-demo-gantt-resource-management-salesforce/" rel="noopener noreferrer"&gt;post&lt;/a&gt;, it will be easier to keep track of workflows and resource allocation within a Gantt chart.&lt;/p&gt;

&lt;h2&gt;
  
  
  Handling Data Management Issues with JavaScript Grid Components
&lt;/h2&gt;

&lt;p&gt;When developers are requested to implement data tables (or simply grids) for managing complex data on a web page, they often resort to using ready-made UI components to facilitate this objective. Such tools often help to overcome various difficulties during the development process that are frequently associated with high demands on performance, scalability, customization, and data handling capabilities. This &lt;a href="https://dzone.com/articles/how-javascript-datatable-libraries-address-challen" rel="noopener noreferrer"&gt;article&lt;/a&gt; elaborates more on challenging data management requirements and offers three popular JavaScript data tables that help address emerging issues.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tips on Securing Browser Extensions with CodeQL
&lt;/h2&gt;

&lt;p&gt;Modern web browsers offer a wide range of extensions that can enrich default browser settings. Ordinary users and professional programmers can benefit from the convenience and extra features provided by browser extensions. As more people count on such extensions to achieve various goals, it becomes crucial to ensure their security. The author of this &lt;a href="https://github.blog/security/vulnerability-research/attacking-browser-extensions/" rel="noopener noreferrer"&gt;article&lt;/a&gt; highlights the structure of a browser extension, possible security issues, and how the use of CodeQL can enhance the extension security level.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choosing the Right Folder Structure for a Web Project
&lt;/h2&gt;

&lt;p&gt;Choosing the proper folder structure for a web project is essential for maintaining organization, readability, and scalability. A well-structured project also facilitates debugging and updating, especially as the project grows with time. Setting up the folder structure depends on factors such as the project’s scale, the tech stack, team size, specific project requirements, etc. Сheck out this &lt;a href="https://www.youtube.com/watch?v=xyxrB2Aa7KE&amp;amp;t=" rel="noopener noreferrer"&gt;video&lt;/a&gt;, if you want to learn how to do it without any problem. It explains how to create a folder structure that will be easy to maintain, refactor, and work in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Debunking SEO JavaScript Myths in Google Search
&lt;/h2&gt;

&lt;p&gt;You’ve probably heard many controversial claims about how Google Search indexes JavaScript like “Google treats JS pages differently”. Understanding how search engines like Google actually handle JavaScript for optimizing web projects in terms of SEO. The &lt;a href="https://vercel.com/blog/how-google-handles-javascript-throughout-the-indexing-process" rel="noopener noreferrer"&gt;MERJ and Vercel’s research&lt;/a&gt; dives deep into this topic and provides many valuable insights.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This article was originally &lt;a href="https://itnext.io/javascript-news-updates-and-tutorials-october-2024-edition-9d153fb09291" rel="noopener noreferrer"&gt;published on Medium&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>svelte</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Latest JavaScript News, Updates, and Tutorials</title>
      <dc:creator>Pavel Lazarev</dc:creator>
      <pubDate>Fri, 09 Aug 2024 11:23:51 +0000</pubDate>
      <link>https://dev.to/plazarev/latest-javascript-news-updates-and-tutorials-4oc6</link>
      <guid>https://dev.to/plazarev/latest-javascript-news-updates-and-tutorials-4oc6</guid>
      <description>&lt;p&gt;Hello to all JavaScript enthusiasts! We are happy to continue sharing with you new JavaScript stuff, especially as we have plenty to say about DHTMLX. &lt;/p&gt;

&lt;p&gt;Today, you will learn about our new product, namely, DHTMLX Chatbot for AI. In addition, we released updates for Scheduler, Suite, and RichText components. You’ll also learn about the latest news from the Webix team. Apart from that, we’ll highlight the latest surveys on JavaScript and programming in general. &lt;/p&gt;

&lt;p&gt;Traditionally, this article also includes a section with useful materials covering various aspects of writing code in JavaScript.&lt;/p&gt;

&lt;h1&gt;
  
  
  DHTMLX Chatbot 1.0: New Widget for AI Chat Apps
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu3u2dcnwl2my0mbkvtfw.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu3u2dcnwl2my0mbkvtfw.jpg" alt="dhtmlx-chatbot-ui-widget"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Artificial intelligence is not a new phenomenon in the IT industry, but the advent of generative AI tools such as ChatGPT has become a starting point of the immense transformation in the world of programming. The DHTMLX team is very enthusiastic about this trend and anxious to contribute to the adoption of AI in web development with a new product - &lt;a href="https://dhtmlx.com/docs/products/dhtmlxChatbot/" rel="noopener noreferrer"&gt;JavaScript chatbot widget for AI&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Our team designed this lightweight tool to help web developers deliver UIs for a single or multiagent AI chat integrated with popular large language models such as ChatGPT, Claude 3, and Gemini on the backend. The widget has a responsive and configurable interface with different modes for displaying messages and a modifiable sidebar. &lt;/p&gt;

&lt;p&gt;The chatbot is also mobile-friendly and supports markdown text format and read-only mode. Apart from that, you can also make use of ready-made integration examples and other samples prepared by our team. And the best part is that DHTMLX Chatbot is distributed under the MIT license, meaning you can use it in your projects free of charge. &lt;/p&gt;

&lt;p&gt;Find more details about this new widget in the &lt;a href="https://dhtmlx.com/blog/dhtmlx-chatbot-1-0/" rel="noopener noreferrer"&gt;release article&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Other Releases from DHTMLX
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft1loc78otkyt6q4yansl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft1loc78otkyt6q4yansl.png" alt="dhtmlx-releases"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This month, in addition to the new chatbot widget, the DHTMLX team also rolled out several minor updates for well-known JS components from our product portfolio. We are talking about new versions of DHTMLX Scheduler, Suite, and RichText Editor.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://dhtmlx.com/blog/dhtmlx-scheduler-7-1/" rel="noopener noreferrer"&gt;DHTMLX Scheduler 7.1&lt;/a&gt; offers several novelties designed to improve your experience with this JS component. First of all, there is a new option for storing recurring events known as RFC-5545 format. &lt;/p&gt;

&lt;p&gt;In the Map view, you can use two popular map providers out-of-the-box: OpenStreetMap and Mapbox. In addition,  you can integrate into your project abilities to highlight cells from which users drag events and undo event deletion.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://dhtmlx.com/blog/dhtmlx-suite-8-4/" rel="noopener noreferrer"&gt;DHTMLX Suite 8.4&lt;/a&gt; comes with multiple API updates for popular UI widgets such as Grid/TreeGrid, Combobox, Chart, Form, and Toolbar. Combobox allows specifying custom logic in templates (also applicable to Grid, TreeGrid, and Form). In DHTMLX Charts, you also have an opportunity to add a template for displaying values in Pie, Pie3D, and Donut charts. &lt;/p&gt;

&lt;p&gt;The ability to set headers and footers for files exported in PDF and PNG formats is now available in Charts, Grid, and TreeGrid. The configuration of the Toolbar widget includes the option that opens menu items in toolbar elements when hovering over them with the pointer.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://dhtmlx.com/blog/dhtmlx-richtext-1-2/" rel="noopener noreferrer"&gt;DHTMLX RichText 2.1&lt;/a&gt; is not a substantial release in terms of new features. In fact, there is one feature but it will be useful for both web developers and end-users. &lt;/p&gt;

&lt;p&gt;Starting from v2.1, you can specify required default values for various text parameters such as font, font size, etc. in the toolbar of the Editor. Thus, end-users won’t have to worry about manually adjusting the Editor’s settings and can focus on work with text. Moreover, this minor update includes a range of fixes and improvements to improve your experience with our JavaScript Text Editor.&lt;/p&gt;

&lt;h1&gt;
  
  
  Webix Updates: Improvements Inspired by User Challenges
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs0mv8avv1qfsyrw5tt1n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs0mv8avv1qfsyrw5tt1n.png" alt="webix-updates"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Webix team is dedicated to continuously improving the library based on user feedback and support tickets. The recent updates in version 10.2.5 brought several functionality enhancements of existing components.&lt;/p&gt;

&lt;p&gt;Performance is always a priority for the Webix team so they optimized rendering for faster UI updates and a more responsive user experience: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://webix.com/js-diagram/" rel="noopener noreferrer"&gt;Diagram&lt;/a&gt; rendering engine has been optimized for better performance in FireFox,&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://webix.com/pivot/" rel="noopener noreferrer"&gt;Pivot&lt;/a&gt; incorrect rendering of the total section in the footer has been fixed,&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;standard RichText widget rendering with an unset value has been also corrected.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When it comes to Complex widgets, Webix team put the effort into developing &lt;a href="https://webix.com/spreadsheet/" rel="noopener noreferrer"&gt;Spreadsheet JS UI Widget&lt;/a&gt;. Users’ feedback has been invaluable, allowing to implement numerous enhancements, some of them are highlighted here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;the copy-paste process was improved,&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Spreadsheet 10.2.2 is the first version that got all data saving actions including saving styles, spans, and sizes now get name of the source sheet,&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;updates in filtering in math formula suggestions is applied correctly to named ranges as well and resulted in enhanced usability. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Documentation Updates&lt;/strong&gt;: &lt;/p&gt;

&lt;p&gt;Alongside the improvements, the documentation has been updated to provide clear guidance on implementing the latest enhancements. With the comprehensive examples and usage scenarios it helps developers quickly adapt to the new functionalities. To learn more about Webix releases between 10.2 and 11 read the &lt;a href="https://blog.webix.com/webix-10-2-5-driven-by-your-feedback/" rel="noopener noreferrer"&gt;release article&lt;/a&gt; page. Nevertheless, additional updates and fixes are coming soon.&lt;/p&gt;

&lt;h1&gt;
  
  
  Stack Overflow’s Developer Survey 2024
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fikpacjzyb0ro9jz7jsw6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fikpacjzyb0ro9jz7jsw6.png" alt="stack-overflow-developer-survey-2024"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This &lt;a href="https://survey.stackoverflow.co/2024/" rel="noopener noreferrer"&gt;popular survey&lt;/a&gt; is a valuable resource for the web development community, providing insights into trends, preferences, and challenges faced by developers. &lt;/p&gt;

&lt;p&gt;This year’s edition includes a lot of insights. For instance, JavaScript predictably continues to be the most widely used programming language, and, besides this, JS is high on the list of highly desired and admired languages. Svelte is loved by developers and 72% of survey respondents express admiration for this front-end framework. &lt;/p&gt;

&lt;p&gt;The survey also paid much attention to AI technologies. Most of the respondents (76%) are using or are planning to use AI tools in their development process this year, but only 43% said they trust the accuracy of AI tools. &lt;/p&gt;

&lt;p&gt;The list of the most popular AI tools includes ChatGPT, GitHub Copilot, Google Gemini, and Bing AI. At the same time, 70% of professional developers do not think that AI technologies pose a threat to their job opportunities.&lt;/p&gt;

&lt;h1&gt;
  
  
  Long-Awaited Results of Surveys from the Devographics Team
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3d4kik2z5y9p17goko1l.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3d4kik2z5y9p17goko1l.jpg" alt="devographics-team-survey"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Believe it or not, the results of the &lt;a href="https://2023.stateofjs.com/en-US/" rel="noopener noreferrer"&gt;State of JS 2023&lt;/a&gt; have recently become available to the public. Despite a six-month delay, this release still has many curious insights supported with an updated data visualization codebase. &lt;/p&gt;

&lt;p&gt;For us, for instance, it was interesting to know about the things that bother survey respondents the most about JavaScript. It is said that the most challenging aspects of JavaScript are code architecture, state management, build tools, and managing dependencies. People also crave new features and improvements in JavaScript such as static typing, a standard library of common utilities, and better date management. &lt;/p&gt;

&lt;p&gt;We also want to note the growing interest in some “smaller” front-end frameworks like Preact, Solid, and htmx, the enduring popularity of SPAs, and the higher adoption of Partial Hydration and Islands architecture. &lt;/p&gt;

&lt;p&gt;You may wonder why we still haven’t mentioned React while reviewing the latest State of JS report. There is a good reason for that. React is still immensely popular, therefore the Devographics team conducted a separate survey dedicated solely to this framework - &lt;a href="https://2023.stateofreact.com/en-US/" rel="noopener noreferrer"&gt;State of React 2023&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The data in this survey was collected between October 27 and November 15, 2023, meaning that all the developments since then, including the upcoming React 19, were not covered. Anyway, you can come across interesting findings when examining the results of this survey.&lt;/p&gt;

&lt;h1&gt;
  
  
  Updated GitHub Innovation Graph and Its Practical Value
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkyi0ux5p00sba04zfctr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkyi0ux5p00sba04zfctr.png" alt="github-innovation-graph"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Launched in 2020 by the GitHub team, the &lt;a href="https://innovationgraph.github.com/" rel="noopener noreferrer"&gt;Innovation Graph&lt;/a&gt; initiative proved to be a useful source of information for researchers, policymakers, and developers, who are looking for insights on software development trends. &lt;/p&gt;

&lt;p&gt;Recently updated with Q1 2024 data, the Innovation Graph offers global metrics on various categories such as top programming languages, Git pushes, developers, organizations, etc. And it seems that this data has practical value. &lt;/p&gt;

&lt;p&gt;To prove this point, GitHub published a &lt;a href="https://github.blog/news-insights/policy-news-and-insights/how-researchers-are-using-github-innovation-graph-data-to-estimate-the-impact-of-chatgpt/" rel="noopener noreferrer"&gt;blog post&lt;/a&gt; interviewing two researchers who used the Innovation Graph data to estimate the impact of ChatGPT on developer engagement across various programming languages.&lt;/p&gt;

&lt;h1&gt;
  
  
  Useful Tips and Articles
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Web Development Challenges Addressed with JavaScript UI Libraries
&lt;/h2&gt;

&lt;p&gt;Nowadays, it is only in rare circumstances dev teams have to deliver a web app without the use of additional tools like JavaScript UI libraries. For instance, when the UI requirements of a project require a highly customized solution. &lt;/p&gt;

&lt;p&gt;But in most cases, JavaScript UI libraries can become a game-changer for web projects of any complexity. Established JS libraries offer pre-built components and functionalities that streamline the development process, saving significant time and effort. &lt;a href="https://dhtmlx.com/blog/7-signs-dev-team-needs-ready-made-ui-components-effective-work/" rel="noopener noreferrer"&gt;In this article&lt;/a&gt;, you will learn more about the advantages of using JavaScript libraries in real-case scenarios.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mastering Your JavaScript Debugging Skills
&lt;/h2&gt;

&lt;p&gt;Debugging is a crucial part of the application development process. No matter whether you are a newcomer or an experienced developer, you should certainly devote some time to improving your skills at debugging your JavaScript code. &lt;/p&gt;

&lt;p&gt;There are many techniques used to identify and fix issues efficiently. If you have knowledge gaps in this important aspect, &lt;a href="https://www.youtube.com/watch?v=l8pe_MSX4Lc" rel="noopener noreferrer"&gt;this crash course&lt;/a&gt; will walk you through from absolute basics to advanced debugging concepts. &lt;/p&gt;

&lt;h2&gt;
  
  
  Going into Multithreading in JavaScript
&lt;/h2&gt;

&lt;p&gt;In JavaScript, multithreading refers to the ability of a program to execute multiple threads, or units of execution, concurrently within a single process. The use of multithreading in web apps can contribute to improved performance, better user experience, optimal utilization of computer resources, and enhanced functionality. &lt;/p&gt;

&lt;p&gt;There are some techniques to enable multithreading in JavaScript. &lt;a href="https://www.infoworld.com/article/2513020/intro-to-multithreaded-javascript.html" rel="noopener noreferrer"&gt;In this article&lt;/a&gt;, you’ll get acquainted with the main mechanisms for achieving parallel threads in JavaScript in the browser (web workers) and on the server (worker threads).&lt;/p&gt;

&lt;h2&gt;
  
  
  Collection of Useful Shorthands for JavaScript and TypeScript
&lt;/h2&gt;

&lt;p&gt;Shorthands are techniques that allow developers to write code concisely and achieve the same goals as longer, more verbose syntax. Working the same way as longhand code under the hood, shorthands can make code cleaner, more readable, and even more efficient. &lt;/p&gt;

&lt;p&gt;If you write JavaScript or TypeScript code and know little about shorthands, &lt;a href="https://blog.logrocket.com/javascript-typescript-shorthands/" rel="noopener noreferrer"&gt;this article&lt;/a&gt; will expand your knowledge on the topic.&lt;/p&gt;

&lt;h2&gt;
  
  
  Exploring Server-Side Rendering Strategies and Choosing the Right One for Your Project
&lt;/h2&gt;

&lt;p&gt;In web development, server-side rendering (SSR) is a special technique used to generate the HTML content on the server before sending it to the client side. Several SSR options can be used in web apps. By choosing the right SSR strategy, you can enhance the performance, SEO, and user experience of your app. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://vercel.com/blog/how-to-choose-the-best-rendering-strategy-for-your-app" rel="noopener noreferrer"&gt;This article&lt;/a&gt; highlights 5 popular SSR strategies and their use-case scenarios.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tips on Code Review from GitHub Staff Engineer
&lt;/h2&gt;

&lt;p&gt;Code review plays a crucial role in the development process, especially in the age of AI code generation. With the right approach to code review, you can ensure the quality and reliability of the codebase. &lt;/p&gt;

&lt;p&gt;Sarah Vessels, a staff engineer at GitHub, shares her thoughts and useful tips on the process of code review &lt;a href="https://github.blog/developer-skills/github/how-to-review-code-effectively-a-github-staff-engineers-philosophy/" rel="noopener noreferrer"&gt;in this blog post&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This article was originally &lt;a href="https://itnext.io/latest-javascript-news-updates-and-tutorials-f447f004d258" rel="noopener noreferrer"&gt;published on Medium&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Latest News, Updates, and Tutorials from JavaScript World</title>
      <dc:creator>Pavel Lazarev</dc:creator>
      <pubDate>Fri, 31 May 2024 11:17:10 +0000</pubDate>
      <link>https://dev.to/plazarev/latest-news-updates-and-tutorials-from-javascript-world-37md</link>
      <guid>https://dev.to/plazarev/latest-news-updates-and-tutorials-from-javascript-world-37md</guid>
      <description>&lt;p&gt;We have been quite busy recently, therefore you haven’t heard from us about the latest DHTMLX and JavaScript news for some time. But we are back and ready to make up for this delay with new JavaScript stuff. We collected the most interesting news for the previous and current months. &lt;/p&gt;

&lt;p&gt;Today, you will get acquainted with a huge release of DHTMLX Diagram 6.0, new Angular 18, release candidates of Svelte 5 and React 19, new Svelte UI components, and key insights from the “State of HTML” report. In addition, you’ll also find a pack of useful materials to enhance your JavaScript knowledge.&lt;/p&gt;

&lt;h1&gt;
  
  
  New Releases and Updates
&lt;/h1&gt;

&lt;h2&gt;
  
  
  DHTMLX Diagram 6.0 with Enhanced Diagram Editor
&lt;/h2&gt;

&lt;p&gt;If you want to implement complex functionalities such as data visualization in web apps in the desired way, it is often the case that you have to do it yourself. We took into account this important aspect when delivering DHTMLX Diagram 6.0. &lt;/p&gt;

&lt;p&gt;This major update allows you to adjust the killer feature of our JavaScript diagramming library, namely the Diagram editor, to the needs of any project.&lt;/p&gt;

&lt;p&gt;In version 6.0, we overhauled the Diagram editor and enriched its control elements with numerous novelties. First of all, now you can fully customize the Editbar responsible for modifying diagram shapes in real time. The default Toobar of the editor became much more functional and flexible to configure it as needed. The process of adding new sections with shapes has never been easier thanks to numerous enhancements in the Shapebar API. &lt;/p&gt;

&lt;p&gt;The updated editor is also notable for the modified API for item selection, simplified management line titles, updated move events, copy manager, and many other useful novelties. &lt;/p&gt;

&lt;p&gt;We also want to mention that the Diagram component and the Diagram editor now also support new customizable themes. &lt;a href="https://dhtmlx.com/blog/dhtmlx-diagram-6-0/"&gt;Check out the release article&lt;/a&gt; to learn more interesting insights about DHTMLX Diagram 6.0.&lt;/p&gt;

&lt;h2&gt;
  
  
  Angular 18 is Here
&lt;/h2&gt;

&lt;p&gt;Angular has a reputation as a very complex tool, and there is some truth in that. However, the development team of this framework certainly deserves some credit for regularly updating their product with new features and improvements. So it is time to highlight the recently released Angular 18.&lt;/p&gt;

&lt;p&gt;Some features that gained popularity among Angular devs such as Material 3, deferrable views, and built-in control flow changed their status from experimental to stable. Now you can evaluate a new experimental feature — zoneless change detection. &lt;/p&gt;

&lt;p&gt;Also, there are several server-side rendering improvements such as i18n hydration support, better debugging, event replay, etc. Want to learn more about this major update? &lt;a href="https://blog.angular.dev/angular-v18-is-now-available-e79d5ac0affe"&gt;Read the release article&lt;/a&gt; on the Angular blog.&lt;/p&gt;

&lt;h2&gt;
  
  
  Svelte 5 is Coming
&lt;/h2&gt;

&lt;p&gt;Svelte has been around for only 8 years but many dev teams already prefer this option over other time-proven and mature frameworks. Web developers love Svelte for its efficiency and simplicity in achieving various coding goals. If you are one of those Svelte admirers, you’ll be happy to know that the framework will be soon updated to version 5.&lt;/p&gt;

&lt;p&gt;Currently, it is in the Release Candidate phase, thus the design of the framework is largely settled and you already can get acquainted with the biggest changes included in v5. The development team of the project decided to rewrite Svelte to make it faster and more robust. &lt;/p&gt;

&lt;p&gt;The key feature of the new Svelte is a signal-powered reactivity API (called runes) that promises a new level of reactivity. The update will also include overhauled event handling, improved component composition via snippets, and native TypeScript support. &lt;/p&gt;

&lt;p&gt;At the same time, there still may be some changes before the stable release of Svelte 5. &lt;a href="https://www.youtube.com/watch?v=xCeYmdukOKI"&gt;Watch this video&lt;/a&gt;, where Rich Harris, the creator of Svelte, goes through the main features of v5.&lt;/p&gt;

&lt;h2&gt;
  
  
  Brand New Svelte UI Components from SVAR
&lt;/h2&gt;

&lt;p&gt;There is one more good news for those developers who have Svelte in their technology stacks. The SVAR team has recently introduced a set of advanced UI components for the Svelte framework, including feature-rich DataGrid, Gantt Chart, and File Manager. It also offers an open-source SVAR Svelte Core library, a collection of commonly used UI elements (buttons, tabs, popups, date picker, and more).&lt;/p&gt;

&lt;p&gt;Leveraging Svelte’s lightweight and high-performance nature, SVAR components are blazingly fast and promise ease of use and customization. &lt;a href="https://svelte-widgets.com/"&gt;Visit the SVAR Svelte website&lt;/a&gt; for more information and a free trial.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to Expect from React 19
&lt;/h2&gt;

&lt;p&gt;Today, we also have reasons to mention another extremely popular JavaScript framework — React. Just like Svelte, the new React 19 reached the release candidate status. This major update promises a range of new features and improvements. &lt;/p&gt;

&lt;p&gt;First of all, this release is notable for the React compiler designed for managing component’s re-rendering on the UI state change, thereby ensuring performance optimization. Developers will also benefit from new React actions that facilitate the management of data and interactions on web pages. Apart from that, the list of novelties includes support for document metadata, server components, new hooks, and much more.&lt;/p&gt;

&lt;p&gt;You can learn more about React by visiting this page, and if you get the urge to upgrade your app to React 19, &lt;a href="https://react.dev/blog/2024/04/25/react-19-upgrade-guide"&gt;check out this step-by-step guide&lt;/a&gt;. You should also &lt;a href="https://react.dev/blog/2024/05/22/react-conf-2024-recap"&gt;take a look at the recap of React Conf 2024&lt;/a&gt; packed with exciting announcements and updates from the React &amp;amp; React Native team and community.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways from State of HTML 2023 Survey
&lt;/h2&gt;

&lt;p&gt;Although this article is mainly dedicated to the JavaScript world, we simply could not ignore the release of the State of HTML report. HTML remains indispensable for structuring and presenting web content effectively, so it is great to know about the latest trends in this area. &lt;/p&gt;

&lt;p&gt;Created by a talented team known for similar informative surveys for JavaScript and CSS, it provides plenty of curious insights based on 20,904 responses from participants across the world.&lt;/p&gt;

&lt;p&gt;In this survey, you can find interesting visual data on the experience and sentiment of respondents related to HTML features and other browser APIs. The “Usage” section of this survey deserves special attention since it provides better visibility into developer needs. For instance, if you take a look at the list of missing elements (including data table, tabs, switch/toggle, etc.), it is safe to assume that developers want more interactive HTML elements. &lt;/p&gt;

&lt;p&gt;Developers also complain about insufficient customizability, especially around styling. This issue directly concerns form input elements, which frequently have to be recreated. For more information, &lt;a href="https://2023.stateofhtml.com/en-US/"&gt;check out the complete survey&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Useful Learning Resources
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Customizing Top DHTMLX JavaScript Libraries
&lt;/h2&gt;

&lt;p&gt;Many development teams trust DHTMLX products when it comes to delivering complex functionalities for business apps, especially project management. Knowing that the development of a modern web app very often requires nontrivial solutions, we try to help our customers with tutorials that help adjust our JS libraries to various use-case scenarios. &lt;/p&gt;

&lt;p&gt;This month, our team prepared two tutorials that vividly demonstrate the high customizability of our JavaScript libraries for project management — Gantt and Scheduler.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dhtmlx.com/blog/integrating-context-menu-javascript-gantt-chart-dhtmlx/"&gt;In the first tutorial&lt;/a&gt;, you will learn how to complement a JavaScript Gantt chart with a custom context menu that enables end-users to manage tasks in the project workflow more efficiently. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://dhtmlx.com/blog/enhancing-dhtmlx-javascript-scheduler-custom-toolbar/"&gt;The second tutorial&lt;/a&gt; explains how to implement a custom toolbar into a JavaScript scheduling calendar based on DHTMLX Scheduler. This toolbar offers powerful features that enhance user interaction and accessibility.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deeper Insight into React Compiler and Its Impact on Your Code
&lt;/h2&gt;

&lt;p&gt;We already mentioned the React compiler in the news dedicated to the upcoming release of React 19. But since this feature is expected to become a game-changer in terms of performance, it is nice for web developers to learn more about this feature. &lt;a href="https://www.youtube.com/watch?v=PYHBHK37xlE"&gt;This video&lt;/a&gt; provides interesting insights about React Compiler and its practical application.&lt;/p&gt;

&lt;h2&gt;
  
  
  Listing of AI Tools to Boost Developer’s Productivity
&lt;/h2&gt;

&lt;p&gt;AI technologies still raise some reasonable concerns in the dev community, but it has become common for many developers to use various AI tools in their jobs. Such AI aids help automate recurring tasks, implement enhanced features, and improve the overall code quality. &lt;a href="https://codesubmit.io/blog/ai-code-tools/"&gt;In this article&lt;/a&gt;, you will find the selection of popular AI code generators and development tools for programmers.&lt;/p&gt;

&lt;h2&gt;
  
  
  5 Modern JavaScript Techniques
&lt;/h2&gt;

&lt;p&gt;JavaScript is constantly evolving, so JS developers should broaden their knowledge of the language to keep up with the advancements. By expanding their coding practices with new techniques, developers enhance their skills, deliver better products, and stay competitive in the job market. &lt;a href="https://thenewstack.io/top-5-cutting-edge-javascript-techniques/"&gt;This article&lt;/a&gt; offers 5 cutting-edge JavaScript techniques aimed at helping developers create powerful but concise code for their apps.&lt;/p&gt;

&lt;h2&gt;
  
  
  23 Must-Know CSS Features
&lt;/h2&gt;

&lt;p&gt;CSS (Cascading Style Sheets) plays a crucial role in modern web development by providing a means to style and layout web pages. Thus, it is useful for web developers to follow CSS trends and learn its features. Proficiency in CSS enables developers to create visually appealing and user-friendly apps as well as optimize their performance. &lt;a href="https://www.youtube.com/watch?v=opHu7HvFM60"&gt;In this video&lt;/a&gt;, you will get acquainted with the list of popular CSS features that developers should know.&lt;/p&gt;

&lt;p&gt;Thanks for reading and see you next time.&lt;/p&gt;

&lt;p&gt;This article was originally published &lt;a href="https://itnext.io/latest-news-updates-and-tutorials-from-javascript-world-681247e44e43"&gt;on Medium&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>news</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>JavaScript Libraries for Implementing Trendy Technologies in Web Apps in 2024</title>
      <dc:creator>Pavel Lazarev</dc:creator>
      <pubDate>Tue, 09 Apr 2024 13:22:05 +0000</pubDate>
      <link>https://dev.to/plazarev/javascript-libraries-for-implementing-trendy-technologies-in-web-apps-in-2024-1kil</link>
      <guid>https://dev.to/plazarev/javascript-libraries-for-implementing-trendy-technologies-in-web-apps-in-2024-1kil</guid>
      <description>&lt;p&gt;The field of web development is dynamic and continuously evolving, affected by technological advancements, user preferences, and industry needs. No wonder that web development trends are changing with time. Web developers have to adapt to the latest changes and new requirements to remain effective in their work. Specialized JavaScript libraries can facilitate this process.&lt;/p&gt;

&lt;p&gt;I selected several trending topics in web development in recent years and collected packs of useful JavaScript libraries related to them. Using these libraries, you can implement highly requested functionalities much faster.&lt;/p&gt;

&lt;h1&gt;
  
  
  AI and machine learning
&lt;/h1&gt;

&lt;p&gt;Today, it is hard to find someone in the IT world who knows nothing about the AI tool called ChatGPT. It is a vivid example of how the machine-learning approach works in practice. Despite the novelty of AI technologies and the potential risks associated with them, programmers are already actively using AI tools in their day-to-day activities. &lt;/p&gt;

&lt;p&gt;Participants of the latest Developer Survey from StackOverflow predict that AI tools will considerably impact various aspects of the development workflow. The State of Octoverse report talks about the striking growth of generative AI projects on GitHub that started in 2023, namely 65,000 projects, indicating a 248% year-over-year increase. Here is the list of useful JS libraries for AI web projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://github.com/tensorflow/tfjs"&gt;TensorFlow.js&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;TensorFlow.js is a WebGL-accelerated JavaScript library that brings machine-learning capabilities to the web. Using this tool, you can build, train, and deploy machine learning models right in web browsers or in the Node.js runtime. It supports deep learning, neural networks, and a variety of model architectures. Apart from that, TensorFlow.js enables you to run and retrain existing models. There are plenty of available models, modules, and datasets created by the TensorFlow community.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://ml5js.org"&gt;ml5.js&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;ml5.js is a JS library that offers a simplified approach to integrating machine learning models and related features into web apps. It allows working with machine learning algorithms and models in the browser, building on top of TensorFlow.js. With ml5.js, you can benefit from pre-trained models for detecting human poses, generating text, styling an image with another, and much more. ml5.js is suitable for newcomers to machine learning.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://brain.js.org"&gt;Brain.js&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Brain.js is another good option if you need to perform some simple tasks or prototype machine-learning models. It is a lightweight and user-friendly tool used for creating neural networks in JavaScript for browsers and Node.js. It has a modular implementation for easier extendability and uses GPU for calculations. Brain.js offers a range of neural network implementations since different neural nets can be trained for different purposes. It is possible to export and import trained models via a JSON format or as a function.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://github.com/cazala/synaptic"&gt;Synaptic.js&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Synaptic.js is a JavaScript library for building neural networks and implementing machine learning algorithms in web browsers as well as in Node.js. It is notable for a generalized and architecture-free algorithm. This peculiarity makes this library suitable for creating and training any type of first-order or second-order neural network architectures. Synaptic.js comes with several pre-defined architectures (such as multilayer perceptrons, LSTM, etc.) and a trainer capable of training any given network.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://trackingjs.com"&gt;Tracking.js&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Tracking.js is a good option in case you need to complement your web project with something from the realm of computer vision and real-time object tracking. Designed with a lightweight core (~7 KB) and an intuitive UI, this library equips you with computer vision algorithms and techniques that can be used in the browser environment. This library enables you to add great features to your app, such as real-time color tracking and face detection, thereby creating a more engaging and interactive user experience.&lt;/p&gt;

&lt;h1&gt;
  
  
  Project management
&lt;/h1&gt;

&lt;p&gt;In the current economic and political disruptions, the integration of productivity software remains crucial for the success of today’s businesses. According to Statista, the revenue in the productivity software market is projected to reach 79.07 billion U.S. dollars in 2024. &lt;/p&gt;

&lt;p&gt;In this software segment, we should point out the popularity of project management solutions. Most of the respondents in Capterra’s 2024 Tech Trends survey assume that their organizations are looking to increase spending on PM software in 2024.&lt;/p&gt;

&lt;p&gt;If you need a project management tool for your app but ready-made products do not meet your requirements, check out popular JavaScript libraries that will help you implement a custom solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://dhtmlx.com/docs/products/"&gt;DHTMLX&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;If you plan to build a modern project management app, you will most likely need some advanced functionalities such as a Gantt chart, scheduling calendar, Kanban board, to-do list, etc. DHTMLX provides JavaScript UI components for integrating these capabilities into your app with less time and effort. &lt;/p&gt;

&lt;p&gt;Each product comes with a solid feature set and ample opportunities for customization. For instance, as the DHTMLX team says, the Gantt component with auto-scheduling and critical path features enabled renders up to 6000 tasks in under a second without impacting the UI performance. Extensive APIs, detailed documentation, numerous demos, and live samples will help you get started faster and make the most of DHTMLX libraries. All these JavaScript products can be easily combined in a single app as a comprehensive project management solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://github.com/socketio/socket.io"&gt;Socket.io&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Project management apps are frequently used by multiple users at the same time, therefore you will certainly need a reliable mechanism for implementing real-time collaboration features. Socket.io is a JS library that enables real-time bidirectional event-based communication between a client and a server in apps. Based on the WebSocket protocol, it provides support for auto-reconnection, disconnection detection, multiplexing, arbitrary channels (rooms), etc. Therefore, Socket.io can be very helpful in delivering project management apps with real-time communication and data streaming.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.highcharts.com"&gt;Highcharts.js&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;When managing data-rich projects, it can be hard to do without some visual media such as a KPI dashboard, risk matrix, etc. It is hard to find a JavaScript library with predefined solutions for such scenarios. Therefore, you will need a highly customizable library like Highcharts.js. Developed on the basis of native browser technologies, this library presents a collection of interactive charts (bar, pie, spline, etc.) with ample customization options for integrating required visualizations into your app. Here, you can count on a considerable resource base and support from a vibrant community. Also, there is a new version of the Highcharts editor called Highsoft Lab - a special playground powered by ChatGPT, where you have an opportunity to experiment with various visualizations.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://markwhen.com"&gt;Markwhen&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A project timeline is a chronologically organized visual roadmap with all activities (tasks, milestones, deadlines, etc.) scheduled to be completed within a project. The Markwhen tool allows you to build a cascading timeline by writing markdown-like text that is converted into a good-looking visualization. To enable you to conveniently switch between the text editor and the timeline view, the library includes the VSCode extension. It also comes with multiple useful features such as American/European date styles, real-time collaborative editing, recurring events, comments, tags &amp;amp; filters, markdown-style images, and much more.&lt;/p&gt;

&lt;h1&gt;
  
  
  Cybersecurity
&lt;/h1&gt;

&lt;p&gt;In a global digital environment characterized by an ever-growing number of cyberattacks, dev teams have to take serious measures to protect sensitive data. &lt;/p&gt;

&lt;p&gt;According to Verizon’s 2023 Data Breach Investigation Report, web application attacks are involved in 26% of all breaches, ranking them second in attack patterns. Statista’s list of the main sources of web application critical vulnerabilities in 2023 includes SQL injections, cross-site scripting (XSS), and malicious file uploading. No wonder that dealing with these security concerns remains one of the main requirements in modern web applications. So it is nice to have some ready-made tools that can help strengthen the security of your app.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://github.com/cure53/DOMPurify"&gt;DOMPurify&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;DOMPurify is a DOM-only library used to sanitize and clean up HTML, especially user-generated content, thereby preventing XSS attacks. Written in JavaScript, this tool operates with a secure default but still provides a number of configuration options and hooks. When DOMPurify encounters a malicious HTML string, it will exclude everything that contains harmful HTML and return a string with safe HTML.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://jsxss.com/en/index.html"&gt;XSS module&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;This JS module is dedicated to sanitizing suspicious HTML by filtering user input and eliminating the possibility of XSS attacks. The module helps control the usage of tags and their attributes following the predefined whitelist of allowed items. You can extend the module by adding custom rules or modifying the default behavior to suit the specific requirements of your app. For instance, you can customize the XSS filter or add custom whitelist rules.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://knexjs.org"&gt;Knex.js&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Knex.js is an SQL query builder for Node.js that supports various database systems. While Knex.js itself is not specifically designed for security, it encourages the use of parameterized queries and can help prevent SQL injections by handling query generation securely. This tool also offers fluent query builder syntax, transaction support, execution of custom raw SQL, and query logging that can facilitate app security.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://github.com/auth0/node-jsonwebtoken"&gt;JsonWebToken&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;JsonWebToken is an implementation of JSON Web Tokens for Node.js. JSON Web Tokens operate as a self-contained means of transmitting information between parties (a web browser and a server). This library serves for creating (signing) and validating tokens used to authenticate and authorize users.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://retirejs.github.io/retire.js"&gt;Retire.js&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Some JavaScript libraries can be very useful in the development process but, at the same time, contain vulnerabilities that may compromise app security. The Retire.js library helps avoid such unpleasant situations. It is a scanning tool used to detect the usage of JavaScript libraries with known security issues. You can employ Retire.js in many ways: as a command line scanner, grunt plugin, gulp task, Chrome extension, Burp, and ZAP add-on.&lt;/p&gt;

&lt;h1&gt;
  
  
  Blockchain and cryptocurrency integration
&lt;/h1&gt;

&lt;p&gt;Today, blockchain may seem to be outshined by much-hyped AI technologies, but in fact, blockchain continues to evolve and be actively applied in various domains. &lt;/p&gt;

&lt;p&gt;Forecasts from Statista back up this point, saying that global blockchain technology revenues will experience massive growth in the coming years, with the market expected to climb to over 39 billion U.S. dollars in size by 2025. Cryptocurrencies like Bitcoin and Ethereum are the most common use of blockchain technology. If you are interested in adding such functionalities to your app, the following libraries can help you.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://web3js.org"&gt;Web3.JS&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Web3.js is a collection of libraries that enables you to connect and craft web apps within the Ethereum ecosystem. Using web3.js, you’ll be able to interact with smart contracts, listen for on-chain events, fetch data from the blockchain, simplify your code with built-in utilities, and much more. Moreover, you can extend the functional capabilities of web3.js with additional plugins.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://ethers.org"&gt;Ethers.js&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Ethers.js is one more noteworthy tool designed to cover your needs in the Ethereum blockchain. It is commonly used to build decentralized apps (dapps), wallets (e.g. MetaMask), and other tools that require reading and writing to the blockchain. There is a playground tool that allows you to play around with the ethers.js API.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://docs.ccxt.com"&gt;CCXT&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;CCXT is a JavaScript library that simplifies cryptocurrency exchange integration in web applications. It supports many popular cryptocurrency exchange markets and merchant APIs. The CCXT library also offers access to real-time market data for market analysis, price monitoring, and programming of trading bots. This library can help deliver trading platforms or market analysis tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://github.com/XRPLF/xrpl.js"&gt;xrpl.js&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;The xrpl.js library provides a handy toolkit for integrating XRP Ledger functionality into web projects. XRP Ledger is a decentralized public blockchain network focused on cross-border payments, smart contracts, and digital currencies. Using the xrpl.js library, you will be able to manage keys &amp;amp; create test credentials, submit transactions to the XRP Ledger, send requests to observe the ledger, subscribe to changes in the ledger, and more. The library also helps get access to numerous advanced features such as payment paths and channels, account settings, escrows, etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://github.com/bitpay/bitcore/tree/master/packages/bitcore-lib"&gt;bitcore-lib&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Bitcore-lib is a JavaScript library that comes with a reliable API that allows web apps to interact with the Bitcoin blockchain. This library is a part of the Bitcore platform, which features a complete infrastructure for delivering blockchain-based apps. Bitcore-lib supports addresses and key management, payment handling, scripting, and more. Some features, such as peer-to-peer networking, blockchain explorers, and mnemonics, are implemented as modules and can be installed separately.&lt;/p&gt;

&lt;h1&gt;
  
  
  Wrapping Up
&lt;/h1&gt;

&lt;p&gt;As you can see from the above, the web development community keeps pace with trending technologies in the IT world, providing useful JavaScript libraries, tools, and extensions in response to emerging needs. Therefore, web developers don’t need to build everything from scratch to enrich their web apps with increasingly popular functionalities. &lt;/p&gt;

&lt;p&gt;With libraries highlighted in this article, you have useful resources for enhancing security, incorporating AI capabilities, integrating blockchain technology, or building project management solutions on the web.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The article was originally published on &lt;a href="https://hackernoon.com/javascript-libraries-for-implementing-trendy-technologies-in-web-apps-in-2024"&gt;Hackernoon&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
      <category>coding</category>
    </item>
    <item>
      <title>JavaScript News, Updates, and Tutorials: March 2024 Edition</title>
      <dc:creator>Pavel Lazarev</dc:creator>
      <pubDate>Tue, 02 Apr 2024 09:38:09 +0000</pubDate>
      <link>https://dev.to/plazarev/javascript-news-updates-and-tutorials-march-2024-edition-431g</link>
      <guid>https://dev.to/plazarev/javascript-news-updates-and-tutorials-march-2024-edition-431g</guid>
      <description>&lt;p&gt;March is coming to an end, so it is high time for us to bring you up to date with the latest news from DHTMLX and the rest of the JavaScript world. This month, we rolled out a major update of our Vault library designed for building a customizable file uploader. &lt;/p&gt;

&lt;p&gt;Apart from that, we will also highlight a new JS registry from Deno and updates of TypeScript, Winter.js, and Nuxt. As always, we also collected helpful materials to expand your knowledge in various areas of JavaScript and web development.&lt;/p&gt;

&lt;h1&gt;
  
  
  New Releases and Updates
&lt;/h1&gt;

&lt;h2&gt;
  
  
  What’s New in DHTMLX Vault 5.0
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl51azs71y1fcrn4515ud.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl51azs71y1fcrn4515ud.png" alt="dhtmlx-vault-5-0-release"&gt;&lt;/a&gt;&lt;br&gt;
The DHTMLX development team continues expanding the capabilities of our JavaScript UI libraries with the requested features. This time, we are pleased to share with you highlights of the recently released DHTMLX Vault 5.0.&lt;/p&gt;

&lt;p&gt;This major update is mainly focused on improving your styling experience with our JavaScript file uploader. Now you can apply 4 customizable themes to provide a unified look and feel for your app. Moreover, it became much easier and faster to customize the appearance of specific Vault elements with UI templates. &lt;/p&gt;

&lt;p&gt;Lastly, our developers updated the integration demos of Vault with Angular, React, and Vue and added a new one with Svelte. Check out the &lt;a href="https://dhtmlx.com/blog/dhtmlx-vault-5-0/" rel="noopener noreferrer"&gt;release article&lt;/a&gt; to learn more about the novelties and examine related samples.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deno Team Presents a New JavaScript Registry
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmtnl675gvv8eidv28w5b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmtnl675gvv8eidv28w5b.png" alt="deno-jsr"&gt;&lt;/a&gt;&lt;br&gt;
Ryan Dahl and his team do not cease to amaze the development community with new ideas. For several years of the active development process, the Deno runtime has evolved from a promising project to a viable alternative to Node.js for many projects.&lt;/p&gt;

&lt;p&gt;Now, it is time to unveil a new initiative of the Deno team called JSR. It is a new package registry for modern JavaScript and TypeScript. &lt;/p&gt;

&lt;p&gt;According to the project’s website, JSR is not a replacement for npm, but it’s superset that can be used with any JS package manager and in popular runtimes (Node, Deno, Bun, etc.). Currently, the JSR project is in public beta. In &lt;a href="https://deno.com/blog/jsr_open_beta" rel="noopener noreferrer"&gt;this blog post&lt;/a&gt;, you can get acquainted with JSR in more detail.&lt;/p&gt;

&lt;h2&gt;
  
  
  Meet Winter.js 1.0
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjo7zije1oguo66vjoajr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjo7zije1oguo66vjoajr.png" alt="winter-js-1-0"&gt;&lt;/a&gt;&lt;br&gt;
Winter is not coming, it is already here with the first significant milestone in its lifecycle. As you may have guessed, we are talking not about the coldest season of the year, but about the same-named JavaScript webserver updated to version 1.0.&lt;/p&gt;

&lt;p&gt;Written in Rust, this tool boats to be incredibly fast. According to the benchmark study, Winter.js can handle 150k requests/second when executed natively, which is faster than Bun, WorkerD, and Node.js. &lt;/p&gt;

&lt;p&gt;The updated Winter.js is also notable for compatibility with the WinterCG spec, Cloudflare API, and React server components. In addition, it also supports many existing frameworks such as Next.js, Svelte, Gatsby, etc. Find more about Winter.js 1.0 in the &lt;a href="https://wasmer.io/posts/winterjs-v1" rel="noopener noreferrer"&gt;release article&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  TypeScript 5.4 is Here
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fioqlyl6nr8iqzstqg7h5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fioqlyl6nr8iqzstqg7h5.png" alt="typescript-5-4"&gt;&lt;/a&gt;&lt;br&gt;
In recent years, TypeScript has been on the wave of popularity in the web development world. TypeScript support is integrated into many popular dev tools, including DHTMLX products, and many developers eagerly learn TypeScript as part of their professional development. This popularity is achieved thanks in large part to regular updates delivered by the TypeScript team. In March, TypeScript was updated to version 5.4.&lt;/p&gt;

&lt;p&gt;The main features of this release are type narrowing improvements, a new &lt;strong&gt;NoInfer&lt;/strong&gt; utility type, declarations for new JS &lt;strong&gt;Object.groupBy&lt;/strong&gt; and &lt;strong&gt;Map.groupBy&lt;/strong&gt; static methods, and much more. Read the &lt;a href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-4/" rel="noopener noreferrer"&gt;release article&lt;/a&gt; to get the full scope of info on TypeScript 5.4.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nuxt.js 3.11 is Now Available
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flr9oko530yayhjfbxkyx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flr9oko530yayhjfbxkyx.png" alt="nuxt-js-3-11"&gt;&lt;/a&gt;&lt;br&gt;
The release of Nuxt.js 3.11 is great news for those developers who include this Vue-based framework in their technology stacks. Despite its minor status, this release brings along a range of features and improvements that promise to significantly improve your development experience with Nuxt.js.&lt;/p&gt;

&lt;p&gt;In v3.11, you can expect better logging, preview mode, cache-busting payloads, middleware routeRules, and other useful novelties. The Nuxt.js team says that v3.11 is probably the last release before the major update of the framework. &lt;/p&gt;

&lt;p&gt;If you want to learn more details about the advantages of using Nuxt.js 3.11, check out this &lt;a href="https://nuxt.com/blog/v3-11" rel="noopener noreferrer"&gt;blog post&lt;/a&gt; dedicated to the release.&lt;/p&gt;

&lt;h1&gt;
  
  
  Useful Tips and Articles
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Integrating Trendy Technologies in a Web Project
&lt;/h2&gt;

&lt;p&gt;It is not surprising that trendy technologies become the top requested features in web applications. When web developers are asked to implement functionalities related to such popular topics as AI technologies, cybersecurity, or project management, it can be extremely wearisome and time-consuming to do that from scratch. If you face such a challenge, you can speed up the development process with the JavaScript libraries reviewed in this &lt;a href="https://hackernoon.com/javascript-libraries-for-implementing-trendy-technologies-in-web-apps-in-2024" rel="noopener noreferrer"&gt;article&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Useful Insights about JavaScript SEO
&lt;/h2&gt;

&lt;p&gt;When talking about JavaScript SEO, we usually mean practices of optimizing web projects built using JavaScript for better search engine visibility and ranking. While JavaScript offers a lot in terms of interactivity, at the same time, it introduces multiple SEO complexities. Neil Patel, a well-known influencer in the field of online marketing and SEO, provides interesting insights on the topic of JavaScript SEO in this &lt;a href="https://neilpatel.com/blog/javascript-seo/" rel="noopener noreferrer"&gt;article&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Exploring Features of Upcoming React 19
&lt;/h2&gt;

&lt;p&gt;In the previous edition of our news digest, we shared with you some insights on the development progress within the React team. Therefore, it is not a secret that the new version of this framework will include plenty of new features such as React Compiler, new capabilities in React Canary, and much more. In this YouTube &lt;a href="https://www.youtube.com/watch?v=v07gXY6ESEo" rel="noopener noreferrer"&gt;video&lt;/a&gt; on the popular Web Dev Simplified channel, you can learn more information about 7 top features that will be included in React 19.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tips on Optimizing JavaScript Code
&lt;/h2&gt;

&lt;p&gt;Performance is one of the main priorities for web developers when delivering a modern web application. Optimizing JavaScript code is a way to ensure the necessary performance level. In this &lt;a href="https://romgrk.com/posts/optimizing-javascript" rel="noopener noreferrer"&gt;article&lt;/a&gt;, you can find tips and tricks that will contribute to faster load times and smoother user experiences in web apps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Risks of Copy-Pasting Commands from the Internet
&lt;/h2&gt;

&lt;p&gt;The Internet offers numerous useful resources (forums, blogs, repositories, etc.), where web developers can find solutions for their coding issues. In an attempt to save time and effort, web developers can act imprudently and copy-paste necessary commands found on the Internet directly into the computer’s terminal. But harmless-looking code may be malicious. This &lt;a href="https://www.makeuseof.com/why-you-shouldnt-copy-paste-commands-from-internet/" rel="noopener noreferrer"&gt;article&lt;/a&gt; elaborates further on the subject and provides useful recommendations.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The news digest was originally &lt;a href="https://itnext.io/javascript-news-updates-and-tutorials-march-2024-edition-2610fa9385e9" rel="noopener noreferrer"&gt;published on Medium&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>news</category>
      <category>html</category>
    </item>
    <item>
      <title>Potential Risks of Using Open-Source JavaScript UI Libraries in Business Apps</title>
      <dc:creator>Pavel Lazarev</dc:creator>
      <pubDate>Thu, 28 Mar 2024 10:17:26 +0000</pubDate>
      <link>https://dev.to/plazarev/potential-risks-of-using-open-source-javascript-ui-libraries-in-business-apps-45ak</link>
      <guid>https://dev.to/plazarev/potential-risks-of-using-open-source-javascript-ui-libraries-in-business-apps-45ak</guid>
      <description>&lt;p&gt;The history of the emergence of free and open-source software goes back to the 1950s and 1960s. However, with the advent of web technologies and the widespread adoption of JavaScript, the popularity of open-source software such as UI libraries has been growing fast. &lt;/p&gt;

&lt;p&gt;Now such tools are rightly considered a driving force behind innovation, collaboration, and cost-effective solutions in web development. But open-source libraries certainly have some soft spots that may harm your project, especially if it is an enterprise-grade undertaking.&lt;/p&gt;

&lt;p&gt;In this post, we will touch on the topic of open-source JS libraries’ popularity and focus on the potential risks of using such tools in business web applications.&lt;/p&gt;

&lt;h1&gt;
  
  
  Open-Source Software is on the Rise
&lt;/h1&gt;

&lt;p&gt;Today, it can be said that open-source software is booming and some numbers prove this fact. For instance, the latest Octoverse survey reported 420 million projects registered on GitHub, where 98 million of them were launched in 2023 and the number of first-time contributors (those who joined the platform in 2023) to open-source projects reached the highest numbers than ever before (2.2M). In addition, many professional developers who took part in the latest Stack Overflow Developer Survey claimed that outside of work they are involved in open-source projects, thereby also contributing to their growth.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcpc3h9vrc4bccq7q316v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcpc3h9vrc4bccq7q316v.png" alt="Developer Survey 2023" width="800" height="250"&gt;&lt;/a&gt;&lt;br&gt;
Source: &lt;a href="https://survey.stackoverflow.co/2023/#section-coding-outside-of-work-coding-outside-of-work"&gt;Developer Survey 2023&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, let us talk specifically about JavaScript. According to Statista, last year, the total number of open-source project versions reached approximately 60 million. Among these, the majority was in JavaScript, accounting for about 37 million projects. It is safe to assume that open-source JS libraries played a significant role in delivering these projects.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F03ui5er8trksbqys5tox.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F03ui5er8trksbqys5tox.png" alt="Statista 2023" width="707" height="455"&gt;&lt;/a&gt;&lt;br&gt;
Source: &lt;a href="https://www.statista.com/statistics/1419478/open-source-projects-versions/"&gt;Statista&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open-source JavaScript libraries as well as other free-to-use tools are extremely popular among web developers, and there are many reasons for that. The combination of cost reduction, transparency, community engagement, and the ability to customize and innovate makes open-source JS libraries valuable for web developers in achieving their goals.&lt;/p&gt;

&lt;p&gt;But not everything is so rosy about open-source JavaScript libraries in some niche areas, so let us see what can possibly go wrong with their usage in business apps.&lt;/p&gt;

&lt;h1&gt;
  
  
  Possible Drawbacks of Using Open-Source JavaScript Libraries in Business Projects
&lt;/h1&gt;

&lt;p&gt;Open-source JavaScript libraries can be a suitable option when working on small and medium-scale business apps with straightforward requirements and a limited budget or prototyping new solutions. &lt;/p&gt;

&lt;p&gt;However, suppose you decide to stick with open-source tools for complex projects, where advanced feature set, security, and long-term sustainability are the priority. In that case, you can face many potential challenges. Let us discuss them in more detail.&lt;/p&gt;

&lt;h2&gt;
  
  
  Maturity Concerns
&lt;/h2&gt;

&lt;p&gt;If you feel like extending your technology stack with a business-oriented JavaScript UI library, you’ve got to be sure about its stability, and overall readiness for production use i.e. its maturity. A mature library should typically undergo several stages (extensive testing, bug fixing, etc.) in the formation of a stable and reliable codebase. &lt;/p&gt;

&lt;p&gt;With open-source libraries, it often turns out to be a hit-or-miss game since they often appear overnight and fade into nothingness very rapidly. If you are unlucky to go with an open-source library that is not mature enough, be ready to face potential problems such as issues with dependency management, scalability, etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  Limited Feature-Set
&lt;/h2&gt;

&lt;p&gt;When you prefer using open-source UI libraries, most often you can expect a standard set of features that will cover only common needs during the application development process. But what if your project requires feature-packed tools such as a Gantt chart, event calendar, Kanban board, various diagram types, etc.? &lt;/p&gt;

&lt;p&gt;Open-source UI libraries rarely offer some unconventional features, therefore you’ll have to perform customizations or find a viable alternative.&lt;/p&gt;

&lt;h2&gt;
  
  
  Issues with Documentation
&lt;/h2&gt;

&lt;p&gt;The availability of complete and well-written documentation complemented with useful materials (snippets, samples, demos) is another potential weakness of open-source JavaScript libraries used in business apps. &lt;/p&gt;

&lt;p&gt;It is often the case that the documentation quality can vary greatly across open-source projects. Some of them may have proper documentation, while others may have serious documentation gaps, outdated information, or no documentation at all, complicating the learning process and the overall usage efficiency of such libraries.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lack of Timely and Dedicated Tech Support
&lt;/h2&gt;

&lt;p&gt;Implementing various business functionalities is definitely easier with a UI library than from scratch, but it still can be accompanied by unexpected difficulties, which require explanation. If you don’t want to waste time on such obstacles and stay on the project schedule, you will certainly need professional tech support. &lt;/p&gt;

&lt;p&gt;Unfortunately, open-source JavaScript UI libraries are unlikely to come with the required level of technical support. At best, you can count on community support, the effectiveness of which often depends on the popularity and relevance of a given library.&lt;/p&gt;

&lt;p&gt;Also, it can be really hard to find a particular vendor accountable for the product which calls into question not only the possibility of any tech support but also the maintainability and longevity of the product. For instance, if at some point, maintainers lose interest in the product, they are not legally obliged to provide any services related to it, and you risk remaining alone with all potential challenges.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vulnerability Exposure
&lt;/h2&gt;

&lt;p&gt;Open-source libraries are known and loved by many developers for their transparency, enabling developers to scrutinize the codebase and perform comprehensive testing. But at the same time, you must remember that the code of open-source projects is available to everyone, including attackers. They may find a way to integrate malware into the code that will increase risks for your project.&lt;/p&gt;

&lt;p&gt;For instance, Sonatype reported over 245 thousand malicious attacks on the open-source software supply chain in 2023, aimed at exploiting any weaknesses in upstream open-source ecosystems, including JavaScript. This figure represents a nearly 280% growth from the previous year and is over double the sum of the attacks from all the reported previous years (2019 – 2022).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fevql0x55rxci3r6j2xiw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fevql0x55rxci3r6j2xiw.png" alt="Statista 2019-2022" width="698" height="446"&gt;&lt;/a&gt;&lt;br&gt;
Source: &lt;a href="https://www.statista.com/statistics/1268934/worldwide-open-source-supply-chain-attacks/"&gt;Statista&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  License Compatibility
&lt;/h2&gt;

&lt;p&gt;And finally, we have to say a few words about possible licensing pitfalls with open-source libraries. Commonly, open-source tools are offered under different licenses (GPL, MIT, Apache, BSD, etc.). Therefore, it is recommended to go through all license terms since they may contain some restrictions. For example, some licenses for open-source products may include special conditions that restrict the commercial use, modification, and distribution of the software.&lt;/p&gt;

&lt;p&gt;All in all, open-source JavaScript UI libraries can be effective in many cases, including common business scenarios. For instance, as shown in a short &lt;a href="https://youtu.be/OKRX78CK2F4"&gt;video tutorial&lt;/a&gt;, you can use an &lt;a href="https://github.com/DHTMLX/gantt"&gt;open-source version of DHTMLX Gantt component&lt;/a&gt; to create a JavaScript Gantt chart equipped with essential features.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;Summarizing the above, we do not claim that all open-source JavaScript libraries should necessarily have any of the drawbacks described in this article, but objectively speaking, such tools are more susceptible to them. Many vendors of JavaScript UI component libraries for business like DHTMLX offer open-source library editions, besides proprietary ones, that can be great in particular circumstances. &lt;/p&gt;

&lt;p&gt;But if it is critical for you to have access to advanced features and high-speed tech support, giving preference to the editions distributed under proprietary licenses is recommended. &lt;/p&gt;

&lt;p&gt;As an alternative, you can also take a hybrid approach, where open-source libraries are applied in combination with closed-source ones to strike a balance between cost-effectiveness and additional features/support.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The post was originally published in the &lt;a href="https://dhtmlx.com/blog/potential-risks-using-open-source-javascript-ui-libraries-business-apps/"&gt;DHTMLX blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>opensource</category>
      <category>softwaredevelopment</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Common Mistakes in Selecting JavaScript UI Libraries for a Web Project</title>
      <dc:creator>Pavel Lazarev</dc:creator>
      <pubDate>Fri, 15 Mar 2024 10:24:14 +0000</pubDate>
      <link>https://dev.to/plazarev/common-mistakes-in-selecting-javascript-ui-libraries-for-a-web-project-32ei</link>
      <guid>https://dev.to/plazarev/common-mistakes-in-selecting-javascript-ui-libraries-for-a-web-project-32ei</guid>
      <description>&lt;p&gt;Complex technical requirements for modern web applications along with tight deadlines compel developers to use various auxiliary tools such as JavaScript libraries. However, the selection of a proper JavaScript tool frequently turns out a challenging task, where numerous factors should be taken into account. A proper JavaScript library significantly facilitates application development, but the wrong choice will only bring disappointment and frustration.&lt;/p&gt;

&lt;p&gt;In this blog post, we will highlight the most common mistakes and potential pitfalls that should be avoided when choosing a JavaScript UI library.&lt;/p&gt;

&lt;h1&gt;
  
  
  Exploring Intricacies of JavaScript UI Library Selection
&lt;/h1&gt;

&lt;p&gt;There are plenty of JavaScript UI libraries available on the market and their number is constantly growing, thereby providing more possible options for development teams, but at the same time, complicating the problem of choice. This issue applies to various types of software purchased by businesses.&lt;/p&gt;

&lt;p&gt;The recent &lt;a href="https://www.capterra.com/resources/us-tech-trends/"&gt;Tech Trends&lt;/a&gt; survey from Capterra provides a curious insight that proves the point. According to the survey, 58% of U.S. businesses say they regret at least one software purchase made in the past 12 to 18 months, while nearly a quarter (23%) have made multiple regretful purchases during that period.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu3nu6xd7r6uhuzirmitu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu3nu6xd7r6uhuzirmitu.png" alt="tech-trends-survey" width="800" height="667"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No matter whether you are an experienced developer or a newcomer to the field, it is important to understand some non-trivial aspects of the JS library selection to make the right purchasing decision.&lt;/p&gt;

&lt;h1&gt;
  
  
  Mistakes Made Before Selecting a JavaScript UI Library
&lt;/h1&gt;

&lt;p&gt;Prerequisites for making a false step with JavaScript UI libraries may occur before the actual selection process.&lt;/p&gt;

&lt;p&gt;For instance, let us consider how a vague understanding of project scope and requirements may affect the final choice. In cases where project requirements are ill-defined and poorly analyzed, you are more likely to experience difficulties in identifying all functionalities and parameters required for the UI of your app. &lt;/p&gt;

&lt;p&gt;To be more specific, it is important to take into consideration a wide range of requirements related to functional capabilities, user experience, performance, scalability, security, compatibility with various technologies, customizability, and much more. As a result, insufficient clarity in project requirements may lead to selecting a JavaScript UI library that either lacks essential features or includes unnecessary ones also named as “gold plating”.&lt;/p&gt;

&lt;p&gt;Apart from that, you should also conduct proper market research and have a clear financing strategy before considering particular JavaScript UI libraries for a web project.&lt;/p&gt;

&lt;h1&gt;
  
  
  Main Obstacles to Getting the Right JavaScript UI Library
&lt;/h1&gt;

&lt;p&gt;When you clearly define all project requirements, decide on the budget, and become familiar with the market of JavaScript UI libraries, you can proceed to the most important part – selecting the right UI tool for your app. At this stage, you’ll have to take into consideration a lot of important things and the risk of making mistakes is quite high.&lt;/p&gt;

&lt;p&gt;Here is the list of the most common mistakes made by development teams in their quest for suitable JavaScript products.&lt;/p&gt;

&lt;h2&gt;
  
  
  Falling for Marketing Ploys
&lt;/h2&gt;

&lt;p&gt;Good marketing can effectively promote even not-so-great products on the market using various gimmicks. Eye-catching advertising campaigns, bold and unsubstantiated product praises, too attractive offerings – all these and many other tricks may persuade you to make rash decisions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Recommendations&lt;/strong&gt;: Make sure that you are dealing with a reputable vendor. The most obvious way to do that is to check out the company’s website and read reviews on special platforms (G2, Capterra, GetApp, Software Advice).&lt;/p&gt;

&lt;h2&gt;
  
  
  Focusing Solely on Features
&lt;/h2&gt;

&lt;p&gt;A rich feature-set is a good motivation for selecting a particular JavaScript UI library. But as it is said, quantity does not equal quality. You should not forget about the actual needs of the project and delude yourself with the number of built-in features. Large feature-sets may be burdened with complex practical implementation, increased load times, and higher computer resource consumption. Moreover, there is always a chance of underestimating a learning curve.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Recommendations&lt;/strong&gt;: You should give priority to the features that are essential for your project. It is also important to ensure that all functional capabilities are &lt;a href="https://docs.dhtmlx.com/"&gt;well-documented&lt;/a&gt; and preferably complemented with &lt;a href="https://dhtmlx.com/docs/products/samples/"&gt;live samples&lt;/a&gt; and &lt;a href="https://dhtmlx.com/docs/products/demoApps/"&gt;demo apps&lt;/a&gt; so that you can get started with a given library much faster.&lt;/p&gt;

&lt;h2&gt;
  
  
  Poor Product Evaluation
&lt;/h2&gt;

&lt;p&gt;On paper, many products may look like a good investment, but, in practice, things can be different. Therefore, it is better not to opt for products that are not thoroughly tested before the final choice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Recommendations&lt;/strong&gt;: It is great when JavaScript UI libraries come with detailed documentation and rich support materials, but that’s not enough. It is a common practice for major vendors to offer potential customers an opportunity to test their products using &lt;a href="https://dhtmlx.com/docs/download/"&gt;free trial versions&lt;/a&gt; in various scenarios. It will help you to get the full picture of the product’s potential. Also, do not forget to learn about the frequency of product updates.&lt;/p&gt;

&lt;h2&gt;
  
  
  Disregarding Tech Support Level
&lt;/h2&gt;

&lt;p&gt;Even if you find a JavaScript library that perfectly matches your project requirements, you are still likely to deal with some challenges during the implementation stage. That’s where the quality of tech support comes into play. Poor tech support, or lack of thereof, will force you to fix issues by yourself or find solutions on the internet, thereby slowing down the development process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Recommendations&lt;/strong&gt;: Timely and effective tech support guarantees a quicker solution to immediate issues and ensures your web project’s long-term success and sustainability. You can estimate the level of tech support from a specific vendor by exploring various sources that may contain useful information on the subject: available support channels (email, ticket system, forum, etc.), customer reviews and case studies (or testimonials), user forums and Q&amp;amp;A websites (like Stack Overflow). Vendors also commonly specify their commitments related to tech support in the license terms.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hidden Pitfalls in Pricing and Licensing Terms
&lt;/h2&gt;

&lt;p&gt;Finally, we come to the point that frequently turns out a determining factor in selecting a JavaScript UI library, namely pricing policies and licensing terms. These aspects must be maximally clear and transparent for potential customers. Otherwise, you risk facing various unpleasant problems such as additional payments, hidden fees, application restrictions, legal complications, and more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Recommendations&lt;/strong&gt;: If you don’t want to experience a great deal of stress and regret when the selected library turns out more expensive than expected, you should understand the total cost of ownership (TCO) of the desired product. The thing is that in some cases the price advertised on the product’s website may not include possible add-on fees buried in the terms and conditions of the license. So it is highly recommended to devote the right amount of time to carefully examine all &lt;a href="https://dhtmlx.com/docs/products/licenses.shtml"&gt;licensing and pricing&lt;/a&gt; options provided for the chosen JavaScript UI library.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The post was originally published in the &lt;a href="https://dhtmlx.com/blog/common-mistakes-selecting-javascript-ui-libraries-web-project/"&gt;DHTMLX blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
