Using WebAssembly with Web Workers

When building web apps, writing processing intensive code can be a challenge. One issue is getting predictable running times across browsers and JavaScript engines that optimise different code paths differently, as well as producing code that doesn’t interfere with user experience. Since 2010 we’ve had a standardised way to manage interactivity for long, non-DOM related tasks. Web Workers allow for offloading processing onto a separate thread keeping the main thread free. Recently we have seen the growth of another specification,

Read More »

Deploying a Dojo App with Docker

So you’ve built an amazing app using Dojo and now you are ready to go live. After a bit of research, you learn that traditional deployments are challenging! Luckily, the days of FTPing files are long gone, and we can rely on Docker for fast, reliable deployments. Using Docker will not only document your build process, but it will also give you a Docker image you can easily deploy to production or run locally. In this article, we’ll step you

Read More »

Outside the Box – Outsourcing Your UX Design

Outsourcing is such a dirty word. Unbearable customer service, subpar manufacturing, and corporate downsizing all come to mind when you hear it. But outsourcing has gotten a bad rap. There’s two kinds of outsourcing: outsourcing to drive down costs at the expense of quality (“Hello, yes, hi, thank you for calling Xfinity”), and outsourcing to bring in an expert. We tend to only think of the first example and we seldom realize how often we depend on the latter. Does

Read More »

Augmented Reality on the Web in 2019

Augmented Reality (AR) brings digital information or media and interweaves it with our experience of the real-world. In recent years Augmented Reality has become apparent in the consumer space in two major formats: head mounted displays such as the Microsoft HoloLens and the Magic Leap along with more widely available experiences on mobile devices. Here the applications normally take hold of the device’s camera and then impose digital artifacts onto the device’s viewport. Some examples of popular mobile based Augmented

Read More »

Getting Started with AssemblyScript

In a previous post we looked at how to compile the popular programming language Go to WebAssembly. WebAssembly is a new programming language which provides a compact binary format for the web. In this post we’ll explore another WebAssembly target language called AssemblyScript. AssemblyScript allows developers to write strictly typed TypeScript (a typed superset of JavaScript) code and compile it to WebAssembly.

Read More »

Secrets to a Successful Designer Developer Handoff

Let’s be honest, getting designs from your UX team into the hands of your engineering team in a way that makes sense is rarely easy. Add tight deadlines, team changes, and miscommunication to this process and your application will likely end up looking very different than what you expected. The handoff between design and development is no easy task. At SitePen, we’ve spent a lot of time learning how to improve this process. When we work with a client, we

Read More »

2019 Esri Developer Summit Recap

Esri provides the excellent ArcGIS for JavaScript API for building geospatial applications. Their approach has grown substantially over the years, from basic two-dimensional maps comparable to early Google Maps implementations to now cover nearly everything I can imagine wanting to do in a 2-D or 3-D map. Underneath the API, Esri still finds significant value leveraging Dojo Toolkit 1.x features though their APIs now include significant TypeScript support and some features from modern Dojo. Their team has also made efforts

Read More »
5 Signs Your Product Has Outgrown Its UX: The Bargain Rack

5 Signs Your Product Has Outgrown Its UX: The Bargain Rack

Everyone loves finding a great deal. Who can say no to a good two-for-one special? Every store has a bargain rack that’s full of unsold clothes and slashed prices. But have you ever considered these racks as a whole? Plaid with dots, coats with swimsuits, brown with black?! Madness! Imagine you only wore clothes from that rack—would anyone take you seriously? If you’ve been using a similar method for building your web app, it’s probably starting to look a little,

Read More »
Materialize Your Components

Materialize Your Components

Introduction Material design is everywhere today; even now if you’re reading this post in a Chrome browser, you may have noticed that the icons, fonts, colors and paddings have all recently been changed to align with Material. There are Material implementations available for most front-end libraries, and almost every starter app will likely offer a Material design option.

Read More »

Reducing First Input Delay for a Better User Experience

One common complaint around web applications is that they can feel slow or clunky compared with native applications. Sometimes we find sites that can take a long time to load (let’s say longer than 3 seconds) and sometimes those sites feel non-interactive or ‘janky’ when we try to interact with them. Many sites, especially those that leverage JavaScript heavily, can suffer from this problem as JavaScript parsing, compiling and execution can be blocking. In modern web development, we have identified

Read More »
5 Signs Your Product Has Outgrown Its UX: The Wrong Footwear

5 Signs Your Product Has Outgrown Its UX: The Wrong Footwear

Ever spent the day walking in the wrong shoes? Played basketball in flip flops? Worn socks with sandals? No? Just me? Wearing the right footwear can make a big difference. But none of us carry around our entire shoe collection waiting for the right opportunity to wear each pair. We just pick the pair that looks good and suits our general plans for the day. Who would guess you’d be invited to go rock climbing after putting on those heels?

Read More »
Getting Out of Technical Debt

Getting Out of (Technical) Debt

For development teams, there is little more satisfying than starting an application from scratch and watching the final product evolve piece by piece over months of hard work. Maintaining legacy applications, on the other hand, is notorious for being difficult and yielding depressingly little reward. No team sets out to create bug-ridden applications that constantly crash or that are exceedingly difficult to change. Rather, the goal of every codebase is to fulfill requirements and be correct, reliable, and easy to

Read More »