Resources for engineers.

April 23, 2024

Runme Gist: A Pastebin for Terminals Inside Your D...

Card background
Learn how Runme brings securely shareable GitHub Gists to your day-to-day DevOps workflows and docum...

March 19, 2024

Our Path Forward, Stateful for CloudOps

Card background
A Stateful company update. Where we've been, where we're going and the exciting opportunity in front...

February 26, 2024

What's New in Runme v3

Card background
At Runme, we've been hard at work to enhance your experience and bring you some thrilling new featur...

February 13, 2024

Pipeline Logs and Artifacts but Locally

Card background
Runme v3.0 now features Session Outputs, capturing and saving notebook cell outputs alongside the or...

January 31, 2024

What’s New in Runme v2.2

Card background
Learn what's new in Runme v2.2 and how v3's headline feature, "Session Outputs," will lift Runme to ...

December 5, 2023

Hardening an Ubuntu Server with Runme

Card background
System hardening is an essential practice that involve securing a system by reducing its vulnerabili...

November 21, 2023

Unleashing Efficiency: The Auto-Save Feature in Ru...

Card background
The Auto-Save feature in Runme doesn’t just safeguard your work, providing a seamless and hassle-fre...

November 14, 2023

Escape Confluence: Better Tooling for Internal Ope...

Card background
Learn what's new in Runme v2.0 and how it's an excellent solution for internal documentation to capt...

November 1, 2023

Runbook: What is it?

Card background
At its core, a runbook is a documented set of procedures, instructions, and guidelines designed to h...

September 6, 2023

Shebang Your Runbooks

Card background
The shebang is a simple and convenient way to ensure that the correct interpreter or program is used...

September 3, 2023

What is a Runbook: A Quick Intro

Card background
A runbook is a go-to reference for step-by-step instructions on what to do in a variety of situation...

July 6, 2023

Elevating Tasks Over Files in the Runme CLI

Card background
In today's Runme CLI release, we're shipping Project Mode. Project Mode elevates tasks simplifying t...

June 14, 2023

Embed GitHub Actions in your Docs

Card background
Unbreak your docs and runbooks. RUNME combined with GitHub Actions for VS Code lets you understand w...

May 16, 2023

10 Things You Didn't Know Markdown Could Do

Card background
Read this blog post and find 10 incredible tips that you probably didn’t know and can help you with ...

May 3, 2023

The Hitchhiking Contributor’s Guide to Onboarding ...

Card background
All kidding aside, why don’t we continuously integrate our repo's onboarding workflows? It's obvious...

April 25, 2023

Comparing the Best Node.js Version Managers: nvm, ...

Card background
In this blog post, we'll compare and contrast three popular Node.js version managers: nvm, volta, an...

April 18, 2023

Visually explore OpenAI's Image APIs without codin...

Card background
We know chatGPT is cool, but have you heard about DALL-E yet? Learn about AI image editing in this f...

April 13, 2023

Building Cross Browser Web Extensions in 2023 - Th...

Card background
Here at Stateful we recently launched our Runme Web Extension that will help us to bring our Runme N...

March 28, 2023

ReadmeOps: Integration Testing Markdown Docs in CI...

Card background
Learn how to leverage Runme v1 to test your docs in CI/CD and all the cool new features you can util...

March 27, 2023

Boosting your VS Code productivity using Emmet Exp...

Card background
One of the most underrated features VS Code provides is Emmet expressions, they are like the missing...

March 7, 2023

15 Hidden Tips And Tricks of VS Code That You Shou...

Card background
In this blog post, we'll explore 15 hidden tips and tricks of VS Code that you might not know about....

March 2, 2023

How Runme Makes Project Documentation Interactive ...

Card background
The Stateful team has collaborated with the WebdriverIO project to help improve their documentation ...

February 15, 2023

Runnable Tutorial Straight From Your Blog Post

Card background
As a developer, you may often find yourself writing and reading technical blog posts, GitHub project...

December 19, 2022

Runme - Road to Testable Documentation

Card background
Treat docs like code! Runme’s grand vision is to provide a flexible toolkit to deliver testable docs...

November 15, 2022

But it works on MY machine! Debugging GitHub Workf...

Card background
Plagued by a test that passes locally but fails when run in CI? Learn how you can debug such flaky t...

October 27, 2022

Koa in the Cloud

Card background
In this post you can learn how to run Koa on AWS Lambda and the differences with Express.

October 26, 2022

How the Deno Fresh Framework Will Make Your App Fa...

Card background
Learn how the server-side rendering of JS with Fresh speeds up the loading of app and makes it fast...

October 26, 2022

5 Deno Runtime Projects You Should Try

Card background
Highlights a number of projects out there using Deno that developers should watch and try.

October 21, 2022

What Is Deno Deploy and How It Makes Distributed A...

Card background
Learn how using Deno allows people to quickly script distributed web apps.

October 20, 2022

Which VS Code Extensions are the most useful and p...

Card background
The Stateful team discusses their personal favorite and most entertaining VS Code extensions. We wan...

October 19, 2022

Build Your First App with Deno

Card background
Check out this get started guide for people new to deno and what they need to do to get up and runni...

October 19, 2022

Run your README.md in VS Code

Card background
Run your README.md as an interactive notebook. Zero changes required to the underlying markdown.

October 18, 2022

How Deno's Third-Party Module System Can Keep Your...

Card background
Read this blog post and learn how the module system works and how it can benefit app developers with...

October 18, 2022

5 Changes Coming Soon to Deno

Card background
Read this blog post and learn the highlight 5 key improvements to Deno in releases in 2022.

October 18, 2022

Deno vs. Node.js — Five Major Differences You Shou...

Card background
Highlight key differences between Deno and Node.js and what developers should consider when making a...

October 3, 2022

Monkey Patching http.request for Fun and Profit

Card background
Let’s explore how we can monkey patch the Node.js `http` library (and, by extrapolation, `https` as ...

September 15, 2022

What Is Deno and Why You Should Try It

Card background
Learn the basics of what the Deno runtime environment is all about, and highlight the key features, ...

September 1, 2022

How to Implement GitHub OAuth in Your Node.js App

Card background
OAuth is a standard protocol used for authorization. This post will discuss implementing GitHub OAut...

August 23, 2022

Your VS Code Extension on Your Favorite IDE’s Home...

Card background
This is a tutorial that will transform a VS Code extension into a custom marquee widget

August 3, 2022

Run README.md in your terminal

Card background
Easily run your README commands from the CLI using the rdme tool. Check it out.

August 1, 2022

Credential Management: What It Is, Best Practices,...

Card background
I'll walk you through the subject of credential management, what it is, and why it's essential to gu...

August 1, 2022

How to Generate and Validate an OAuth 2.0 State Pa...

Card background
OAuth 2.0 state parameters help guard against CSRF attacks, maintain application state, and preserve...

July 27, 2022

Authoring npm Packages with Monorepos

Card background
In this tutorial, you will demonstrate how to publish and create multiple npm packages using a monor...

July 26, 2022

3 Common Use Cases for Fastify

Card background
In this guide, you will cover 3 use cases in which Fastify shines with code examples.

July 26, 2022

A Complete Guide to VS Code Extension Testing

Card background
Most VS Code extensions in the marketplace have minimal testing, if any at all. In this blog post yo...

July 22, 2022

Type Annotations in JavaScript

Card background
Learn about the TC39 proposal of adding static typing to JavaScript

July 19, 2022

Can Node.js Send Email? 3 Options and How to Add T...

Card background
Explore three ways to send email from Node.js applications & how to add them to your app. And code s...

July 12, 2022

What Are Refresh Tokens and How Can They Boost You...

Card background
In this guide, you will give a more in-depth explanation of what refresh tokens are, how they can im...

July 12, 2022

Token Validation: What It Is and How to Set It Up

Card background
Access tokens & token validation are popular and tested mechanisms for securing communication betwee...

July 12, 2022

Projects Coming to Life Inside of VS Code – Marque...

Card background
Effectively working on software projects requires extensive contextual knowledge, and finding the in...

July 7, 2022

Node.js WebSocket Client: 3 Ways to Implement One

Card background
This article will explore the best ways to implement a Node.js WebSocket client. Let's find out more...

June 27, 2022

Scheduling Requests

Card background
Any modern 3rd party HTTP API that sees significant traffic will have some form of rate limiting imp...

June 23, 2022

Is EdgeDB the Future?

Card background
EdgeDB solves some design flaws of relational and No-SQL databases. Read the differences between Edg...

June 3, 2022

How to Process Large Files with Node.js

Card background
Processing large files takes a lot of memory and can severely impact the performance of your Node.js...

June 3, 2022

Exploring the Japa Node.js Test Runner

Card background
Japa is a fast, small, and simple API-first Node.js test runner with a rich feature set. Learn what ...

May 27, 2022

Is Remix the Next-Gen React Framework You Should U...

Card background
Remix JS is a full stack web framework that lets you build fast, slick, and resilient websites. It i...

May 26, 2022

Using the GitHub API in Node.js: A Comprehensive T...

Card background
Learn how to use Github API in Node.js by building your own APIs for getting user, commits, and repo...

May 19, 2022

Create Your First Node.js GitHub Action: a How-To ...

Card background
In this post, you'll learn what GitHub Actions are and how to create your first GitHub Action for yo...

May 12, 2022

GitHub Search API: An Introduction With Examples

Card background
Learn how to construct search queries to use GitHub Search API to search users, repositories, commit...

May 7, 2022

How to Use the GitHub API to List Repositories

Card background
GitHub offers developers a powerful API. In this post, learn how to use GitHub API to list repositor...

May 6, 2022

How to Use the GitHub Pulls API to Manage Pull Req...

Card background
The GitHub API is powerful, but getting started might be frustrating. In this post, we'll walk you t...

May 6, 2022

Managing OAuth User Credentials in Your Node.js Ap...

Card background
Learn how to implement and manage the OAuth Authorization Code Flow in your Node.js / Express app

April 22, 2022

What’s Taking So Long? Task-Based Promise Performa...

Card background
If we want to understand the architectural performance of our system, we need to first measure the s...

April 19, 2022

Node 18 Release - Top New Features

Card background
node-18 is finally here, and Stateful has been following what’s included for months now. Read our su...

April 16, 2022

Node.js 18 Introduces Prefix-Only Core Modules

Card background
Node.js 18 is introducing a new type of core module that can't be imported like all of the other cor...

April 14, 2022

Which Node.js OAuth Library Does Your App Need?

Card background
Finding a Node.js OAuth Library for your app gets confusing really quickly. Read this post to learn ...

April 13, 2022

OAuth 2.0 Refresh Token Best Practices

Card background
Learn the best practices you should consider for managing OAuth 2.0 refresh tokens and access to you...

April 11, 2022

Build a Plugin System With Node.js

Card background
Writing a plugin system enables your application to be extensible, modular, and customizable. Learn ...

April 8, 2022

Plugin Architecture Overview Between Express, Fast...

Card background
Learn how the most popular Node.js web frameworks approach extensibility and modularity throughout d...

March 29, 2022

The GitHub Action You Need to Publish VS Code Exte...

Card background
In this blog post we’d like to share how Stateful releases its Marquee extension to the VS Code Mark...

March 25, 2022

Running Multi-Tenant Grafana, Tempo, and Loki on A...

Card background
This blog will detail how we run the infrastructure for the Grafana Loki Tempo (GLT) stack at Statef...

March 24, 2022

A Built-in Test Runner Is Coming to Node and Why Y...

Card background
Node.js is adding a built-in testing module to Node core. It will come in the form of a new node tes...

March 23, 2022

Signing JWT Securely From Your Browser Using WebCr...

Card background
In this post, we will explore the basic mechanics of Web Cryptography API RSA key generation, creati...

March 22, 2022

Discontinuous Semver: Versioning in the Land of Mo...

Card background
Discontinuous, in that not every package has a unique version at every numerical increment. And semv...

March 11, 2022

Five Things Not to Do When Building Your SaaS CLI

Card background
If you decide to make a command line tool for your SaaS, great! Here’s a list of things not to do!

March 10, 2022

Building an Emergency Circuit Breaker with AWS WAF

Card background
This blog will explore an easier way to deal with may requests by creating a big red button using AW...

March 3, 2022

Embed Grafana for Your Users in React

Card background
Let's dive deep into the code that integrated Grafana with a React app, providing graphing, tracing,...

February 24, 2022

GitHub OAuth Apps vs GitHub Apps

Card background
GitHub Apps are the way to integrate with GitHub. It supports OAuth Apps and GitHub Apps. Understand...

February 23, 2022

Node.js Adds Support for Direct Registry-less HTTP...

Card background
Node is planning to introduce support for HTTPS imports in Node 18 - a feature that enables you to u...

February 16, 2022

Blue Green Deployments on AWS

Card background
Blue-Green deployments is a deployment strategy that avoids downtime during application deployments ...

February 10, 2022

Why Private Npm Registries Matter and How Verdacci...

Card background
You should consider setting up a private registry to protect against unforeseen circumstances and en...

February 4, 2022

Simple Authorization Model for HTTP APIs

Card background
A simple yet flexible authorization model for your HTTP APIs.

February 2, 2022

fetch() In Node.js Core: Why You Should Care

Card background
Node 17.5 introduces support for the fetch() HTTP client, a new way to send requests to HTTP APIs.

February 1, 2022

Hello Marquee v2.0 - The VS Code Homescreen Extens...

Card background
We are excited to release a major update to our popular Marquee VSCode Extension. Most notably, we’v...

January 13, 2022

Mocking With Undici Like a Pro

Card background
This post goes into detail into Undici's mocking support, which enables you to write fast and reliab...

January 4, 2022

Generate WebAssembly With AssemblyScript: a TypeSc...

Card background
Learn how to write WebAssembly code with the familiarity of a TypeScript-like language, create low-l...

December 23, 2021

Sync App State across JS Sandboxes without Stumbli...

Card background
Learn how to use the new JS/TS module "Tangle" to implement seamless event handling and app state sy...

August 17, 2022

Asana OAuth: How to Access User Data Using OAuth

Card background
Learn how to implement a Node.js application that connects to Asana and requests the authenticated u...

March 14, 2022

Streamline Funnel Analytics with Dynamic UTM Param...

Card background
There is love-hate relationship with UTM parameters for performance marketing. Let’s explore a techn...

August 16, 2022

Everything You Need to Know About Third-Party Inte...

Card background
This post discusses the many uses of third-party integrations and how they can be useful for develop...

March 23, 2022

Upload Google Spreadsheet Chart to Slack

Card background
This post shows how you can automate sending Google Spreadsheet charts to Slack on a schedule. No pr...

August 31, 2022

QuickBooks OAuth: How to Set up the Online Account...

Card background
Intuit uses OAuth2 to authorize applications for access to company data. Here's how to use their lib...

August 11, 2022

Zoom OAuth: How to Connect Your Web App to the Zoo...

Card background
In this post, we'll see how to integrate Zoom OAuth into your Node.js app. First, you need to connec...

July 7, 2022

A Guide To Events In The Google Calendar API

Card background
While utilizing one of the top calendar apps, there is the very useful Google Calendar APIs which ca...

May 6, 2022

Discord API Rate Limiting: A Troubleshooting Guide

Card background
This article provides you with the tools needed to fix any Discord API rate limiting issues that you...

August 11, 2022

HubSpot Pipedrive Integration, From Start to Finis...

Card background
HubSpot and Pipedrive can help your team manage sales and track your marketing. Here's how to get th...

July 19, 2022

Google Sheets API Tutorial: The Basics You Need to...

Card background
In this Google Sheets API tutorial for beginners, learn how to use the Google Sheets API to perform ...

May 6, 2022

Discord's REST API, An Introduction With Examples

Card background
Let's take a look at what the Discord API is, how to set it up, and the steps for making requests to...

March 14, 2022

Supercharge your Webmaster Skills using the Google...

Card background
Google’s Search Console API is an extremely useful tool for webmasters who rely on traffic data and ...

June 21, 2022

6 Trello API Examples, Useful Code Recipes

Card background
In this post, you'll learn how to use the Trello API by walking through some 6 trello api examples. ...

January 6, 2022

How to Secure Your HTTP APIs

Card background
This post will review a few HTTP API access control approaches, from simple API keys to OAuth.

August 31, 2022

Discord OAuth: How to Add the Discord API to a Nod...

Card background
In this tutorial, we'll go over step by step how to use the Discord API and integrate Discord OAuth ...

June 22, 2022

Using the Google Calendar API in React.js: An In-D...

Card background
We'll build a simple React app that uses Google Calendar API and that lists and adds events to your ...

July 12, 2022

How to Integrate Your App With HubSpot Using OAuth

Card background
Let's take a look at how to integrate your app with HubSpot using OAuth and Node.js and get a furthe...

July 18, 2022

Slack OAuth: How to Implement It in a Node.js App

Card background
Follow this tutorial to write the code necessary to implement Slack OAuth in a Node.js app then conn...

July 12, 2022

Google Sheets API Limits, What It Is and How to Av...

Card background
In this post, we'll learn about the Google Sheets API limits. When we're making an app, using Google...

March 10, 2022

API Metering and Analytics for Early Stage Startup...

Card background
This post will help you set up a simple metering and reporting system for the HTTP APIs of your app ...

March 24, 2022

Create an Interactive Image Carousel in Slack

Card background
Learn how to use Slack block kit to build an interactive Image Carousel

March 8, 2022

5 Women in Tech That Influence Your Everyday Life ...

Card background
Did you know that the inventor of scientific computing, the first compiler, the personal computer, a...

June 22, 2022

Trello API Limits: 5 Best Practices to Avoid Rate ...

Card background
Third-party APIs like the Trello API can make life easier for developer. We'll discuss best practice...

May 19, 2022

How to Use the Gmail API in Node.js - A Step-by-St...

Card background
Follow this guide to setting up and using Gmail API in Node.js to read, drafts, and send emails.

August 10, 2022

How to Connect to PagerDuty OAuth in Your Node.js ...

Card background
In this post, we'll connect PagerDuty to a Node.js application. In order to implement this without e...

July 26, 2022

Quickly and Easily Authenticate Users With LinkedI...

Card background
How do you integrate LinkedIn OAuth into an app? What are the steps? How do you get LinkedIn OAuth c...

August 16, 2022

Reddit OAuth: Let Users Sign into Your App With Re...

Card background
Reddit OAuth makes it possible for your application to make HTTP requests to Reddit's API endpoint. ...

March 18, 2022

Google Calendar Webhooks with Node.js

Card background
Google’s Calendar API provides push notifications that let you watch for changes to resources. Learn...

May 17, 2022

Sending Email With the Gmail API: A How-To Guide

Card background
In this post, we'll cover the basics of Gmail API and how to send emails using the Gmail API accompa...

June 21, 2022

Is WebAssembly the New Docker?

Card background
Learn the differences between WebAssembly, Docker, and other virtualization technologies of your cho...

August 4, 2022

Shopify Node API: How to Integrate It in Your App

Card background
This post will walk you through how to set up and use the Shopify API with your Node.js app. We'll a...

February 8, 2022

Webhook Rate Limits and Throttling

Card background
In this blog post you will learn the importance to rate limit in webhooks, rate limiting techniques,...

March 4, 2022

Google Forms New API Using Node.js

Card background
Google Forms API is currently in open beta. Learn what you can do and how to do it using Node.js eve...

April 1, 2022

Use the Google Search Console API and GitHub Actio...

Card background
Learn how to integrate your website publishing workflow to automatically submit new content to Googl...

March 10, 2022

Implement Webhooks with Google Forms API in Node.j...

Card background
Learn how you can create and subscribe to form events using Node.js with push notifications.

May 17, 2022

New Express 5 Features to Try

Card background
Express.js 5 is currently in Beta. In this article, we will cover the new Express.js 5 features and ...

November 29, 2022

How to Run Deno on AWS Lambda

Card background
Learn how to run Deno in a serverless environment.

October 26, 2021

Bots, Hooks, and Extensions

Card background
Identify the set of technical challenges you will need to think about and solve to add a robust inte...

July 18, 2022

Credential Validation: What It Is and Why It Matte...

Card background
Learn the benefits of credential validation, where it is commonly used, and how to implement it with...

August 10, 2022

How to Use Confluence OAuth to Access Data From a ...

Card background
In this post, we'll look at how to use the OAuth Client Library to allow a NodeJS web app to authent...

August 1, 2022

GitLab OAuth: 4 Easy Steps to Implement It in Your...

Card background
This blog post will give you an overview of GitLab OAuth and how to implement it in your Node.js web...

June 3, 2022

How to Use the Google Calendar API With JavaScript

Card background
In this post, we'll cover how to use the Google Calendar API with JavaScript including detailed exam...

November 21, 2022

How to Receive Updates from Salesforce in Your Den...

Card background
Learn how to connect a Deno application to the Salesforce API and query for leads/contacts and displ...

August 19, 2022

Using OAuth Providers With Microsoft Teams

Card background
Microsoft Teams support OAuth via Azure Active Directory for users, and via third-party for apps int...

July 7, 2022

Supporting Web Workers API in Node.js vs Just Usin...

Card background
Does adding Web Workers API support to Node.js make sense given it already has Worker Threads? Or is...

August 4, 2022

How to Access Jira Data From a Node.js App Using J...

Card background
Jira OAuth safely ports data from Jira to third-party applications. Explore accessing Jira data from...

July 7, 2022

Unified APIs for Messaging, Accounting, CRM, and B...

Card background
Using unified APIs for classes of systems can accelerate your integration strategy, but watch out fo...

August 4, 2022

Google OAuth: Everything You Need to Start Using I...

Card background
Learn to create a Node.js app that can complete the authentication process using Google OAuth, and e...