Web Tools #497 - JS Utilities, Git/CLI Tools, Uncats

Web Tools Weekly
WEB VERSION
Tools for Web Developers

Issue #497 • January 26, 2023

Advertisement
The Fast Way for Developers to Build Mobile Apps
Build native iOS and Android apps with no mobile expertise—all you need is JS and SQL. Retool Mobile is the fast way for developers to build business apps for teams on the go, at a warehouse, or in the field. Teams of up to 5 can build for free.

Start for Free
Retool

When I come across different JavaScript libraries, frameworks, and other tools, many of them are described as having a "declarative API". This is something that's used to describe UI libraries like React and Vue.

Of course, if you don't understand programming concepts, the word "declarative" can feel a bit foreign at first. OK so it's declarative. What is that in contrast with? Simply put, declarative code contrasts with imperative code.

The following points might help make clear the difference between the two concepts:

  • Imperative programming is concerned with how something is done (control flow, logic trees, etc.)
  • Declarative programming is concerned with what gets done (the end result, which often involves high-level functions and methods)
HTML and SQL would be considered declarative languages. These "languages" get right to the point: They state exactly what needs to be seen or shown in the program. Languages like C and Java (and often JavaScript) would be considered imperative because they're dealing with lower-level code.

JavaScript can be either declarative or imperative. React, as mentioned, is declarative. It's only concerned with high-level methods and features. jQuery would be another example of a declarative library. The code that forms the logic behind features in those libraries, of course, is plain JavaScript. That would more or less amount to imperative programming.

Similarly, raw JavaScript features like Array.map(), Array.reduce(), and so on, are declarative. They're concerned mainly with what gets done (i.e. map this, reduce this, etc.). The following code would be more along the lines of an imperative programming example in JavaScript:
 
// Imperative code example

function addNums (arr) {
  let myNum = 0;
  arr.forEach(function (item, index) {
    myNum += item;
  });
  return myNum;
}

console.log(addNums([5, 6, 7])); // 18

The above function adds together an array of numbers. This doesn't use any special JavaScript methods other than forEach(), so it's pretty raw and not the greatest code. You can see all the steps the code is taking if you walk through it.

Now compare that to the following example, which is considered more declarative:

// Declarative code example

function addNums(arr) {
  return arr.reduce((total, item) => total + item, 0);
}

console.log(addNums([8, 9, 10])); // 27

This is much simpler code, using Array.reduce(), which does in a more declarative way what the previous snippet did. Try both examples in this CodePen.

DOM manipulation is also declarative. Its main concern is the end results: Grab a child element, collect some nodes, replace an element, etc. Whatever happens behind the scenes to get those tasks done isn't our concern when using a declarative API like the DOM.

So if you see a library or other tool boasting that it's 'declarative' – that's a good thing! It will be easy to understand, it will have a familiar and easy-to-grasp API, and you won't have to deal with flow control and other stuff that just gets done for you behind the scenes.

Now on to this week's tools!
 

JavaScript Utilities

The Fast Way for Developers to Build Mobile Apps
Build native iOS and Android apps with no mobile expertise—all you need is JS and SQL. Retool Mobile is the fast way for developers to build business apps for teams on the go, at a warehouse, or in the field. Teams of up to 5 can build for free.  SPONSORED  

moize
A fast memoization library that handles multiple parameters (including default values) without additional configuration, and can satisfy any number of potential use-cases.

Termino.js
A dependency-free JavaScript component that lets you add embedded terminal animations, games, and apps to web pages.

LogT
A small utility to add colors and animated GIFs to log output in the browser console, along with the ability to override default console commands.

Colord
A tiny and powerful JavaScript tool for high-performance color manipulations and conversions. The on-page demo interactively shows you what's possible when inputting a random color value.

Colord

Lazy Brush
JavaScript library to draw smooth curves and straight lines with your mouse, finger, or any pointing device.

Structura.js
Fast and lightweight Typescript library, similar to Immer.js, that allows you to create immutable states with a mutable syntax, based on the idea of structural sharing.

Remeda
A "data-first" and "data-last" utility library designed especially for TypeScript, as a better alternative to similar libraries like Ramda and Lodash.

wa-tunnel
A utility powered by Baileys (the WhatsApp JS API) that lets you tunnel internet traffic through two WhatsApp accounts.

Highlightable Input
A simple yet fully styleable text field that will automatically add customizable highlighting to at-mentions and hash tags.

tmsg
A truly type-safe internationalization library for TypeScript that includes a CLI to automatically find strings to translate in your code.

ipvfs
A utility to create and manage diff versioned files in an IPFS Mutable File System store.
 

Git, GitHub, and CLI Tools

Skyflow: What If Privacy Had an API?
What are the most common mistakes companies make when it comes to managing and protecting sensitive user data? Read the guide now to learn how to move fast without breaking privacy.   SPONSORED  

GPTDuck
Input a GitHub repository then type a question for info on the repo, and the tool will use ChatGPT to provide info.

hiSHtory
A better shell history that stores your shell history in context (what directory you ran the command in, whether it succeeded or failed, how long it took, etc).

LGTM Alternative Suggestions
A Chrome extension that shows alternative suggestions when the text 'LGTM' (i.e. "Looks good to me") is entered in a GitHub pull request.

ov  
A feature-rich terminal-based text viewer, also referred to as a terminal pager, written in Go.

ov

sd  
A script directory shell program that lets you organize your scripts in a logical directory hierarchy.

wrangler
A command line tool for building Cloudflare Workers.

Hey, GitHub!
Currently in technical preview, a GitHub-based service to use your voice to code without spelling things out by talking with GitHub Copilot.

VHS
A Go-based tool to write terminal GIFs as code for integration testing and demoing your CLI tools.

Modern Unix
A collection of modern, faster, saner, etc., alternatives to common Unix commands.

giget
A CLI utility to streamline downloading templates and Git repositories with support for GitHub, GitLab, Bitbucket, and Sourcehut, and includes a built-in template registry.
 

The Uncategorizables

Skyflow: What If Privacy Had an API?
What are the most common mistakes companies make when it comes to managing and protecting sensitive user data? Read the guide now to learn how to move fast without breaking privacy.   SPONSORED  

Pingvin Share
A self-hosted file sharing platform and an alternative to WeTransfer, with no file size limit, expiration dates, email recipients, and more.

ezy
A full-featured desktop GUI client for gRPC/gRPC-Web.

D2 Playground
An online playground to experiment, learn, and create with D2, the modern diagram scripting language that turns text to diagrams.

1Tools
A huge collection of online tools and utilities for everyday needs covering categories for development, images, social media, audio/video, text, PDF, domains, charts, and lots more.

1Tools

RegexGo
An easy-to-use, AI-powered regular expressions generator. Type what the RegEx should/shouldn't match and it will generate the result.

Znote
A native JavaScript and Markdown-based app for prototyping, organizing, and exploring ideas and code snippets.

ApiScout
A powerful and flexible macOS REST API client for modern software teams.

Pirate Weather
A free, open, and documented weather forecast API that aims to return data using the same JSON structure as Dark Sky, the popular weather API.

Inngest
An open-source, event-driven platform that makes it easy for developers to build, test, and deploy serverless functions without worrying about infrastructure, queues, or stateful services.

APITable
An API-oriented and easy-to-use visual database for everyone, as an open-source alternative to Airtable.

Kubero
A free Heroku PaaS alternative for Kubernetes that provides a native solution that doesn't require any external dependencies.

FreeSubtitles.AI
An online tool with a user-friendly UI to generate transcripts for audio and video content, with 300MB file size and 1 hour duration limits.

Commercial Apps and Classifieds

These are commercial apps, affiliate links, PPC ads, and paid classifieds. Submit yours!
Documentation Page – Gorgeous documentation for your projects, generated from your GitHub files.
Abakus – Bookkeeping, accounting, and consulting services for small businesses and freelancers.   AD
ScrapeUp – Real-time proxy API for web scraping to get the HTML from any page with a simple API call.
PaidLink.to – Create a simple monetized paywall to protect access to your digital goods.
Product Teacher – A free weekly newsletter with articles and essays on product management.  AD
instaprice – A service pricing calculator for freelancers to make sure they charge correctly.
Scout – Application performance monitoring built for developers, by developers.

A Tweet for Thought

A pretty accurate statement about hiring that would likely have been true even 20 years ago.
 
A Tweet for Thought
 

Send Me Your Tools!

Made something? Send links via Direct Message on Twitter @WebToolsWeekly (details here). No tutorials or articles, please. If you have any suggestions for improvement or corrections, feel free to reply to this email.
 

Before I Go...

If you miss the good ol' days where everything was an online directory or a webring, you might like ooh.directory, a categorized old-school-like collection of more than 1,300 blogs covering just about any topic.

Thanks to everyone for subscribing and reading!

Keep tooling,
Louis
@WebToolsWeekly
PayPal.me/WebToolsWeekly

Older messages

Web Tools #495 - CodePen, CSS, Bundlers, Media (SVG, etc.)

Friday, January 20, 2023

Web Tools Weekly WEB VERSION Issue #495 • January 12, 2023 Advertisement JavaScript & DOM Tips E-Books Bundle My JavaScript E-Books bundle now includes a new volume! Get all 4 e-books containing

Web Tools #496 - JS Libraries, JSON/DB, Vue Tools

Friday, January 20, 2023

Web Tools Weekly WEB VERSION Issue #496 • January 19, 2023 Advertisement Measure the Success of Your Components 📊 Hot out the oven! Omlet is a code-based component analytics product to help frontend

Web Tools #494 - Frameworks, Git/CLI Tools, Uncats

Thursday, January 5, 2023

Web Tools Weekly WEB VERSION Issue #494 • January 5, 2023 Advertisement Debugging Sucks. 💩 Jam Makes it Better. 🚀 Here's why 10000+ switched to Jam as their screen recorder for bugs: ⚡️ One click

Web Tools #493 - Top 30 Tools of 2022

Thursday, December 29, 2022

Web Tools Weekly WEB VERSION Issue #493 • December 29, 2022 Advertisement Measure the Success of Your Components 📊 Hot out the oven! Omlet is a code-based component analytics product to help frontend

Web Tools #492 - Top Tools of 2022 (Part 1)

Thursday, December 22, 2022

Web Tools Weekly WEB VERSION Issue #492 • December 22, 2022 Advertisement Build Faster by Actually Using Your Components 🚀 Hot out the oven! Omlet is a code-based component analytics product to help

You Might Also Like

Issue #575: Excalibird, bird’s eye metropolis, and Stimulation Clicker

Friday, January 10, 2025

View this email in your browser Issue #575 - January 10th 2025 Weekly newsletter about Web Game Development. If you have anything you want to share with our community please let me know by replying to

22 CES products you can't miss

Friday, January 10, 2025

10 must-install Linux apps; Cybersecurity in 2025; Email encryption how-to -- ZDNET ZDNET Tech Today - US January 10, 2025 CES logo 2025 CES 2025: The 22 most impressive products you don't want to

⚙️ The wild, wild west

Friday, January 10, 2025

AI's uncertain legislative path ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌

ASP.NET Core News - 01/10/2025

Friday, January 10, 2025

View this email in your browser Get ready for this weeks best blog posts about ASP.NET Core! Discover the Exciting New Features in .NET Aspire 9 — by rijsat Building a Real-Time Santa's Workshop

ALERT: Ivanti Flaw CVE-2025-0282 Actively Exploited, Impacts Connect Secure and Policy Secure

Friday, January 10, 2025

THN Daily Updates Newsletter cover Deep Learning For Dummies ($21.00 Value) FREE for a Limited Time Take a deep dive into deep learning Download Now Sponsored LATEST NEWS Jan 10, 2025 Taking the Pain

The Sequence Research #466: Small but Migthy, Diving Into Microsoft Phi-4

Friday, January 10, 2025

Some architecture details about Microsoft's famous SLM. ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

Notes app can do what now?

Friday, January 10, 2025

Hey there, Do you ever use the Notes app on your iPhone? If you do, you'll want to keep reading! The Notes app might look simple, but it has lots of great features to make your life easier. For

The Commodification of Pleasure

Friday, January 10, 2025

…and the enclosure of creative talent ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

Invitation to the Event Sourcing workshop

Friday, January 10, 2025

Hey! I'm usually not making New Year commitments. ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

SWLW #633: AI and cognitive offloading, The story in your head, and more.

Friday, January 10, 2025

Weekly articles & videos about people, culture and leadership: everything you need to design the org that makes the product. A weekly newsletter by Oren Ellenbogen with the best content I found