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

WebAIM November 2024 Newsletter

Friday, November 22, 2024

WebAIM November 2024 Newsletter Read this newsletter online at https://webaim.org/newsletter/2024/november Features Using Severity Ratings to Prioritize Web Accessibility Remediation When it comes to

➡️ Why Your Phone Doesn't Want You to Sideload Apps — Setting the Default Gateway in Linux

Friday, November 22, 2024

Also: Hey Apple, It's Time to Upgrade the Macs Storage, and More! How-To Geek Logo November 22, 2024 Did You Know Fantasy author JRR Tolkien is credited with inventing the main concept of orcs and

JSK Daily for Nov 22, 2024

Friday, November 22, 2024

JSK Daily for Nov 22, 2024 View this email in your browser A community curated daily e-mail of JavaScript news React E-Commerce App for Digital Products: Part 4 (Creating the Home Page) This component

Spyglass Dispatch: The Fate of Chrome • Amazon Tops Up Anthropic • Pros Quit Xitter • Brave Powers AI Search • Apple's Lazy AI River • RIP Enrique Allen

Friday, November 22, 2024

The Fate of Chrome • Amazon Tops Up Anthropic • Pros Quit Xitter • Brave Powers AI Search • Apple's Lazy AI River • RIP Enrique Allen The Spyglass Dispatch is a free newsletter sent out daily on

Charted | How the Global Distribution of Wealth Has Changed (2000-2023) 💰

Friday, November 22, 2024

This graphic illustrates the shifts in global wealth distribution between 2000 and 2023. View Online | Subscribe | Download Our App Presented by: MSCI >> Get the Free Investor Guide Now FEATURED

Daily Coding Problem: Problem #1616 [Easy]

Friday, November 22, 2024

Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Alibaba. Given an even number (greater than 2), return two prime numbers whose sum will

The problem to solve

Friday, November 22, 2024

​ Use problem framing to define the problem to solve This week, Tom Parson and Krishna Raha share tools and frameworks to identify and address challenges effectively, while Voltage Control highlights

Issue #568: Random mazes, train clock, and ReKill

Friday, November 22, 2024

View this email in your browser Issue #568 - November 22nd 2024 Weekly newsletter about Web Game Development. If you have anything you want to share with our community please let me know by replying to

Whats Next for AI: Interpreting Anthropic CEOs Vision

Friday, November 22, 2024

Top Tech Content sent at Noon! How the world collects web data Read this email in your browser How are you, @newsletterest1? 🪐 What's happening in tech today, November 22, 2024? The HackerNoon

iOS Cocoa Treats

Friday, November 22, 2024

View in browser Hello, you're reading Infinum iOS Cocoa Treats, bringing you the latest iOS related news straight to your inbox every week. Using the SwiftUI ImageRenderer The SwiftUI ImageRenderer