Software projects succeed or fail based on the quality of the teams behind them. Expert developers can be hard to find. So how do you get junior developers to level up? It’s not enough to teach...
This cheat sheet is an adjunct to our Definitive TypeScript Guide. Originally published November 2018.
Not long ago, good design was considered nice to have, but non-essential to a product or company. In today’s market, however, good design has become a commodity.
https://www.sitepen.com/blog/redesigning-enterprise-apps-efficiently-the-bottom-up-approach
Did you know that a desktop browser has almost everything you need to make video calls? A client-side web app can use the WebRTC API, which is built into modern browsers, to access a system’s c...
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 d...
https://www.sitepen.com/blog/update-the-definitive-typescript-guide
Modern times have seen an explosion in services providing a multitude of serverless possibilities, but what is serverless? Does this mean there are no servers? You’d think, but no.
https://www.sitepen.com/blog/building-a-serverless-chat-application-with-supabase
Redux-Saga is an intuitive side effect manager for Redux.
https://www.sitepen.com/blog/using-redux-saga-to-write-a-game-loop
A few years ago, we created a little card game that poked fun at all the ups and downs of a typical development milestone. Players can enjoy development iterations reduced to simple card draws, w...
https://www.sitepen.com/blog/writing-an-online-multiplayer-game-for-the-web-and-native
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 t...
https://www.sitepen.com/blog/design-to-development-bridging-the-gap-for-a-successful-handoff
News about AI is everywhere right now. Whether it’s ChatGPT or Stable Diffusion, we’re using AI algorithms to generate text and images.
Use the File System Access API to read, write, and edit files on the local file system directly from the browser.
https://www.sitepen.com/blog/using-the-local-file-system-to-enrich-your-apps
In this article, we’re going to explore a particular type of parser that is conceptually simple, super flexible, and crazy easy to test. We’ll use these parsers to help us solve a problem th...
https://www.sitepen.com/blog/unlocking-the-power-of-parser-combinators-a-beginners-guide
Developing a mobile app is a major accomplishment, but it’s just the first step in a long journey.
https://www.sitepen.com/blog/beyond-the-code-a-look-at-the-next-steps-in-mobile-app-development
We discuss the benefits of using a private node registry with Expo Application Services, as well as the steps involved in using such a registry.
https://www.sitepen.com/blog/going-private-node-registry-with-eas
In the first part of this article, we learned about fundamental data architecture and modeling concepts that provide valuable insights into your system.
https://www.sitepen.com/blog/software-data-architecture-part-2
The definitions of ‘information architecture’ and ‘data architecture’ are, unfortunately, pretty broad. They cover many areas of systems engineering and are applicable across several disc...
https://www.sitepen.com/blog/software-data-architecture-part-1
2022 increased the public spotlight on AI like no other year with the virality of image generation tools like DALL-E and Midjourney, text compositions from ChatGPT, and the increasing sophisticat...
https://www.sitepen.com/blog/the-state-of-machine-learning-2023
The benefits of TypeScript are numerous, from strong type safety, code maintenance to refactoring, and more. It’s also not uncommon today for web developers to be responsible for both the front...
Originally published November 2018. Updated November 2022.
https://www.sitepen.com/blog/advanced-typescript-concepts-classes-and-types
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.
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, dyn...
https://www.sitepen.com/blog/intro-to-html-first-frontend-frameworks
Feature toggles (sometimes referred to as feature flags) are an engineering practice aiming to control application behavior without the need to deploy a code change. The behaviors that toggles ca...
Continuous integration, continuous delivery, and continuous deployment implementations cover a wide range of automation possibilities for your software. This article will provide an overview of t...
https://www.sitepen.com/blog/ci-cd-challenges-an-enterprise-overview
At some point when you build applications with a wide user base, you find that you need to support various combinations of languages and locales. This could be in the form of having to support a ...
Jest is one of the most popular testing frameworks, but it hasn’t really kept up with the growing support for native JavaScript modules (ESM) in the developer community. A fresh install of Jest...
You may not need a monorepo, but it’s useful to know what they are and what they have to offer. You could have a monorepo that is a mix of frontend, backend, utilities, linters, or more, each w...
https://www.sitepen.com/blog/the-basics-of-a-monorepo-where-projects-go-to-meet
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 ou...
https://www.sitepen.com/blog/the-web-speech-api-can-you-hear-me-now
Svelte has become increasingly popular over the last several years, even being voted the “most loved” web development framework in the 2021 Stack Overflow Developer Survey. Quite a few articl...
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.
Ask almost any developer what their greatest fear is and one deep-seated topic will rise above the rest… dates.
https://www.sitepen.com/blog/spend-some-time-with-the-temporal-api
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 deb...
https://www.sitepen.com/blog/why-type-annotations-in-javascript-are-a-good-idea
The first half of this 2-part series highlighted why ongoing maintenance is vital for the health of large-scale enterprise systems, especially heading into a substantial upgrade or replacement pr...
https://www.sitepen.com/blog/a-recipe-for-the-perfect-software-delivery-storm-part-2
Enterprise software delivery for large-scale projects is complex. It requires substantial time and financial resources to complete, whereas a single system can cost millions of dollars and take y...
https://www.sitepen.com/blog/a-recipe-for-the-perfect-software-delivery-storm-part-1
We’ve talked before about some of the great features Deno brings to the table: first-class TypeScript support, a solid standard library, support for Web standards, and implicit security. All of...
Software engineering is one of the most challenging endeavors we can engage in today. Successful software projects must address the vast scope of today’s applications while paying meticulous at...
https://www.sitepen.com/blog/4-ingredients-to-successful-software-development
Expo, a framework that significantly improves the React Native developer experience, has become very popular in the last couple of years. Its “managed” workflow lets developers work entirely ...
https://www.sitepen.com/blog/doing-more-with-expo-using-custom-native-code
React Native is great for writing mobile applications. It lets you use web paradigms for UI construction, which are usually much simpler than the native analogues.
https://www.sitepen.com/blog/react-native-everywhere-imessage-apps-and-input-services
Introduction Web Vitals scores can have a huge influence on your search engine rankings and directly impact your user’s experience when visiting your website. Follow our guide to automating We...
https://www.sitepen.com/blog/automate-web-vitals-checks-with-github-actions-and-lighthouse
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 ...
A Content Security Policy (CSP) is an important aspect of securing websites and web applications. CSP is a resource security specification (W3C recommendation) for web browsers.
https://www.sitepen.com/blog/improving-web-application-security-with-csp
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...
https://www.sitepen.com/blog/taming-strings-with-template-literal-types
Today’s software development landscape has never been more challenging. The rich capabilities of modern hardware and the high consumer expectations for performance and stability combine to ensu...
https://www.sitepen.com/blog/pwas-blurring-the-line-between-native-and-web-applications
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 be...
Getting started with Git can be a daunting task, especially if you are not at home in the command line. Fortunately, Git is a mature and widely used tool so there is a lot of reference and “How...
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 activ...
https://www.sitepen.com/blog/rome-the-last-javascript-package
Improve customer satisfaction and maintain an edge over competitors by getting cutting-edge features into production faster and with fewer defects with Continuous Software Development techniques....
https://www.sitepen.com/blog/an-introduction-to-continuous-software-development
Are you working with Angular? Have you written hundreds of unit tests and do you feel like it is taking way more time to write the tests than it did to write the application code? Let’s tal...
https://www.sitepen.com/blog/simplify-angular-unit-test-authoring
As the world warms up to the idea that cryptocurrencies are here to stay, many have started to think more deeply about the advantages these digital currencies offer over traditional money. Transa...
It has been said that all businesses today are IT businesses. They just happen to make their money selling different things.
https://www.sitepen.com/blog/nine-principles-of-modern-data-architecture
At SitePen, web application development is the core of what we do. We pride ourselves on our reputation for creating rich web apps that are highly responsive and reliable.
https://www.sitepen.com/blog/size-matters-the-value-of-performance-optimization
The Angular Components library started its life as Angular Material, a set of Material Design components built for Angular by the Angular team. Released around the time of Angular 5, the Angular ...
https://www.sitepen.com/blog/angular-components-library-more-than-just-material
SitePen is a web development company focused on modernizing apps, tools, and teams for the Enterprise. Our claim to fame is our long-standing development team that through the years has created, ...
https://www.sitepen.com/blog/how-to-choose-a-web-development-partner-2
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...
Software development and usage of software-driven products are rapidly evolving subject areas. Healthy competition means crafting applications becomes quicker and cheaper over time.
https://www.sitepen.com/blog/considerations-when-modernizing-legacy-applications
Let’s face it. Reactive programming and the traditional web APIs are not friends.
Maybe it’s the spring air and the budding trees. Maybe it’s the longer daylight hours.
https://www.sitepen.com/blog/5-tips-for-spring-cleaning-your-agile-practices
As modern reactive front ends have begun to converge on effective module patterns and universal approaches to common application paradigms, it’s not uncommon to see much of the variance between...
CarPlay is an Apple iOS car integration standard that allows you to display content from your iPhone onto your compatible car head unit and control your phone. Common uses for this include castin...
https://www.sitepen.com/blog/add-carplay-to-your-react-native-app
Mobile development mostly deals with 2 platforms: iOS and Android. There are distinct ecosystems for both platforms — each has its own languages (Java and Kotlin for Android, Objective-C, and S...
https://www.sitepen.com/blog/react-native-crash-course-for-the-business-side
There are many articles and blog posts on the internet that attempt to advise readers on how to choose a software development company. Almost all of them discuss the traits and attributes that ma...
https://www.sitepen.com/blog/how-to-choose-a-software-development-company
Most agile product teams have heard the concepts around using a Minimum Viable Product (MVP) to learn about what customers want, Lean Startup style, but the process of defining an MVP to fulfill ...
https://www.sitepen.com/blog/get-lean-with-your-mvp-by-hacking-human-psychology
Carpenters have lots of tools to pick from. Drills, impact drivers, circular saws, and miter saws; each tool may be really good for a specific purpose and a great carpenter will know when to use ...
https://www.sitepen.com/blog/software-takes-more-than-the-right-technology
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.
https://www.sitepen.com/blog/introduction-to-machine-learning-with-javascript
Want to get the most out of your dev management process? This article covers some of the best practices and methodologies SitePen uses to accomplish enterprise-level development goals. We...
https://www.sitepen.com/blog/agile-project-management-best-practices-and-methodologies
The recent release of TypeScript 4.0 offers a smorgasbord of improvements including improvements to coding editor experience, build scenarios and support for variadic tuple types. Let’s take a ...
In the previous architecture spotlight entry, we discussed Event Sourcing and illustrated the concept with a simple banking account example. We laid out many of its pros and cons to help readers ...
https://www.sitepen.com/blog/architecture-spotlight-event-sourcing-part-two
An article on 2nd Generation JavaScript Frameworks & Libraries: beyond Angular, React, and Vue! recaps Geertjan Wielenga’s talk on the evolution of JavaScript and the influence of the enterpris...
https://www.sitepen.com/blog/what-is-a-2nd-generation-framework
Today, many software projects rely on some form of iterative software development lifecycle (SDLC) to incrementally deliver features to their users. A feature is identified, analyzed, designed, s...
https://www.sitepen.com/blog/increasing-value-in-your-software-development-lifecycle
Your team realizes that testing is valuable. Your team creates tests for already completed features.
Your software development team released an MVP application into production. The application only had a few features and the codebase is far from perfect, but there are big plans for the future! Y...
Now that we’ve demystified smart contracts and better understand what they are and how they work, let’s build our own contract on top of the Ethereum blockchain. Because smart contracts are c...
Smart contracts are often described as a transformative new technology that borders on magic, able to remove third-parties and monetary risk alike from business deals using the power of the block...
It’s been a year since I last talked about my development environment. Many things remain the same: I’m using neovim, zsh, and tmux.
https://www.sitepen.com/blog/an-even-more-modern-terminal-based-development-environment
Software architecture is the analysis, thought and design considerations that form the foundational scaffolding for a successful software system. If you write software for work or as a hobby, whe...
https://www.sitepen.com/blog/the-importance-of-good-software-architecture
TypeScript has become a mainstay of modern web development libraries. Consuming functions and widgets written by a third party can be error-prone without some type of guidance.
https://www.sitepen.com/blog/progressively-adopting-typescript-in-a-dojo-toolkit-application
In an olympic sprint relay, four runners operate as a team to sprint a total of four hundred meters. In order to compete at a record-setting level, an athlete needs to be capable of running one h...
https://www.sitepen.com/blog/a-smooth-transition-designing-for-the-development-handoff
As a career business analyst, I’ve lost count of the number of times I’ve asked this question. More often than not, stakeholders are ready to discuss solutions before dissecting the problem i...
This is part 3 of the Disciplined Engineering series. It is for teams that have an established engineering process with confidence around the quality of their application. This article will hel...
https://www.sitepen.com/blog/disciplined-engineering-part-3-refining-your-engineering-process
This is part 2 of the Disciplined Engineering series. It focuses on improving the confidence of the code produced by your team.
https://www.sitepen.com/blog/disciplined-engineering-part-2-creating-code-confidence
This is part 1 of the Disciplined Engineering series. It is for teams that want to establish a culture of engineering excellence for their organization. For teams that already have an establish...
https://www.sitepen.com/blog/disciplined-engineering-part-1-building-an-engineering-process
Snapshot testing has become very popular for front end-development over the last few years. The term has almost become synonymous with Jest and React, but it can be used to test more than just co...
https://www.sitepen.com/blog/snapshot-testing-benefits-and-drawbacks
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 you...
https://www.sitepen.com/blog/sensible-improvements-in-typescript-3-9
There’s an old adage in the software industry – premature optimization is the root of all evil. A corollary to this should be – no optimization is just as bad as premature optimization.
As accessibility-minded developers working on accessibility-minded teams, we strive to design and build inclusive applications that yield a pleasant experience for all users. However, despite our...
https://www.sitepen.com/blog/accessibility-inspectors-a-basic-guide
Virtual reality (VR) is one of the most interesting emerging technologies for the web in 2020. Recently at HalfStack Phoenix I shared insights on VR, WebVR, the web, and what makes VR a lasting t...
SitePen is a huge advocate for TypeScript and the benefits of having well-typed code. TypeScript is especially powerful when used by medium and large teams that want to find ways to increase thei...
https://www.sitepen.com/blog/progressively-adopting-typescript-in-an-application
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 ta...
https://www.sitepen.com/blog/getting-started-with-react-native
Event sourcing is a powerful architectural pattern that records all changes made to an application’s state, in the sequence in which the changes were originally applied. This sequence serves as...
https://www.sitepen.com/blog/architecture-spotlight-event-sourcing
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 ...
https://www.sitepen.com/blog/new-typescript-features-that-improve-the-developer-experience
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 ...
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.
https://www.sitepen.com/blog/learn-typescript-best-practices-at-tsconf
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 valu...
https://www.sitepen.com/blog/halfstack-conference-phoenix-january-2020
In 2007, we were invited to speak at the Apple WWDC event. At the time we didn’t know why we were invited.
https://www.sitepen.com/blog/exploring-the-network-information-api
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. Alongsid...
https://www.sitepen.com/blog/how-to-pick-a-web-mapping-library-for-your-app
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 expa...
https://www.sitepen.com/blog/jsconf-us-2019-pushing-javascript-beyond-the-browser
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 p...
https://www.sitepen.com/blog/next-generation-virtual-scrolling
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.
https://www.sitepen.com/blog/getting-started-with-electron-typescript-react-and-webpack
The web is for everyone. That includes web apps built on web architecture.
https://www.sitepen.com/blog/using-progressive-enhancement-to-design-for-accessibility
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 pa...
https://www.sitepen.com/blog/using-webassembly-with-web-workers
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 ar...
https://www.sitepen.com/blog/deploying-a-dojo-app-with-docker