Umar
syedumar.bsky.social
Umar
@syedumar.bsky.social
Comparing IDEs – Part 4 -WebStorm: Polish, Power, and Limitations

A Premium IDE Experience WebStorm represents the premium end of the IDE spectrum—a polished, feature-rich environment specifically designed for web development. When working with TypeScript, CSS, and related technologies, WebStorm…
Comparing IDEs – Part 4 -WebStorm: Polish, Power, and Limitations
A Premium IDE Experience WebStorm represents the premium end of the IDE spectrum—a polished, feature-rich environment specifically designed for web development. When working with TypeScript, CSS, and related technologies, WebStorm offers a level of maturity that immediately stands out. The IDE excels at providing built-in validation across multiple technologies. For example, CSS errors are flagged automatically without requiring additional extensions. Its IntelliSense capabilities are faster and more comprehensive than alternatives, and the entire user interface feels thoughtfully designed.
umaranis.com
November 10, 2025 at 8:24 PM
Comparing Modern IDEs – Part 3: VSCode with Vim extension

The Allure of Vim Keybindings in VS Code After discussing Neovim as a standalone editor, let's examine another approach: using Vim-style editing within VS Code through extensions. For those who appreciate Vim's keyboard-centric editing but…
Comparing Modern IDEs – Part 3: VSCode with Vim extension
The Allure of Vim Keybindings in VS Code After discussing Neovim as a standalone editor, let's examine another approach: using Vim-style editing within VS Code through extensions. For those who appreciate Vim's keyboard-centric editing but want to retain VS Code's ecosystem, two main options exist: VS Code Vim and the VSCode Neovim extension. While these extensions seem to offer the best of both worlds, my experience suggests they create more problems than they solve.
umaranis.com
November 10, 2025 at 11:22 AM
Comparing Modern IDEs: A Developers Guide (Part 2: NeoVim)

Introduction to Modal Editing At the opposite end of the spectrum from our previous topic is Neovim, a text editor that emphasises keyboard-focused interaction rather than mouse-driven operations. Neovim features an extraordinary approach…
Comparing Modern IDEs: A Developers Guide (Part 2: NeoVim)
Introduction to Modal Editing At the opposite end of the spectrum from our previous topic is Neovim, a text editor that emphasises keyboard-focused interaction rather than mouse-driven operations. Neovim features an extraordinary approach to text navigation and manipulation through keyboard shortcuts. For example, you can press vi{ to select everything inside curly brackets. These thoughtfully designed shortcuts make text editing not just efficient but genuinely enjoyable.
umaranis.com
November 4, 2025 at 11:01 AM
Comparing Modern IDEs: A Developer’s Guide (Part 1 – VS Code)

In this five-part series, I'll compare four popular Integrated Development Environments (IDEs): Visual Studio Code, JetBrains WebStorm, NeoVim, and Zed. Each offers unique advantages for different development workflows, but let's start…
Comparing Modern IDEs: A Developer’s Guide (Part 1 – VS Code)
In this five-part series, I'll compare four popular Integrated Development Environments (IDEs): Visual Studio Code, JetBrains WebStorm, NeoVim, and Zed. Each offers unique advantages for different development workflows, but let's start with what I consider the most versatile option. Why VS Code Should Be Your Default IDE Visual Studio Code (VS Code) stands out as an ideal choice for developers of all skill levels, from beginners to seasoned professionals.
umaranis.com
November 2, 2025 at 11:36 AM
Released svelte-lexical 0.6.2: diff in code block

svelte-lexical 0.6.2 brings support for code diff inside a code block. You can get into the diff mode by using the markdown shortcut (```diff-javascript) followed by the space key. There is also support for creating tables using the markdown…
Released svelte-lexical 0.6.2: diff in code block
svelte-lexical 0.6.2 brings support for code diff inside a code block. You can get into the diff mode by using the markdown shortcut (```diff-javascript) followed by the space key. There is also support for creating tables using the markdown shortcut now. For instance, typing/pasting the following text and hitting the spacebar will convert it into a table. | Column 1 | Column 2 | Column 3 | | Row 1 | Data | More | | Row 2 | Data | More | There are a few more enhancements and bug fixes. Check out the release notes here.
umaranis.com
September 24, 2025 at 12:27 PM
Svelte: Maintaining state of hidden components

In a complex UI, we often need to hide components—for example, switching between tabs, showing a modal, or collapsing a section. In Svelte, the natural way to conditionally render is with an if block: {#if showComponent} {/if} But there’s a…
Svelte: Maintaining state of hidden components
In a complex UI, we often need to hide components—for example, switching between tabs, showing a modal, or collapsing a section. In Svelte, the natural way to conditionally render is with an if block: {#if showComponent} <Child /> {/if} But there’s a catch: when a component is hidden with if, Svelte actually unmounts it from the DOM. That means the component is destroyed and its state is lost.
umaranis.com
September 9, 2025 at 10:52 AM
Different ways of adding SVG to HTML and their implications on styling and bundling
Different ways of adding SVG to HTML and its implications on styling and bundling
SVGs are often used as icons in web applications. As vector graphics, SVGs are small in size and high in quality even when scaled. Another benefit is the ability to style them using CSS. It comes i…
umaranis.com
August 23, 2025 at 6:15 AM
Thanks for having me on @paolo.ricciuti.me
June 21, 2025 at 3:05 AM
Released svelte-lexical 0.6.0 – Dark mode & Embed videos/tweets

Release 0.6.0 has a bunch of exciting new features and several bug fixes. See the GitHub release page for the complete change log. Dark Mode Finally, we have support for dark mode out-of-the-box. There are three themes to choose from:…
Released svelte-lexical 0.6.0 – Dark mode & Embed videos/tweets
Release 0.6.0 has a bunch of exciting new features and several bug fixes. See the GitHub release page for the complete change log. Dark Mode Finally, we have support for dark mode out-of-the-box. There are three themes to choose from: default - light mode only light-dark - switch between light and dark mode based on system preferences system-light-dark - same as light-dark but also allows the user to manually override the mode Embed YouTube Video You can insert YouTube video in the editor. Embed a Tweet You can embed tweets and Bluesky posts.
umaranis.com
June 3, 2025 at 10:42 PM
Svelte Reactivity : Beyond the basics

Svelte 5 introduces a powerful and refined reactivity system that gives developers greater control and clarity. In this post, we’ll explore the key concepts behind Svelte 5’s reactivity model, from derived values to tracking rules and best practices. $derived…
Svelte Reactivity : Beyond the basics
Svelte 5 introduces a powerful and refined reactivity system that gives developers greater control and clarity. In this post, we’ll explore the key concepts behind Svelte 5’s reactivity model, from derived values to tracking rules and best practices. $derived Is Only Evaluated If Needed In Svelte 5, $derived computations are lazy—they are only evaluated when their value is actually needed. This helps avoid unnecessary work and keeps your app fast.
umaranis.com
May 28, 2025 at 11:31 AM
Released svelte-lexical 0.5.3: new documentation website

This release introduces a new documentation website developed using Startlight that is an Astro framework template for creating documentation sites. Breaking change breaking: refactor font size update methods New Features feat: export all…
Released svelte-lexical 0.5.3: new documentation website
This release introduces a new documentation website developed using Startlight that is an Astro framework template for creating documentation sites. Breaking change breaking: refactor font size update methods New Features feat: export all $create..Node methods to programmatically create content Bug fixes bug: HR not selection outline not displayed in some demos bug: fix the shell styling for more examples…
umaranis.com
May 18, 2025 at 9:26 PM
svelte-lexical: Released version 0.5.1

We've just released v0.5.1 of svelte-lexical, featuring important bug fixes and a default theme included in the npm package. The default theme makes it more convenient to include the default theme for the editor and shell in your project. Instead of copying…
svelte-lexical: Released version 0.5.1
We've just released v0.5.1 of svelte-lexical, featuring important bug fixes and a default theme included in the npm package. The default theme makes it more convenient to include the default theme for the editor and shell in your project. Instead of copying files manually, a single import statement can bring in all the required styles. Here are the release notes:
umaranis.com
April 26, 2025 at 3:19 AM
Released a new documentation site for svelte-lexical #svelte #lexical

svelte-lexical.vercel.app
svelte-lexical
An highly configurable rich-text editor for Svelte
svelte-lexical.vercel.app
March 21, 2025 at 12:02 AM
Tree-Shaking CSS in a Vite project

Optimizing code delivery is crucial when building modern web applications to ensure faster load times and better performance. One common optimization technique is tree-shaking, where unused code is eliminated from the final bundle. It is easier to achieve for…
Tree-Shaking CSS in a Vite project
Optimizing code delivery is crucial when building modern web applications to ensure faster load times and better performance. One common optimization technique is tree-shaking, where unused code is eliminated from the final bundle. It is easier to achieve for code than for CSS styles. In this blog post, we’ll explore how tree-shaking of CSS works in a Vite using an example with two projects:
umaranis.com
February 1, 2025 at 6:59 AM
Upgraded #svelte-lexical to #svelte 5.
Kudos to the Svelte team for making such a major migration so easy. This must have required a lot of hard work. @svelte.dev @sveltesociety.dev umaranis.com/2025/01/01/u...
Upgrading svelte-lexical to Svelte 5
I have upgraded svelte-lexical to Svete 5. It was a relatively smooth process considering the significant change of syntax. Here is the story of the upgrade: 1- Run the migration utility The Svelte…
umaranis.com
January 1, 2025 at 2:22 AM
Icon libraries for developers

Here are some of the largest icon libraries: Library Number of Icons License Description 1.3+ Million - PNG: free with attribution- SVG: 15$ / month for 100 icons Each Icon is available in 47 different styles 226K+ Open Source - Consolidate icons from other…
Icon libraries for developers
Here are some of the largest icon libraries: Library Number of Icons License Description 1.3+ Million - PNG: free with attribution- SVG: 15$ / month for 100 icons Each Icon is available in 47 different styles 226K+ Open Source - Consolidate icons from other open-source libraries
umaranis.com
November 28, 2024 at 12:23 PM