Web Development

Lucid’s company-wide Hackathon is a summer tradition. Three days of intense teamwork with the goal of producing creative, ambitious projects that could transform our products. For those three days, my team modified hundreds of stylesheets to implement custom theming, including Dark Mode. As a summer intern, here’s what I learned…

Like many companies, Lucid employs the use of Completely Automated Public Turing tests to tell Humans and Computers Apart (CAPTCHAs). They provide our system security benefits such as decreasing the likelihood of bot accounts and hindering user enumeration attacks. However, we have found that they also present unnecessary friction to…

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…

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…