Pull to refresh
256K+

JavaScript *

High-level, interpreted programming language. It is a language which is also characterized as dynamic, weakly typed, prototype-based and multi-paradigm

261,14
Rating
Show first
Rating limit
Level of difficulty

A 3.5MB Web3 Messenger: Indie Development on a Zero Budget

Level of difficultyMedium
Reading time12 min
Reach and readers489

A WONDERFUL FUTURE

Technology is advancing at an astonishing rate. It seems like only yesterday that domestically produced KR1810VM86M microprocessors with a clock rate of just 8 megahertz appeared, forever dividing our lives into “before” and “after.” And a set of eight K565RU7 memory chips (similar to the Intel 41256) provided a RAM capacity of 256 kilobytes, a fantastic value for its time.

Back then, it seemed that with such rapid development, humanity was about to transcend the galaxy and rush to other worlds. Today, these figures only evoke a smile, but it was precisely with such advances in computing technology in the 1980s and 1990s that our journey into the future world of ones and zeros began.

Read more

Mini Bucket 3.6.4: Now with plugins — the door is open for developers

Reading time3 min
Reach and readers4.2K

How we turned a NAS control panel into an extension platform, why Log Manager was needed, and what the Plugin Template is for.

In the previous article (Mini Bucket 3.6.2: from beta to release), I showed how the panel matured to a stable state: we patched holes, separated databases, and added HTTPS.

But it’s still just a panel. SMB, FTP, and the rest are standard features found in almost any admin panel. It’s time to expand the functionality.

The best solution turned out to be: .....

Read more

Multifunctional lists ng-virtual-list

Level of difficultyEasy
Reading time2 min
Reach and readers3.3K

About a year ago, I decided to create a universal open-source solution for list visualization. In the first versions, I tested the virtualization technology with various parameters, and there was a lot of research and questions. Today, version X.12.X was released, which runs on Angular 14-22. I’d like to talk about the capabilities of the tool (ng-virtual-list), the problems it solves, and give a brief overview with examples.

All examples below are contained in the code sample documentation.

The ng-virtual-list tool provides virtualized, high-performance lists with a variety of features that standard lists don’t have.

Read more

Mini Bucket 3.6.2: From Beta to Release. Full Installation with Screenshots and Comments

Reading time6 min
Reach and readers4K

Why Debian 9, PHP 7.0, and no frameworks. And how to set up HTTPS in 5 minutes.

Foreword for those who haven't read the first article

Last time, I told the story of how I wanted to make a couple of pages for SAMBA and NFS, but ended up with a NAS control panel of 20+ pages. I named the project Mini Bucket.

Important: That version was a beta. Raw, with rough edges, but alive. Its goal was to demonstrate the concept. And people got interested. So, it needs to be polished.

Now – version 3.6.2. A ton of problems have been fixed, security has been added, a separate domain, forum, and wiki have appeared. Today, I'll walk you through the installation step-by-step with screenshots.

But first – a quick summary of what has changed. Then – pure practice.

Read more

How I wanted two pages for SAMBA and NFS, but ended up with a full-featured NAS control panel with 20+ pages

Reading time4 min
Reach and readers3.9K

Fair warning right away: I'm not a programmer. The code could be prettier, the architecture more elegant. But my goal was different – to make a convenient tool for myself as a system administrator. What came out came out. Don't judge too harshly, it's beta.

How it all started

I had some free time. I had an old Netgear Stora MS2000 lying around – I'd installed Debian 7 and OpenMediaVault on it back in the day. Then a disk crashed, I reinstalled Debian 9, but OMV turned out to be too heavy for this hardware.

Editing configs in the console every time was tedious. And all I really needed was SAMBA and NFS. So I thought, why bother? I'll write a couple of PHP scripts to create and edit shares.

And so Mini Bucket began.

The first two pages – and off we went

I whipped up the first two pages quickly: shares started working. Then I thought, "It would be nice to have a dashboard to see all the stats." A third page appeared – a dashboard with graphs.

Then I figured: since I've got SMB and NFS, might as well add rsync and FTP too. Added them.

Day by day, my "two-page panel" grew into a project now called Mini Bucket – NAS Control Panel.

And you know what? It actually works. On hardware where modern panels simply won't start or slow to a crawl.

What is this thing?

Mini Bucket is a web-based NAS control panel focused on resource efficiency. It runs on:

Read more

When curl Stops Working: Multi-Level Bot Detection and Where the Cloud Browser Fits In

Level of difficultyMedium
Reading time14 min
Reach and readers11K

This article is not about Puppeteer being a bad tool. Puppeteer is excellent. And competent TLS fingerprinting will bypass most defenses. But there is a class of tasks where even a perfect network stack won't save you — because detection has long since landed at the level of rendering engine behavior. Let's take a look at how Cloudflare and Akamai expose you through WebGL and Canvas, and why “clean” code no longer works.

Read more

We design a professional front-end for a messenger

Level of difficultyEasy
Reading time3 min
Reach and readers5.2K

Before creating our future messenger, we need to decide on the technology we'll use for its development. Among web development tools for single-page applications (SPAs), Angular and React are clear favorites. I won't dwell on the advantages of each of these tools, but will focus on Angular, as I've previously conducted research on non-classical virtualized lists and found that it handles this task better than React.

Read more

The Billiard Fractals

Level of difficultyHard
Reading time21 min
Reach and readers2.8K


Complex systems often appear chaotic or incomprehensible, yet closer examination reveals that such complexity can frequently be reduced to a simple underlying mechanism. By systematically removing layers of emergent behavior, one can uncover a fundamental rule or equation from which the entire system originates.

Read more →

A React Native & Lynx i18n solution that keeps your translations organized

Level of difficultyEasy
Reading time3 min
Reach and readers1.1K

If you’re building a multilingual React Native (or web) app, you’ve probably tried react-i18next, i18n-js, LinguiJS, or similar libraries.

But in every project, the same issues come up:

❌ Unused key-value pairs are never removed
❌ Content gets duplicated
❌ Ensuring format consistency across languages is painful
❌ i18next doesn’t generate TypeScript types by default – so t("my.key") won’t throw even if it’s been deleted
❌ Localization platforms like Lokalise or Locize get expensive fast

Frustrated by these challenges, I waited for a better solution... then decided to build one myself: Intlayer.

Read more

An in-depth comparison of the three main kinds of runtime type checkers to my new tool

Level of difficultyMedium
Reading time14 min
Reach and readers1.7K

tl;dr; in the modern TS/JS landscape and overall tooling trends, better stick with static code generators, they are more performant in many ways, easier to integrate into apps, other tools and the multitude of modern JS runtimes. My new tool is as good as other static code generators, but it also produces strictly type safe code and unit tests for you.

This post goes into a rather deep comparison of my new tool Type Predicate Generator (from here just Generator) to other runtime type checkers, also giving a rather broad overview of the related topics. To get a sense of what it does try checking the Playground first.

If you're about to create your first tool for the TypeScript ecosystem the insights in this article will help you hit the ground running.

Dive deep

How to Build an AI Image Analyzer with Project IDX and Gemini API: A Simple Guide

Level of difficultyEasy
Reading time3 min
Reach and readers2K

Do you want to know how to build an AI image analyzer? Then read this article till the end! I'm going to show you how to build AI analyzer tools really simply, so you almost don't have to have any prior knowledge. I will take you step by step, and we will use Project IDX and the Gemini API. This means you don't have to set up anything; everything we will do is on the cloud. If you're ready, then let's get started!

Read more

The new code as the side effect

Level of difficultyMedium
Reading time4 min
Reach and readers2.2K

The new code as the side effect

If we use the reducer function for form data handling It has an infinite list of returned values, which expands when the next development iteration updates the interface defining the form and implements a new field. So the reducer pattern is procedure code, not a functional

Read more

Gatsby and its Greatness

Level of difficultyEasy
Reading time6 min
Reach and readers1.5K

In the internet’s early days, blogging was straightforward. A server with PHP and MySQL allowed you to share your thoughts globally. Even FTP access with an index.html file sufficed.

However, as the web evolved, so did blogging requirements. Non-programmers needed user-friendly web interfaces, faster loading times, and seamless daily publishing. Platforms like Reddit, WordPress, and Tumblr emerged, but they faced a common issue: website ownership.

Read more

How Closures Work and Why It Matters

Level of difficultyMedium
Reading time8 min
Reach and readers2.2K

They might sound complicated, but they are actually a fundamental part of the language. In this article, we’ll explore closures in a straightforward and practical way. Let’s clear up common misunderstandings. Walk through real-world examples. Nail those tricky interview questions about closures. By the end, you’ll see closures not as a hurdle, but as a valuable part of your JavaScript toolkit.

Continue Closure Journey

React Global State Management: A Brief History and a Quick Guide

Level of difficultyEasy
Reading time9 min
Reach and readers7.1K

If you’re a React developer, you know how important state management is. State is the data that powers your UI, making it interactive and dynamic. But managing state in React can be tricky, especially when you have to share it across multiple components or deal with complex and asynchronous logic.

That’s why over the years, React developers have come up with various solutions for state management, each with its own advantages and disadvantages. In this article, we’ll take a look at some of the most popular ones and how they evolved. We’ll also review some of the current state-management libraries and how to choose the best one for your app.

Read more

Crafting Enhanced Dropdown Interactions with Svelte: Constructing an Advanced Dropdown Component with Svelte

Level of difficultyMedium
Reading time3 min
Reach and readers2K

In the realm of frontend development, the quest for enhancing user interaction remains a constant pursuit. Developers, inspired by innovation, often seek solutions to refine components for a seamless user experience. Today, we delve into the construction of an advanced dropdown component using Svelte — a framework known for its simplicity and effectiveness.

Read more
1
23 ...