Category: JavaScript
Search
TypeScript 5.0 Cheat Sheet
TypeScript 5.0 Cheat Sheet

This cheat sheet is an adjunct to our Definitive TypeScript Guide. Originally published November 2018.

Read More
The Definitive TypeScript 5.0 Guide
The Definitive TypeScript 5.0 Guide

Originally published October 2018. Updated March 2023. This article describes the features and functionality of TypeScript 5.0. One of the most interesting languages for large-scale application development is Microsoft’s TypeScript. TypeScript is unique in that it is a superset of JavaScript, but with optional types, interfaces, generics, and more.

Read More
Advanced TypeScript 4.8 Concepts: Classes and Types
Advanced TypeScript 4.8 Concepts: Classes and Types

Originally published November 2018. Updated November 2022.

Read More
The Basics of Proxy
The Basics of Proxy

Modern JavaScript is amazing. There are so many features you might not have had a chance to use, and some that are probably being utilized by some of your favorite frameworks and tooling.

Read More
Intro to HTML-first Frontend Frameworks
Intro to HTML-first Frontend Frameworks

In the beginning was HTML, and our pages were fast. But they were boring, so we added JavaScript.  JavaScript ended up being so capable that we ended up creating entire applications with it, dynamically creating and destroying DOM interactively to users’ delight.

Read More
The Web Speech API: Can You Hear Me Now?
The Web Speech API: Can You Hear Me Now?

How often have you wanted to yell at your computer or phone? What if your device could save that tirade as a text in an email or note you could review in the future, a memento of your favorite outbursts? Or, maybe you want to provide your users a more hands-free experience, with alerts that also speak to you. Or you simply want to add a clean voice-to-text component to your application.

Read More
Welcome to Web Bundles
Welcome to Web Bundles

Web bundles are an exciting part of the web packaging specification. They provide you the ability to package up your entire website into a single bundle and share it with others.

Read More
Spend Some Time With the Temporal API
Spend Some Time With the Temporal API

Ask almost any developer what their greatest fear is and one deep-seated topic will rise above the rest… dates.

Read More
Why Type Annotations in JavaScript are a Good Idea
Why Type Annotations in JavaScript are a Good Idea

In March 2022, a Stage 0 proposal was announced that would add TypeScript-like type annotations to the JavaScript language. The utility and ergonomics of static types for JavaScript have been debated since before TypeScript’s inception; some developers feel that types add needless complexity to the language, while others feel that types add a much-needed safety net.

Read More
Deno: Desktop JS Evolved
Deno: Desktop JS Evolved

Deno, introduced by Node.js creator Ryan Dahl during JSConf 2018, has grown into a credible alternative to Node.js, and the JavaScript and TypeScript communities have continued to track Deno’s progress. Like Node.js, Deno is a system for executing JavaScript code in various environments ( desktop, command-line, server, etc.).

Read More
Taming Strings with Template Literal Types
Taming Strings with Template Literal Types

Among the vast number of improvements that ES2015 brought to the JavaScript language was a powerful feature called “template literals.” Naturally, TypeScript, as a superset of JavaScript, has supported this useful construct since its beginning. However, TypeScript 4.1 introduced a novel application of the template literal concept to increase the power and usefulness of its type-system: it introduced something called a template literal type.

Read More
My Engineers Love TypeScript, but Will it Actually Make My Project Better?
My Engineers Love TypeScript, but Will it Actually Make My Project Better?

TypeScript has become a hugely popular alternative to JavaScript in the frontend web development community. Many engineering teams are convinced it is a critical tool that allows them to write better code faster.

Read More
Rome: The Last JavaScript Package
Rome: The Last JavaScript Package

Rome is a new set of tools for working with web-facing technologies like JavaScript, TypeScript, JSON, HTML, Markdown, and CSS. The toolchain currently supports linting and formatting, with active plans to also support bundling, compiling, minification, type checking, testing, and documentation generation.

Read More
Vetting a UI Component Library
Vetting a UI Component Library

When developing web applications, choosing a UI component library is one of the earliest decisions your team has to make. Beyond reducing the amount of functionality your team has to maintain, UI component libraries shield developers from the complexities involved in designing user interactions that are accessible and behave correctly across browsers and devices.

Read More
Introduction to Machine Learning with JavaScript
Introduction to Machine Learning with JavaScript

Machine learning is a subset of AI that is concerned with algorithms that can improve through experience. Experience in this case generally translates to being fed lots of data.

Read More
Sensible Improvements in TypeScript 3.9
Sensible Improvements in TypeScript 3.9

The recent TypeScript 3.9 release primarily focuses on performance and stability, but it does include some language updates that are worth a closer look. Continuing its quest to save you from yourself, TypeScript 3.9 expands on the uncalled function checks that were introduced in version 3.7.

Read More
Getting Started with React Native
Getting Started with React Native

React Native is a JavaScript framework for writing hybrid native mobile applications for both iOS and Android platforms. React Native uses the same JSX and React development approach you would take for developing for the browser, but applications get built as native applications in Objective-C (for iOS) or Java (for Android) by the React Native tooling.

Read More
New TypeScript Features that Improve the Developer Experience
New TypeScript Features that Improve the Developer Experience

In many ways, TypeScript is more like a powerful linting and documentation tool to author better JavaScript, rather than a separate programming language. One significant benefit of TypeScript is its deliberate support for some of the latest ECMAScript language features.

Read More
What Makes Intern Different
What Makes Intern Different

Intern has always taken a different path in the pursuit of flexible automated web app testing. In the early days, Intern leveraged AMD modules when most other testing frameworks were not modular or only supported CommonJS modules, allowing Intern to support modular code in any environment.

Read More
Why did we start TSConf?
Why did we start TSConf?

The ubiquity of JavaScript is undeniable; it’s the universal language of the web — a position that no other languages hold. JavaScript is flexible, able to adapt and grow as the web grows.

Read More
HalfStack Conference – Phoenix, January 2020
HalfStack Conference – Phoenix, January 2020

HalfStack is a series of tech conferences focused on half of the web development stack – specifically, the part you interface with. It lives up to its claims of being “an authentic, high value experience for attendees and sponsors focused on UI-centric JavaScript and web development.” Friday, January 17, 2020 Alamo Drafthouse, Chandler, Arizona The morning got off to a great start with comfortable seating and fine dining at the Alamo Drafthouse in Chandler.

Read More
Exploring the Network Information API
Exploring the Network Information API

In 2007, we were invited to speak at the Apple WWDC event. At the time we didn’t know why we were invited.

Read More
How to Pick a Web Mapping Library for your App
How to Pick a Web Mapping Library for your App

With the boom of location-based technologies like mobile location services and the Geolocation API in the browser, we have seen the growth of mapping and location inside of applications. Alongside this we have seen numerous mapping libraries appear for the web, allowing developers to build map-based experiences into their apps.

Read More
JSConf US 2019: Pushing JavaScript Beyond the Browser
JSConf US 2019: Pushing JavaScript Beyond the Browser

As a first-time JSConf attendee, I happily embraced the welcoming culture and fun atmosphere – surfing, anyone? But I was even more impacted by the presentations centered around JavaScript expanding beyond the browser, using JavaScript to help others, and the focus on community. Of course I’m an avid JavaScript engineer and believer (why else would I be at JSConf), but I left feeling awed and inspired after seeing how progressive and impactful the JavaScript ecosystem can be.

Read More
Next Generation Virtual Scrolling
Next Generation Virtual Scrolling

Rendering large data sets in the browser while optimizing for performance and accessibility is a complex problem. The current approach to handling long lists of data is using an infinite scroll pattern to incrementally load and render data just before the data enters the view.

Read More
Getting Started with Electron, Typescript, React and Webpack
Getting Started with Electron, Typescript, React and Webpack

If you need to build a desktop application today, Electron is an increasingly common choice. It is cross-platform and is built using the same web technologies that you probably already know.

Read More
Using WebAssembly with Web Workers
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.

Read More
Deploying a Dojo App with Docker
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.

Read More
Augmented Reality on the Web in 2019
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.

Read More
2019 Esri Developer Summit Recap
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.

Read More
Reducing First Input Delay for a Better User Experience
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.

Read More
Codemods: Effective, Automated Refactoring
Codemods: Effective, Automated Refactoring

Maintaining software is challenging. Stagnant software quickly becomes obsolete and this couldn’t be truer than in the JavaScript ecosystem.

Read More
Compiling Go to WebAssembly
Compiling Go to WebAssembly

For many years there has been the only way to write client-side logic for the web; JavaScript. WebAssembly provides another way, as a low-level language similar to assembly, with a compact binary format.

Read More
Updating the Decorators Proposal for the Holidays
Updating the Decorators Proposal for the Holidays

Photo by Annie Spratt on Unsplash The Ecma TC39 committee, which standardizes the JavaScript language (officially known as ECMAScript), has been discussing a decorators proposal for several years. Transpilers like TypeScript and Babel implemented the initial version of the decorators proposal, allowing developers and frameworks to start using the proposal before the feature became an official part of the language standard.

Read More
Cats vs Dogs: Answering the Important Questions
Cats vs Dogs: Answering the Important Questions

SitePen participates in a number of conferences around the world presenting new technology and ideas to engineers and designers. Recently Dylan Schiemann and Tom Dye spoke at the HalfStack Conference in London and Paul Shannon spoke at Phoenix TypeScript meetup.

Read More
TC39 Binary AST Proposal to Improve JavaScript Performance
TC39 Binary AST Proposal to Improve JavaScript Performance

WebAssembly has grown in popularity due to its ability to improve application performance and support transpilation of source code in other languages into something that may get leveraged in a web browser. Every time the JavaScript language gets challenged, the community strives to create mechanisms to improve performance bottlenecks, which we have seen over the years with efforts from Mozilla, Google, Apple, and Microsoft.

Read More
Reflecting on ffconf 2018
Reflecting on ffconf 2018

Last Thursday I was lucky enough to get over to the highly regarded web development conference ffconf in Brighton. This was my first time at the event and I can say that it lived up to and even exceeded my expectations.

Read More
Building a Modern JavaScript Framework
Building a Modern JavaScript Framework

Every year, Esri, the world’s largest geospatial software vendor, runs its developer summit in Europe. This conference, the Esri EU DevSummit, attracts around 350 developers working with Esri technology from across Europe, all coalescing in Berlin.

Read More
React Already Did That at All Things Open 2018
React Already Did That at All Things Open 2018

All Things Open is a large, community-created open source conference in Raleigh, North Carolina, with nearly 4,000 attendees and 20 concurrent sessions. At this year’s event, I was invited to deliver a talk similar to one I had presented at JSConf titled “React Already Did That.” The session itself is not actually about React, but about several key concepts in how the JavaScript ecosystem evolves.

Read More
Node+JS Interactive 2018: From Accessibility to JS Interoperability
Node+JS Interactive 2018: From Accessibility to JS Interoperability

The 2018 edition of the Node+JS Interactive conference featured nearly 1,000 JavaScript and Node.js enthusiasts at the first combined event organized by the Node.js Foundation and JS Foundation. The event included nearly 100 sessions, panels, and community events designed to help grow and foster the JavaScript ecosystem.

Read More
The Return of SharedArrayBuffers and Atomics
The Return of SharedArrayBuffers and Atomics

A common complaint of modern web apps is the concept of jank; web pages being unresponsive to user input and frame rates being low. Left unmitigated, this problem leads to a poor quality experience for end users of our web applications.

Read More
Programmatically create images with the CSS Paint API
Programmatically create images with the CSS Paint API

The CSS Paint API is a modern web platform feature to programmatically create images in JavaScript which are rendered to the page when referenced by CSS. You create images using the Canvas API, an API with which you may already be familiar.

Read More
Cross-tab Synchronization with the Web Locks API
Cross-tab Synchronization with the Web Locks API

The Web Locks API is a new addition to the Web Platform which allows you to execute JavaScript in a lock, a resource which can potentially get shared with other browser tabs. This API is currently available in Chrome and other Chromium-based browsers with no major signals from other browser vendors.

Read More
FullStack London 2018 – Improving User Experience With Web Workers
FullStack London 2018 – Improving User Experience With Web Workers

At this months’s FullStack London 2018, SitePen Engineer James Milner presented the talk “Improving User Experience With Web Workers”. Web browsers use single-threaded JavaScript to perform tasks; business logic, layout, reflows, and garbage collection.

Read More
FullStack London 2018: Choosing a Framework
FullStack London 2018: Choosing a Framework

At this month’s FullStack London 2018, our CEO, Dylan Schiemann, presented the talk “Choosing a Framework”, based on our Choosing a Framework blog series. Given our long history in web development, we’ve seen JavaScript evolve from an obscure simplistic scripting language to the language of the internet.

Read More
Exploring the Resize Observer Proposal
Exploring the Resize Observer Proposal

Resize Observer allows developers to receive notifications when the size of an element’s content rectangle changes. This helps manage a variety of application layout scenarios including responsive application layout, flexible layouts such as split panes, or dynamic changes in content within an element in a page.

Read More
A Quick Look at Nest
A Quick Look at Nest

Nest is a scalable framework for building server-side applications. It is authored in TypeScript and relies on the Express framework.

Read More
Escape the Office: Designing Interfaces for Other Developers
Escape the Office: Designing Interfaces for Other Developers

At the recent TSConf, SitePen engineer Sarah Higley delivered a talk titled Escape the Office: Designing Interfaces for Other Developers. The moment you step into any large project or open source venture you must accept that code you write gets used in ways you did not originally intend.

Read More
Don’t forget your keys
Don’t forget your keys

At the recent NEJSConf, SitePen engineer Sarah Higley delivered a talk titled Don’t forget your keys. People tend to assume everyone navigates the world in the same way they do: on two legs, responding to visual cues, hearing speech, reading emotion.

Read More
Introduction to WebAssembly
Introduction to WebAssembly

WebAssembly is an emerging standard for a low-level assembly-like language in a compact binary format that runs with near-native performance, and is available as a compilation target for a variety of languages. We’ve heard significant misunderstanding around WebAssembly and what it means for the web and JavaScript.

Read More
Intern Recorder 2 now supports TypeScript, ES Modules, and Intern 4
Intern Recorder 2 now supports TypeScript, ES Modules, and Intern 4

Intern Recorder is a Chrome extension that can kickstart the process of creating functional tests for Intern. It was initially released in 2015 users of Intern authored test suites as AMD modules.

Read More
A case for accessibility
A case for accessibility

We have somehow reached a point in time where the integration of life in digital and physical spaces has spawned scores of scholarly articles with titles like “The emerging online life of the digital native.” In a practical sense, it has become increasingly difficult to participate in society without using the internet in some form. Communication, commerce, access to education, and transportation all take place online in full or in part.

Read More
Testing TypeScript with Intern 4
Testing TypeScript with Intern 4

Intern is a popular JavaScript testing framework with an extensive feature set. While Intern has traditionally been focused on testing applications written in standard JavaScript, it has also had great support for TypeScript.

Read More
Web Frameworks: Community
Web Frameworks: Community

It is like the old proverb, “It takes a village to raise a web framework.” As we explored in the previous post, choosing a framework goes beyond the technical features of a framework and this is certainly true when it comes to the wider community, which includes considerations like licensing, how open the framework is, and where to turn for education and support. While each web framework we have been discussing is an open source framework, there is a wide spectrum of what that actually means and how it affects the use and future development of a framework.

Read More
State of Modules in JavaScript
State of Modules in JavaScript

Many modern web applications depend on JavaScript. When the complexity of your JavaScript increases, so does the maintenance cost.

Read More
Improving Performance with the Paint Timing API
Improving Performance with the Paint Timing API

Introduction Accessing paint metrics from JavaScript Reporting paint timing metrics to a server Viewing paint metrics in the Chrome DevTools Browser Implementations Traditionally, front-end performance focused primarily on page load times as an important performance metric. Commercial web performance dashboards would show granular level performance metrics for back-end aspects, like database lookup times, template compilation, server response times, etc.

Read More
Browser Automation with Puppeteer
Browser Automation with Puppeteer

Automating browsers provide many benefits including faster execution of repetitive tasks, ability to parallelise workloads and improved test coverage for your website. Google recently announced Puppeteer, a new tool to assist with Chrome browser automation.

Read More
Web Frameworks: Soundness
Web Frameworks: Soundness

For a web framework to be effective, it should offer you more than just functionality. It doesn’t matter how much hard work you put into your application if it breaks when people use it.

Read More
A Guide to Faster Web App I/O and Data Operations with Streams
A Guide to Faster Web App I/O and Data Operations with Streams

On the modern web platform, many interesting features appear which enable new functionality which were not previously possible, for example, Web Bluetooth, Background Sync & Web VR. For new features in JavaScript specifically, many are just syntactic sugar for things you could already do in an alternative way, like template literals, arrow functions & the spread operator.

Read More
Using Web Components With Angular
Using Web Components With Angular

Angular is an application framework favored by many in the JavaScript community. Angular provides a library for building encapsulated components, dependency injection, a templating language with data binding, an application router built on observables, and a command line interface that lowers the barrier to entry.

Read More
Observing Intersection Observers
Observing Intersection Observers

As developing for the web has matured and JavaScript engines have become faster, one area remains a significant bottleneck – rendering. It’s because of this that so many of the recent development efforts have been focused around rendering, with virtual DOM being one of the more popular examples.

Read More
Five of our favorite emerging web standards
Five of our favorite emerging web standards

As we create and improve open source software, and build many applications for our customers, we’re constantly looking for things that will improve the software we create. Part of this is looking at an often dizzying array of proposed and emerging standards, and finding those that feel efficient and ready for use.

Read More
Getting started with Intern 4
Getting started with Intern 4

Unless you have a time machine or a TARDIS, it’s pretty rare to have solid documentation in place before an open source project is released! While we’re getting close to a beta release with the Intern 4 and while we still have a fair amount of documentation and refinements to complete, a number of people have started using Intern 4 to leverage its support for easier testing with modern ES6+ and/or TypeScript features. Intern 4 has many benefits and improvements over Intern 3 and previous approaches to testing.

Read More
Web Frameworks: Using and Developing
Web Frameworks: Using and Developing

Let’s figure out how to play our album. Is it a 45 vinyl or some sort of fancy SACD? Gaining insight into how we might develop and deploy an application built on a web framework helps us figure out if it is the right fit for our team.

Read More
State of Modern Component Styling
State of Modern Component Styling

As new user interface component frameworks are created and old frameworks are replaced with emerging technologies, methods for styling those components must change with them. Long gone are the days of creating a simple HTML component and importing a simple CSS file with corresponding class names.

Read More
Higher Order Components in React
Higher Order Components in React

Traditionally, engineers use mixins, decorators, inheritance, and plain code duplication to add common functionality to a handful of components. Mixins and decorators can modify the target object in such a way that you are never really sure what methods are safe to override without unwanted side effects.

Read More
Web Frameworks: Common Usage
Web Frameworks: Common Usage

Previously on Web Frameworks, we looked at how various frameworks deal with the concept of applications. Akin to listening to the whole album, we got a sense of how the frameworks pull it all together.

Read More
Wrapping Web Components With React
Wrapping Web Components With React

There are many reasons to like React. It provides a nice library for writing reusable components and leverages its own virtual DOM, abstracting away the obtuse native DOM APIs in favor of a simple method calls, which are further abstracted away with a JavaScript language extension, JSX.

Read More
Web Frameworks: Applications
Web Frameworks: Applications

Applications built with web technologies, something that was a curiosity a few short years ago, have emerged onto the scene as a must have for most organizations. Transcending websites and providing users with a more open and unbounded experience, web applications are everywhere.

Read More
The State of Internationalization in JavaScript
The State of Internationalization in JavaScript

As businesses expand into new markets and existing markets become more diverse, it is increasingly rare that enterprise applications can expect to serve speakers of only one language, with identical expectations for how they should be addressed or be presented data. In spite of this, globalization — the process of catering an experience to users in specific regions — receives less attention than is warranted, and many times is an afterthought in application development.

Read More
Event Delegation: Pattern or Anti-Pattern?
Event Delegation: Pattern or Anti-Pattern?

A significant amount of work on JavaScript toolkits and frameworks has centered around trying to fix, normalize, and optimize browser implementations. Doing so requires making many assumptions about what the problems are, how our tools will be used by developers, and what we expect of the future.

Read More
Web Frameworks: Foundational Technologies
Web Frameworks: Foundational Technologies

We have previously discussed the look and feel of web frameworks. While we often become interested in a framework based on the stylishness of the widgets and applications it can create, this may lead to a similar approach to how we have historically selected music.

Read More
Web Frameworks: User Experience Design
Web Frameworks: User Experience Design

While instruments such as guitar and drums are part of a band, how they are used by the musicians define the style of the band’s music. Similarly, the elements of an application user interface connected together define the user experience.

Read More
Intern and JavaScript Testing in 2017
Intern and JavaScript Testing in 2017

Since we released Intern in 2013, the state of JavaScript testing has changed substantially. The JavaScript world was a very different place.

Read More
Web Frameworks: User Interface Development
Web Frameworks: User Interface Development

Whether it is Top 40 or classical or R&B, artists and music have a recognizable look and feel. When looking at frameworks, some simply provide us with a bag of instruments, while others provide us with chord progressions and album covers we can customize.

Read More
If we chose our JavaScript Framework like we chose our music…
If we chose our JavaScript Framework like we chose our music…

…we would all be using justin-bieber.js. We as an organization have been working with JavaScript since 2000.

Read More
Ahead of the Curve: TypeScript & Enterprise Web Development
Ahead of the Curve: TypeScript & Enterprise Web Development

For a concise read on why the enterprise should care about using TypeScript in its applications, look no further than Remo Jansen of the Aon Centre for Innovation and Analytics’ presentation on the 6 reasons you should be using TypeScript. The SitePen engineering team has been using TypeScript since it came onto the open source scene 5 years ago.

Read More
ECMA-414: Modularizing the JavaScript Standard
ECMA-414: Modularizing the JavaScript Standard

As we noted in our post about the open and incremental approach to TC39, one of the challenges facing TC39 is that it has grown in size substantially along with the community interest in JavaScript. ECMA has started to address this by creating a few additional standards bodies for sections of JavaScript that can be decoupled from the core language.

Read More
TypeScript 2.3: The Sexy Default Type Argument
TypeScript 2.3: The Sexy Default Type Argument

TypeScript 2.3 is the latest version in the quarterly release cycle from the TypeScript team. This release contains several useful additions to TypeScript which we have already started to leverage within some of our current projects.

Read More
Typings for dojox/gfx
Typings for dojox/gfx

dojox/gfx is Dojo 1.x’s vector graphics library, with support for SVG, Canvas, and other legacy rendering environments through a drawing API based on the semantics of SVG. This API also provides the foundation for dojox/charting.

Read More
TC39: Open and Incremental Approach Improves Standards Process
TC39: Open and Incremental Approach Improves Standards Process

In our recent post about the key features in ES2017, I was reminded just how much the standards process has changed in the past 15 years. As someone who tried to get involved early to improve standards, the process was broken and I was quickly discouraged.

Read More
What TypeScript can offer to Dojo 1.x
What TypeScript can offer to Dojo 1.x

As many of you know, Dojo 2 is being built on TypeScript. Many of us involved in Dojo 2 believe that TypeScript brings several advantages to developing with web technologies these days.

Read More
The 5 features of ES8 and a wishlist for ES9
The 5 features of ES8 and a wishlist for ES9

As we near the finalization of the proposal, it’s looking like ES8 is going to deliver much more than the simple updates of its ES7 predecessor! We wanted to take a few moments to highlight our 5 favorite things about the upcoming 2017 release. This change is one we’re very excited about, and something we’ve already shimmed in Dojo 2.

Read More
Functional reactive programming and Observables in JavaScript, TypeScript, and Dojo 2
Functional reactive programming and Observables in JavaScript, TypeScript, and Dojo 2

Functional programming and reactive programming principles are not new to JavaScript, but their adoption has recently become widespread across most modern frameworks and toolkits. The ease of using these approaches has improved as we’ve finally seen the decline of legacy browsers, and as we’ve seen the introduction of functional and reactive paradigms within ES6 and ES8.

Read More
Mixins and more in TypeScript 2.2
Mixins and more in TypeScript 2.2

The TypeScript team recently announced the TypeScript 2.2 release candidate which will contain key improvements to the TypeScript language. Most notably, are the introduction of the object type and improved support for mixins and composable classes.

Read More
Dojo FAQ: How do I optimize a Dojo app for mobile?
Dojo FAQ: How do I optimize a Dojo app for mobile?

Web applications can be deployed to many environments, including desktops, tablets, and mobile devices. We can even deploy web applications natively using a wrapper such as Apache Cordova to gain access to device features such as GPS, battery, and accelerometer data.

Read More
Moving 4-ward with Intern
Moving 4-ward with Intern

The motivation for Intern 4 is to make it easier to author tests with ES6+ features within tests, with or without transpilation. Want to skim? Here’s the Intern Roadmap which lists our high level status for each Intern release going forward.

Read More
Introducing Milestone Mayhem
Introducing Milestone Mayhem

With years of building large scale web apps, we’ve experienced almost everything that goes right and wrong during software development projects. So we created Milestone Mayhem, a card game that reflects the challenges and successes with app development.

Read More
State of JavaScript 2017
State of JavaScript 2017

It’s been two very active years since the release of ES6, and we’ve seen pretty substantial changes in how we build JavaScript applications. While some complain of fatigue, there’s never been a more exciting time to be a JavaScript engineer.

Read More
New Year’s Resolutions for 2017!
New Year’s Resolutions for 2017!

As the new year starts to unfold, it’s time to take a quick look at the things our team at SitePen resolves to do this year. Too often, we see large enterprise customers who have multiple teams creating the same features, without having a simple way to share and maintain code over time.

Read More
Intern Visual Regression Plugin
Intern Visual Regression Plugin

Thanks to a generous Mozilla Open Source Support program award, Intern has expanded its testing ecosystem to include new and robust sets of tools. Engineers can now easily write tests to benchmark sections of code, test for accessibility (a11y) support, and test for visual differences.

Read More
Accessibility Testing with Intern
Accessibility Testing with Intern

Intern already has a wide array of capabilities and today we’re pleased to announce one more: accessibility testing. Thanks to a generous award from Mozilla Open Source Support we’ve created the intern-a11y plugin, which allows users to run accessibility tests on pages or components using Intern.

Read More
Intern 3.4 Released
Intern 3.4 Released

Today we’re pleased to announce the release of Intern 3.4. This release brings usability enhancements and bugfixes, including a new benchmarking mode! We’ve outlined some of the features below, but as always, visit the release notes for more details.

Read More
Exploring WebVR
Exploring WebVR

This October, we delivered meetup talks on WebVR in London and Phoenix on the same day to share our early efforts in exploring WebVR with TypeScript, Dojo 2, Intern, and A-Frame. WebVR is an experimental JavaScript API that provides access to Virtual Reality (VR) devices, such as the Oculus Rift, HTC Vive, Samsung Gear VR, and Google Cardboard.

Read More
Announcing the JS Foundation!
Announcing the JS Foundation!

The official name of the rebranded and relaunched merging of the jQuery Foundation and the Dojo Foundation is the JS Foundation. SitePen is excited to be a member of this new organization! Back in 2004, Alex Russell, David Schontzler, and I wrote the first lines of code for the Dojo Toolkit. Our early goal was to create the “next-generation DHTML toolkit” that would encourage usage and adoption by ensuring users and contributors they would receive a safe to use open source software.

Read More
Running Intern Tests in the Cloud
Running Intern Tests in the Cloud

With Intern you can easily run tests using your local machine’s web browser or on any other machine running a Selenium server. Sometimes a project will need to be tested across a wide range of platforms and browsers, more than an individual user or even an enterprise may have available.

Read More
Inside Answers: Intern and async functional testing
Inside Answers: Intern and async functional testing

SitePen Support is a service used by companies to improve the productivity and efficiency of their enterprise development teams. Our customers often ask questions about best practices when using various development tools for modern JavaScript and TypeScript development.

Read More
The long and winding road to Dojo 2
The long and winding road to Dojo 2

Recently on GitHub, someone accused Dojo 2 of being vapourware. This opinion came from a position of misinformation.

Read More
Mixing Dojo widgets and Angular 2 components
Mixing Dojo widgets and Angular 2 components

We were recently asked about options for mixing Dojo widgets and Angular 2 components into the same application: Is it possible to render an Angular 2 component and Dojo widgets on the same page? Are there any special configuration settings needed? What’s the best way for Angular 2 and Dojo to communicate and/or send messages? What kind of complex challenges and communication issues should we be aware of? For an application that assembles many different components, if some of these are are Dojo widgets and some are Angular 2 components, how can we get them to play nicely together? It certainly is possible to render Angular 2 components and Dojo widgets on the same page. However, this could lead to more complex challenges regarding the architecture and data communication that would require deeper investigation to determine, based on the specific approach to building apps with Angular 2 and Dojo.

Read More
Intern 3.3 released!
Intern 3.3 released!

Today, we’re very happy to announce the release of Intern 3.3! This is the result of several months of work to improve Intern and its Dig Dug and Leadfoot dependencies, as well as the introduction of a new intern-cli package to make command-line testing configuration even easier. sitecues by Ai Squared generously sponsored some of these efforts! Intern 3.3.1 Dig Dug 1.5.0 Leadfoot 1.6.12 intern-cli 0.1.0 The two banner features in this release were version ranges and aliasing, and the SeleniumTunnel, as well as general improvement of Intern’s support for MS Edge (including a few fixes by Microsoft as the result of bugs filed during this process!).

Read More
We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.Privacy Policy