Web Tools #557 - App Badges, SVG Tools, Databases, Uncats

Web Tools Weekly
WEB VERSION
Tools for Web Developers

Issue #557 • March 21, 2024

Advertisement

The #1 All-In-One Platform Your Team Needs
Picture a world where workflows are finely tuned, automated to perfection, and seamlessly integrated with your favorite apps. It's not just a platform; it's a revelation—a space where managers gain unparalleled visibility into team processes, ensuring each project is a resounding success. Step into the future of work management with monday.com, where efficiency isn't a goal; it's a given.

ImageKit

From startups to industry giants, monday.com has transformed how teams work. Why not let your team be the next success story? Start your free trial today.

Start Your Free Trial Today →

Here's an interesting Web API that you may not have heard of yet: the Badging API. As the name suggests, this API is used to allow apps to push notification badges onto an app's icon, to indicate something is available.

A popular example of this is mobile devices that indicate unread messages or other notifications using a small number. Below is a screenshot from iOS with two apps using this type of badge.

Badges on App icons on iOS

Of course, many users find these types of notifications annoying and are part of the endless notifications problem we have on our devices nowadays. But as developers, it's good to know the web platform now has a similar feature for use with web apps.

The code to use the Badging API looks something like the following:

// Set an app badge
let contents = 15;

navigator.setAppBadge(​contents​).catch((error) => {
  // Do something on error...
});

// Clear the app badge
navigator.clearAppBadge().catch((​error​) => {
  // Do something on error...
});

There's two primary methods used in the code above: setAppBadge() and clearAppBadge(). When setting the badge, you can pass in a single parameter representing the contents you want to display. The contents can be any number, and the badge will ignore any decimal values, displaying only the integer (it apparently won't do any rounding).

When clearing the badge, no parameter is passed; the icon is instantly cleared of its badge. You can also clear the badge by passing in a value of "0" when setting the badge. If the setAppBadge() method is used without a parameter, the app icon will display a badge without a value (this is different from a value of "0").

Currently the Badging API is supported on Chrome and Edge for Windows and Mac and on Safari for Mac and iOS. In all cases, the API needs to be used on a web app that is installed on the user's system (e.g. a PWA or installed on the home screen on iOS).

The Chrome team has put together a nice writeup on the Badging API that includes a link to an excellent live demo where you can see it in action.

ine-height:0px;">Badging API Demo

Try it out on a supporting browser by installing the app then using the controls on the page to change the badge value. Try setting the value to "0". Take note of the behaviour of the app icon (in the taskbar, on your home screen, etc., depending on which device you're testing).

There isn't much else to discuss about the syntax for the API. The two methods are the only part of the syntax. Of course, setting up an installable app is a much larger job, so this small API can be viewed as one part of that process.

Of course, you'll want to use this sparingly knowing that many users don't want these kinds of notifications. When I ran the Chrome demo, my browser asked me if I wanted the Badging API to be used on the page. So it's good that it requires permissions that can later be revoked if needed.

Now on to this week's tools!
 

Media Tools (SVG, Video, etc.)

MiroTalk SFU — An open-source, simple, secure, and scalable real-time video conferencing solution with up to 4K video quality and compatible with all modern browsers and platforms.

CartoSVG — An online tool to easily design interactive and beautiful SVG maps using a number of different geo-related settings along with customizations for the look of the maps.

CartoSVG

PixiEditor — A beautiful, fast pixel-art editor packed in an eye-friendly dark theme, available for Windows.

monday.com — Your team's efficiency, reimagined. Revolutionize your work management. Automate tasks, integrate seamlessly, and gain full visibility. Take every project to completion with ease. Try it free today.     SPONSORED 

Wiggle Animate — An open-source vector-based motion graphics animation tool to let you customize your animations with dozens of properties, keyframe control, and curve editors.

YT Pics — Enter a YouTube URL along with a timestamp and this tool will generate a screenshot at that time in the video. Also allows downloading captions and thumbnails.

canvas-size — A script to determine the maximum area, height, width, and custom dimensions of an HTML <canvas> element, to overcome some cross-browser variances in this area.

SiriWave — The "Apple Siri" waveform replicated in pure JavaScript using the Canvas API, with support for the classic and iOS9+ waveform.

Penrose — A platform to create beautiful diagrams just by typing notation in plain text, with multiple export options available.

Avatartion — A UI to create and customize Notion-style avatars for social media profiles, placeholders, etc. You can also generate random avatars and export as PNG or SVG.

Database Tools

nodb — A serverless applications database with a RESTful API to store and fetch JSON and construct the API to match your app.

redb — A simple, portable, high-performance, ACID, embedded key-value store, written in pure Rust and loosely inspired by an older project called LMDB.

GatewayD — An open-source cloud-native database gateway and framework for building data-driven applications, like API gateways, but for databases.

Smartr Daily — The essential newsletter for curious minds. Sourcing the smartest articles on the web. Thought-provoking ideas and insights delivered straight to your inbox daily.    SPONSORED 

SQL Workbench — An online SQL workbench that lets you run SQL queries in your browser. Allows you to drop CSV, Parquet or Arrow files to create a new table.

SQL Workbench

Vanna.AI — An AI-driven tool to write your SQL for you and get actionable insights from your database just by asking questions.

Skytable — A scalable real-time NoSQL database that enables you to model complex data and write expressive queries powered by BlueQL, its own query language.

pgroll — A Go-based open-source command-line tool that offers safe and reversible schema migrations for PostgreSQL by serving multiple schema versions simultaneously.

SQL Formatter — A JavaScript library for pretty-printing SQL queries that started as a port of a similar PHP Library and has support for 12+ SQL dialects.

Tiny RDM — A modern lightweight cross-platform Redis desktop manager available for Mac, Windows, and Linux.
 
Advertisement

Diversify Your Portfolio and Safeguard Your Retirement
Safeguarding your retirement with a Gold IRA can help you shield your wealth from market shifts, economic uncertainty, and inflation. And with gold’s value projected to increase in 2024, now is a good time to invest.

Money

Planning for retirement involves more than saving, so fortify your portfolio with gold today and plan for a better tomorrow.

See our list of Best Gold IRA Companies to start planning a better retirement.

See the List →


 

The Uncategor­izables

Flyde — A visual programming language that works along with your textual coding, runs in VS Code, and integrates with existing TypeScript code, browser and Node.js.

Phase — An open-source, end-to-end encrypted platform to manage, sync and share environment variables (i.e. secrets management).

automd — An automated Markdown maintainer that scans for annotation comments within a markdown document and updates their contents using built-in generators.

Smartr Daily — The essential newsletter for curious minds. Sourcing the smartest articles on the web. Thought-provoking ideas and insights delivered straight to your inbox daily.    SPONSORED 

Prici.io — An open-source project to manage plans and pricing for any SaaS application. You can use Docker's standalone service and run it locally or on your machine.

Expressive Code — A syntax highlighting engine for presenting source code on web pages, with full VS Code theme support, editor and terminal frames, copy to clipboard, text markers, collapsible sections, and more.

Expressive Code

Loco — A Rust framework, based on Rails concepts, for side-projects and startups, specifically designed for 'one-person teams'.

Adaptive Cards — A set of platform-agnostic snippets of UI, authored in JSON, that apps and services can openly exchange.

Regexper — An online tool to visualize your JavaScript-style regular expressions. If that helps you! You can also deep link to the regexes you visualize.

Statsig — A platform for teams to implement feature flags, rollouts, and configs, with the free plan offering flags, configs, and experiments.

Commercial Apps & Classifieds

These are commercial apps, affiliate links, PPC ads, and paid classifieds. Buy a Classified here.
Columns – A fast, collaborative data visualization platform for creating data storytelling experiences.
TechpressoGet smarter about tech in 5 min with the most important tech news, tools, and insights.   AD 
Propel – A feature-rich platform to ship customer-facing analytics products quickly.
4K Download – An all-in-one video downloader for just about any popular video platform.
TLDR – A daily byte-sized version of Hacker News that takes just a few minutes to read.     AD 
Luminar – A photo editing app for Mac, Windows, and iPad, that uses generative AI technology.
Submit JSON – A form backend for agencies and freelancers, with real-time notifications via email, etc.

An X Post for Thought

Should you use "cursor: pointer" on every clickable element? Mark Dalgleish has some thoughts on this topic.
 
An X Post for Thought
 

Send Me Your Tools!

Made something? Reply to this email or send links via Direct Message on X @LouisLazaris (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 remember and miss the fact that purchased music used to come with "liner notes", you might enjoy a modern take on this: NowPlaying is an iOS music info app that includes tons of content for each song, artist, and album, sourced from different APIs.

Thanks to everyone for subscribing and reading!

Keep tooling,
Louis
@LouisLazaris
PayPal.me/WebToolsWeekly

Older messages

Web Tools #556 - structuredClone(), Frameworks, Testing Tools, JS Utilities

Friday, March 15, 2024

WEB VERSION Issue #556 • March 14, 2024 Advertisement Video API That Developers Love Delivering a high-quality video experience shouldn't be a burden for developers. Introducing ImageKit's

Web Tools #555 - CSS/HTML Tools, Git/CLI, ChatGPT

Thursday, March 7, 2024

WEB VERSION Issue #555 • March 7, 2024 Advertisement From Brewing AI Beers to Brewing Big Ideas At AE Studio, we've done some crazy things. One time, we taught AI to brew beer, and then market it —

Web Tools #554 - JS Utilities, Testing Tools, JS Lib Plugins

Thursday, February 29, 2024

WEB VERSION Issue #554 • February 29, 2024 The following is a paid product review for STRICH, a JavaScript library for real-time, multi-format barcode scanning directly in the browser. I think it's

Web Tools #553 - CSS Overview, Frameworks, Build Tools, Uncats

Thursday, February 22, 2024

WEB VERSION Issue #553 • February 22, 2024 Advertisement A Newsletter Helping Flex Your Product Muscle Product for Engineers is PostHog's newsletter dedicated to helping engineers improve their

Web Tools #552 - Vulnerabilities, JS Utilities, SVG, Mobile Tools

Monday, February 19, 2024

WEB VERSION Issue #552 • February 15, 2024 Advertisement Porkbun — Best Domain Registrar for Tech Porkbun was named the #1 domain registrar by USA Today and is the favorite domain registrar for

You Might Also Like

Recording: 'Data Storytelling: What Organizations Need to Know Going Into 2025'

Friday, November 22, 2024

Thank you for your interest in our latest webinar. As promised here is your recording of the event. View email in browser Recording Now Available Thank you for your interest in receiving a recording of

💻 Issue 437 - Introducing local Azure Service Bus Emulator

Thursday, November 21, 2024

This week's Awesome .NET Weekly Read this email on the Web The Awesome .NET Weekly Issue » 437 Release Date Nov 21, 2024 Your weekly report of the most popular .NET news, articles and projects

💎 Issue 444 - Why did people rub snow on frozen feet? (2017)

Thursday, November 21, 2024

This week's Awesome Ruby Newsletter Read this email on the Web The Awesome Ruby Newsletter Issue » 444 Release Date Nov 21, 2024 Your weekly report of the most popular Ruby news, articles and

💻 Issue 444 - JavaScript Dos and Donts

Thursday, November 21, 2024

This week's Awesome JavaScript Weekly Read this email on the Web The Awesome JavaScript Weekly Issue » 444 Release Date Nov 21, 2024 Your weekly report of the most popular JavaScript news, articles

📱 Issue 438 - Reverse Engineering iOS 18 Inactivity Reboot

Thursday, November 21, 2024

This week's Awesome iOS Weekly Read this email on the Web The Awesome iOS Weekly Issue » 438 Release Date Nov 21, 2024 Your weekly report of the most popular iOS news, articles and projects Popular

💻 Issue 362 - React Anti-Pattern: Stop Passing Setters Down the Components Tree

Thursday, November 21, 2024

This week's Awesome React Weekly Read this email on the Web The Awesome React Weekly Issue » 362 Release Date Nov 21, 2024 Your weekly report of the most popular React news, articles and projects

💻 Issue 444 - Building simple event-driven applications with Pub/Sub

Thursday, November 21, 2024

This week's Awesome Node.js Weekly Read this email on the Web The Awesome Node.js Weekly Issue » 444 Release Date Nov 21, 2024 Your weekly report of the most popular Node.js news, articles and

📱 Issue 441 - Shift Left Is the Tip of the Iceberg

Thursday, November 21, 2024

This week's Awesome Swift Weekly Read this email on the Web The Awesome Swift Weekly Issue » 441 Release Date Nov 21, 2024 Your weekly report of the most popular Swift news, articles and projects

💻 Issue 439 - Async/Await Is Real And Can Hurt You

Thursday, November 21, 2024

This week's Awesome Rust Weekly Read this email on the Web The Awesome Rust Weekly Issue » 439 Release Date Nov 21, 2024 Your weekly report of the most popular Rust news, articles and projects

📲 Why I Ditched Linux for Samsung DeX — Buy This Instead of a Gaming Headset

Thursday, November 21, 2024

Also: Taking Instagram Stories to the Next Level, and More! How-To Geek Logo November 21, 2024 Did You Know Thurl Ravenscroft was both the voice behind the Christmas song "You're a Mean One,