Web Development

At Lucid we pride ourselves in being on the cutting edge of E2E automation, and our automation engineers have compiled some different ways Selenium clicks fail and how to address each challenge.

TL;DR: If you are considering using an alternative binary format in order to reduce the size of your persisted JSON, consider this: the final compressed size of the data has very little to do with the serialization method, and almost everything to do with the compression method. In our testing,…

The Naive Approach to Using Angular’s Async Pipe When I was still fairly new to doing frontend development with TypeScript and Angular, I was tasked with building a component in Lucidchart that would show up conditionally. This seemed like a great opportunity to familiarize myself with Angular’s async pipe. The…

A tags component Last year, Lucidchart added many new features that enable users to attach metadata to their Lucidchart documents. One of the new types of document metadata is called custom tags. Custom tags functionality allows Lucidchart users to add arbitrary tag strings to their documents and to sort and…

If you ever need to write some code to read a source map, then you should probably start by trying to find a good library to do it for you. If for some reason you still need to write your own source map reader, then at some point you will…

Why Turning on HTTP/2 Was a Mistake. HTTP/2 is a great leap forward for HTTP. It increases bandwidth efficiency by using a binary compressed format for headers, decreases latency by multiplexing requests on the same TCP connection, and allows the client to specify priorities for requests. In many cases moving…

What you should know before making a service worker thumbnail

Service workers have arrived and they are awesome. They let you create excellent fallback behavior to provide users with seamless offline experiences. With service workers, websites are a step closer to giving users a native app experience in the web browser. With the help of service workers, Lucidchart can save…

ZoneTracker: Tracking JavaScript Performance with Zone.js thumbnail

Lucidchart is a highly performant web application. When editing a Lucidchart document, users expect a high frame rate and a responsive UI. To ensure a great experience, we track frame rate and UI stalls. This article describes how we leverage an existing library, Zone.js, to accomplish this. Prereq: The JavaScript…

Idiomatic JavaScript: Boolean Expression Tricks thumbnail

If you’re new to JavaScript, you’ll come across various keywords, syntax sugar, and shorthands that make you scratch your head. This article introduces a few of the most common boolean expression tricks I encountered when I began coding in JavaScript. Truthy and falsy Chances are, you’ve seen something like this…