Web Tools Weekly
Tools for Web Developers

Issue #527  (Stashpad Review, JS Libs, Testing, Vue)08/24/23

The following intro is a paid product review for Stashpad, a cross-platform note-taking app with a developer-friendly UI.

At some point many of us have likely tried out a note-taking app to help organize our tasks and to-dos. Note-taking apps have gained popularity over the past few years and there's no shortage of options.

But it's always nice to try one out that's built for modern tech workers in today's market. Stashpad is one such tool you'll want to try out.


Stashpad is a native app available for Mac, Windows, iOS, and Android. It's described as having been "designed for your working memory". What does that mean?

After I initially installed the app on Windows, I was presented with a wizard-like set of steps where I was able to choose between dark and light modes and create my first notes.

The Stashpad welcome intro screen
The Stashpad welcome intro screen

Once inside the app, the interface is easy to work with. Stashpad is centered around two kinds of note-taking:

  • Notes – Anything you add to Stashpad starts as a note with no sub-items or content. This is a bare-minimum note that serves as a starting point, good for adding quick brainstorms.
  • Stashes – This is the real power of Stashpad. When you add content or sub-points to an existing note, it becomes a stash, or a note with sub-items and optional content under each sub-item.
One thing that's really cool about the Stashpad interface is that it's very code editor-like. So if you're accustomed to working inside an IDE, like VS Code for example, you'll find it super-easy to work with Stashpad.
The Stashpad UI on Windows
The Stashpad UI on Windows

As shown in the above screenshot, Stashpad includes a folder-like view in the left column (with "recent" and "pinned" items), a list of your notes and stashes in the main content area, and an easy-to-access text field where you can start adding notes and stashes (just hit the spacebar to start typing).

Using the text field is called insert mode, and the text field itself is pretty powerful. You'll notice a little toolbar at the bottom of the text field that lets you customize how you add notes and stashes.

Customizing how input mode works in Stashpad
Customizing how input mode works in Stashpad

The toolbar buttons define the following:

  • Whether to split newlines into separate notes
  • Toggle CTRL-Enter vs. Enter for adding a note
  • Add emojis or attachments
In addition to the toolbar, there's an up-pointing arrow on the right that lets you select the note or stash to which you want to add your current text.

Once you've created some notes and stashes, the UI again is very developer-friendly. There are tabs that show currently opened notes and stashes, along with a "Home" view where you can see a list of your notes and stashes.
The Home view in Stashpad with open tabs
The Home view in Stashpad with open tabs

In the above example, I have 3 stashes and one note, with all 3 stashes open in individual tabs. You can see which are stashes and which are notes in the Home view list (stashes are indicated with a piled-papers icon). There are 3 sub-items that I've opened to view under the 2nd stash. You can also tell which items are stashes by the number on each line, which indicates how many sub-items are in a stash. No number means it's just a note.

When you click to enter a note or stash, the UI basically stays the same, but now you can use the text field to add items directly to the current stash.

In addition to Stashpad's input mode, there's also command mode, accessible via CTRL-K (CMD-K on Mac), which opens a command palette, or drawer, where you can enter and search for quick links to various Stashpad functions.

Command Mode in Stashpad (CTRL/CMD-K)
Command Mode in Stashpad (CTRL/CMD-K)

Of course, the real power of a note-taking app is in its ability to allow you to edit, track, and mark your notes as done. Inside of any stash, you can hit the shortcut key X to mark any selected item as "done". You can also access this from the item's context menu (right-click).

Viewing an item's context menu to mark as "done"
Viewing an item's context menu to mark as "done"

Usefully, Stashpad lets you define how "done" items are visually represented. From your Home screen, click the configurations button in the top-right area below any open tabs.

Choosing the "done" behaviour in Stashpad
Choosing the "done" behaviour in Stashpad

This gives you the option to hide done items, trash them, or group them at the bottom of a list. If you don't select any of these 3 options, the default is to simply fade the item out. Notice in my screenshot, the 2nd items is faded out, or marked as "done".

Another visual enhancement is the ability to add colors to different stashes (SHIFT-L) or to different items in a stash (just L).

Choosing colors for items in Stashpad
Choosing colors for items in Stashpad

In addition to the basic features I've discussed above, here are a number of other cool things Stashpad includes:

  • Markdown support for content within items
  • Support for code blocks within item content, using triple backticks and optional syntax highlighting (e.g. ```javascript)
  • Notes and stashes can be synced across any device where you've installed Stashpad (mobile and desktop)
  • Customizable keybindings for many of Stashpad's functions (tip: hold the CTRL/CMD key to see visual hints for many of the keybindings available in the current view)
  • On desktop, you can bring Stashpad into focus at any time using the keybinding CTRL/CMD-SHIFT-0
  • A "sticky" mode for keeping Stashpad on top (for example during video calls).
For more info on any of these features, with lots of screenshots and GIFs, be sure to check out the full Stashpad docs.

All in all, my experience with Stashpad has been fantastic. It's a simple app with an easy-to-use UI and there are a lot of powerful features packed in nicely in a way that's not overwhelming.

Stashpad includes a free plan with up to 50 notes (which includes sub-items). That's not much, but it's a great way to check out all the features before committing to the paid plan ($8 per month and up).

So if you're a developer who wants a better way to track notes, tasks, and other code-related todos, check out Stashpad today and see if it will fit into your productivity workflow.

Now on to this week's tools!


JavaScript Libraries and Frameworks

A JS/TS library for building AI apps, chatbots, and agents, that provides abstractions for AI models, vector indices, and tools.

Or #Script, a simple, fast, highly versatile and embeddable scripting language for .NET Core and .NET Apps that utilizes a familiar JavaScript inspired expressive Syntax to enable dynamic scripting of .NET Apps.

A component-based JavaScript framework that offers reactivity without a virtual DOM.

An inbox designed for reading newsletters. Enjoy your newsletters in a space built for mindful reading while giving your inbox space to breathe. It's easy to get set up and completely free!      SPONSORED 

A framework for building AI applications using JavaScript and JSX, and can be used to create standalone LLM apps that can be deployed anywhere Node.js is supported, or as part of a larger React app.

A TypeScript library that makes it easy to build natural language interfaces using types.

A powerful feature-rich, object-oriented, and lightweight JavaScript library that allows for super easy interaction with the ChatGPT DOM.

Simple Statistics
A thoroughly-tested and well-documented JavaScript library that implements statistical methods to help coders harness the power of statistics and helps statisticians understand code.

The open-source version of a commercial toolkit, this one written in TypeScript, that lets you build visual flow charts, schemas, path tracing, and more.


An XML-based web framework for structured, dynamic, and maintainable applications, with no build toolchain required.

A production-ready JS/TS library that makes it simple to work with any LLM and use advanced features like automatic function calling, with support for OpenAI, Azure-OpenAI, GoogleAI, and more.

A programming language that runs on TypeScript's type system.

Testing and Debugging Tools

An SMTP server and web interface, installable on your machine, for viewing and testing emails during development.

A tool for Node.js that allows you to interactively develop, modify, and test your JavaScript code while it's running.

An inbox designed for reading newsletters. Enjoy your newsletters in a space built for mindful reading while giving your inbox space to breathe. It's easy to get set up and completely free!      SPONSORED 

JS Minification Benchmarks
A repo that's routinely maintained to compare the quality and speed across the latest versions of various popular JavaScript minifiers.

An interactive online color contrast checker for modern CSS color formats (Oklch, Oklab, sRGB, etc.) to test for WCAG compliance in color contrast on web pages.


Mobile FIRST
A Chrome extension that offers a smartphone and tablet simulator to test your mobile site on various devices.

A visual regression testing tool for Storybook, that features easy setup, no additional maintenance cost, reproducible tests independent of OS, and supports all platforms that Storybook does.

GraphQL Network Inspector
A platform-agnostic network inspector for viewing and debugging GraphQL requests, available as a Chrome or Firefox extension.

A package for visualizing Next.js app directory routes in a tree-like fashion,  providing a clear visual representation of the routes and their relationships.

A Go-based tool designed to simulate common network problems like latency, bandwidth restrictions, and dropped/reordered/corrupted packets.

On the Release Radar:

Vue Tools

A documentation toolkit with 50+ components, powered by Nuxt, with Markdown support.

A Vue package for transforming Vue components to composable functions.

Nuxt Time
An SSR-safe time element for Nuxt 3 that respects browser locale and renders a semantic <time> element.

Nuxt Typed Router
Provide a type safe router to Nuxt with auto-generated typed definitions for route path, name, and params.

A weekly newsletter covering all things Visual Studio Code – the world's most popular code editor. There's also tools and articles for other IDEs! (Vim, NeoVim, JetBrains, and more).      SPONSORED 

A Vue component for adding Apache ECharts to your Vue projects, with support for pie charts, bar graphs, scatter plots, and lots more.

A versatile and easy-to-use Vue component that allows you to add loading animations to your Vue or Nuxt projects. You can customize and test out the loader directly on the page.


VueHooks Plus
A Vue hooks library with a comprehensive collection of basic hooks and SSR support

A portal component for Vue 3, to render a DOM outside of a component, anywhere in the document.

Vue Vine
Another style of writing Vue components, designed to provide more flexibility of managing Vue components, as a parallel style to single-file components.

Commercial Apps and Classifieds

These are commercial apps, affiliate links, PPC ads, and paid classifieds. Submit yours!
EarlyBird – Landing page builder for startups, with responsive UI blocks for non-coders.
Morning Brew – A daily email that makes reading the news and staying informed enjoyable.   AD
Codecov – All-in-one code coverage reporting for any test suite, directly inside your workflow.
Blackbox – AI-powered coding assistant with support for 20+ programming languages.
Bytes – An informative and entertaining JavaScript newsletter for web developers.   AD
Jimo – A product adoption and success platform to help users make use of more site features.
Pinggy – Create HTTP, TCP or TLS tunnels to your Mac/PC, even behind firewalls and NATs.

An X Post for Thought

An excellent reminder from Jimmie Jephson that we don't all have to hold the same opinions on work, tools, tech, etc.
A Tweet for Thought

Send Me Your Tools!

Made something? Reply to this email or send links via Direct Message on X (formerly Twitter) @LouisLazaris (details here). No tutorials or articles, please. If you have any suggestions for improvement or corrections, you can also hit reply or message me on X.

Before I Go...

RetroFlix is a new project that is attempting to archive all public domain films. I feel like this sort of thing already exists to some extent on the Internet Archive, but I sense this could be a nicer way to have these organized and easily searchable.

Thanks to all for subscribing and reading!

Keep tooling,