Latest

New

Announcing Effection 3.0 -- Structured Concurrency and Effects for JavaScript

A major milestone in bringing Structured Concurrency and Effects to JavaScript, Effection 3.0 has excellent TypeScript support, a powerful new context API, and harmonizes perfectly with the JavaScript APIs you know and love.

→ Read Article
Charles Lowell's profile

Charles Lowell

December 18, 2023

All Posts

  1. The await event horizon in JavaScript

    Why async functions in JavaScript are insufficient as a Structured Concurrency primitive

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    December 11, 2023

  2. Backstage: Unblock Innersource Development with Plugins and Code Owners.

    Navigating the challenges of inner-source Backstage portals? Discover how successful adopters harness code owners to streamline contributions and maintain code quality.

    → Read Article
    Taras Mankovski's profile

    Taras Mankovski

    October 24, 2023

  3. Backstage: How to fix linting errors without slowing down development

    In this guide Min will show you a unique approach to tackling a mountain of linting errors without disrupting delivery

    → Read Article
    Min Kim's profile

    Min Kim

    October 16, 2023

  4. Deno is the best tool for maintaining NPM packages

    Even if you primarily run your JavaScript in Node, Deno is a fantastic tool for building and distributing packages on NPM (and everywhere else). This article shows how to publish modules to both https://deno.land/x and https://npmjs.org using nothing more than the deno CLI.

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    April 27, 2023

  5. Seven ways to build a single glass pane with Backstage

    Learn strategies for integrating external services into Backstage that improve discoverability and lower congantive load for your users

    → Read Article
    Taras Mankovski's profile

    Taras Mankovski

    January 22, 2023

  6. Dynamic Github Action Jobs

    Ever wanted to run parallel jobs in Github Actions with a high level of flexibility? We have, and now you can too!

    → Read Article
    Jacob Bolda's profile

    Jacob Bolda

    December 12, 2022

  7. Ingestion tests in Backstage Part 2: Safely refactoring an LDAP integration

    To test whether the Backstage is setting up the Catalog properly, you must start a Backstage server, wait for a while, and assert. This feat is easier said than done. Here is part 2 in which Charles will guide you through it in this article.

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    December 5, 2022

  8. Deno is "blazing fast" for humans

    Every systems claims to be "blazing fast", but does that actually mean faster development?

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    December 1, 2022

  9. What Is Spotify Backstage: a developer portal overview

    What can Backstage do for your team? In this post, we are going to discuss how backstage can improve your organization.

    → Read Article
    Javier Lainfiesta's profile

    Javier Lainfiesta

    May 16, 2022

  10. Tutorial: Using Github Webhooks with Backstage Entity Provider

    In this short tutorial, Min will show you how to configure Github Webhooks for Backstage's Github Entity Provider

    → Read Article
    Min Kim's profile

    Min Kim

    May 3, 2022

  11. Testing Backstage Catalog's ingestion

    To test whether the Backstage is setting up the Catalog properly, you must start a Backstage server, wait for a while, and assert. This feat is easier said than done, but Charles will guide you through it in this article.

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    March 24, 2022

  12. Backstage tutorial: plugin integration tests with Cypress + Interactors

    In this tutorial, you'll learn how to set up integration tests for your Backstage plugins using Material UI Interactors

    → Read Article
    Jorge Lainfiesta's profile

    Jorge Lainfiesta

    March 3, 2022

  13. Announcing GraphGen: the search for the graph factory

    Creating fake datasets that resemble real ones is nearly impossible today. That's why Frontside is working on a tool that can generate graphs with coherent data and relationships

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    February 21, 2022

  14. Tutorial: How to use your company’s component library with Backstage

    In this tutorial, Taras will show you how to replace Material UI for your component library in Backstage without losing access to its API.

    → Read Article
    Taras Mankovski's profile

    Taras Mankovski

    February 14, 2022

  15. When to use SemVer or CalVer: project type considerations

    Choosing a versioning scheme helps you manage the understanding and expectations of your project over time. In this article, you'll learn about how to decide on whether to use SemVer or CalVer according to your project type.

    → Read Article
    Jacob Bolda's profile

    Jacob Bolda

    February 9, 2022

  16. What is DX anyway: a chronological overview

    You can only optimize for concrete indicators, that’s why having a clear understanding of DX is important to improve it. In this article, we review the main trends of the past decade.

    → Read Article
    Jorge Lainfiesta's profile

    Jorge Lainfiesta

    January 26, 2022

  17. Tutorial: Easier onboarding with Backstage and VSCode dev containers

    In this tutorial, you'll learn how to set up dev containers to make it easier to onboard developers.

    → Read Article
    Min Kim's profile

    Min Kim

    January 24, 2022

  18. Simplified local development and testing with Auth0 simulation

    Auth0 can be difficult to manage in local development and within testing environments such as CI/CD pipelines. An Auth0 simulator can save you from branching your code or maintaining mocks in your tests.

    → Read Article
    Paul Cowan's profile

    Paul Cowan

    January 13, 2022

  19. Effection: for when async/await is not enough

    Everyone who has built a complex system in JavaScript has hit a critical moment when concurrent processes become unmanageable. But with Effection—an OSS async/await alternative—you'll spare memory leaks and headaches.

    → Read Article
    Jonas Niklas's profile

    Jonas Niklas

    October 26, 2021

  20. Interactors: the design systems testing ally

    Components from a design system make building UIs easy. It should be just as easy to test them. Interactors enable more robust tests for component-based UIs, and improve component libraries' maintainability.

    → Read Article
    Charles Lowell, Jeffrey Cherewaty's profile

    Charles Lowell, Jeffrey Cherewaty

    August 4, 2021

  21. Relieve developers’ churn in your Cloud native strategy with Backstage

    Adopting Cloud native strategies has proven to improve organizations' delivery performance, but the complexity brought in with them is making life harder for developers. Using the example of a unified Secret manager, I present how Backstage can improve DX in the Cloud native world.

    → Read Article
    Taras Mankovski's profile

    Taras Mankovski

    May 14, 2021

  22. Unleashing the Genie: Helping both designers and developers with Storybook

    Good documentation is key to design systems. However, what "good" means varies according to the reader. This article will go through tips to generate documentations for designers and developers from a single Storybook—keep everyone happy with minimum effort!

    → Read Article
    Varya Stepanova's profile

    Varya Stepanova

    April 7, 2021

  23. There and Back Again: Testing and Stack Upgrades

    Upgrading your application stack to new major versions can be terrifying, especially when you have a massive application with 75 developers working on features non-stop. However, a good testing strategy gives you confidence to make bold moves that take your organization to heretofore unexplored lands.

    → Read Article
    Taras Mankovski's profile

    Taras Mankovski

    February 18, 2021

  24. Kubernetes: Dip your toes in this

    Kubernetes is on the rise and having it in your toolkit can get you a long way. In this article, Min shows us how to set up a MicoK8s in your local machine.

    → Read Article
    Min Kim's profile

    Min Kim

    January 29, 2021

  25. The context dilemma: design tokens and components

    Design tokens are used to keep a consistent look across an entire system. How do you name them semantically if they have to make sense everywhere but also respond to the inner logic of individual components which are independently developed?

    → Read Article
    Varya Stepanova's profile

    Varya Stepanova

    January 15, 2021

  26. Renaming `main` with purpose

    As generic default branch names like `master` for Git repos have gone out of fashion, possibilities emerge for more effective and informative naming conventions. Learn about the branch naming strategy Frontside uses for our Open Source libraries and how we name app project branches.

    → Read Article
    Jorge Lainfiesta's profile

    Jorge Lainfiesta

    December 11, 2020

  27. MirageJS: Choosing the right Serializer

    MirageJS ships with four out-of-the-box serializers. In this blog post, we overview the basics of serializers in Mirage, and examine in detail the specific format of each JSON API, Active Model, Rest and generic serializers.

    → Read Article
    Min Kim's profile

    Min Kim

    August 31, 2020

  28. Beyond Mocking: Decoupling teams through Simulation

    Decoupling front-end and mobile teams from the back-end makes organizations more effective. In this article we explain why using simulation is an ideal strategy for this purpose, and present important considerations for adopting such practices.

    → Read Article
    Charles Lowell, Jorge Lainfiesta's profile

    Charles Lowell, Jorge Lainfiesta

    July 29, 2020

  29. The Lesson of BigTest Interactors: never write a flaky test again!

    To prevent flaky tests, BigTest introduces the Interactor API, designed around the lessons learned in Capybara. This article introduces the benefits of Interactors in BigTest and how to use them to write reliable tests.

    → Read Article
    Jonas Niklas's profile

    Jonas Niklas

    July 16, 2020

  30. Github Actions: a deep dive into pull_request

    We have put together specific behaviors and information that you’ll need to use pull_request as a trigger for your Github Actions workflow.

    → Read Article
    Min Kim's profile

    Min Kim

    May 26, 2020

  31. The Triple Threat to Testing — Part 2: Reliability

    Flakiness: one of the biggest pain-points of any test suite. From app complexity to incident management, we explore some of the most common causes of unreliable tests.

    → Read Article
    Robbie Pitts, Taras Mankovski, Jeffrey Cherewaty, Charles Lowell, Jorge Lainfiesta's profile

    Robbie Pitts, Taras Mankovski, Jeffrey Cherewaty, Charles Lowell, Jorge Lainfiesta

    April 30, 2020

  32. 7 reasons to write good Pull Request descriptions

    A good Pull Request description can lead to better reviews, improved solutions, better documentation, and more. In this article, Taras surveys seven big wins of PR descriptions.

    → Read Article
    Taras Mankovski's profile

    Taras Mankovski

    April 15, 2020

  33. The Triple Threat to Testing — Part 1: Speed

    Speed, reliability, and relevance constitute the mains pillars of a robust testing strategy. The faster a test suite can diagnose an issue in its application, the more value it renders. In this article, we navigate through the most significant causes of slow tests and suggest ideas to deal with them.

    → Read Article
    Charles Lowell, Robbie Pitts, Taras Mankovski, Jeffrey Cherewaty, Jorge Lainfiesta's profile

    Charles Lowell, Robbie Pitts, Taras Mankovski, Jeffrey Cherewaty, Jorge Lainfiesta

    April 6, 2020

  34. Case study — Facilitating the next generation of Bluetooth-connected apps

    More and more teams are using Bluetooth for innovative products, but developing UIs for connected devices can be challenging: limited physical devices slow down development and make it nearly impossible to keep up a strong test suite. Our solution is simulation and Open Source power.

    → Read Article
    Taras Mankovski's profile

    Taras Mankovski

    December 11, 2019

  35. Build a Family Tree maker using React Hooks and Microstates

    If you use React, you probably know about the React Hooks RFC that was introduced at ReactConf. It’s an exciting proposal because it promises to bring the power of class components to function components. It also a convention for creating React extensions that feel like first-class APIs in the React ecosystem. React Hooks API and Microstates bring expressiveness of React function components to a whole new level.

    → Read Article
    Taras Mankovski's profile

    Taras Mankovski

    November 6, 2018

  36. Four reasons to use append() instead of Object.assign() and Object spread

    Object.assign is just a special case of a universal concept in functional programming. By opting to use a universal function to back this universal concept, you can inherit all kinds of awesome for free.

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    September 18, 2018

  37. Kubernetes for the Kubernewbie - The Journey

    Learning Kubernetes, especially with no background in Ops, is challenging but full of reward. This will take you along the journey of our k8s enlightenment and deployment

    → Read Article
    Elrick Ryan's profile

    Elrick Ryan

    August 9, 2018

  38. JSConf 2018 Recap

    JSConfUS is back after a three-year hiatus and Robert had the chance to attend. He covers his favorite talks he saw while there!

    → Read Article
    Robert DeLuca's profile

    Robert DeLuca

    August 5, 2018

  39. WCAG 2.1: What does it actually mean?

    WCAG 2.1 has officially been put in place as a standard but what does that mean? What was added? How does this impact my site or app? In this post we break down everything new in WCAG 2.1 and put in simple terms so you can walk away armed with the knowledge of making your site more accessibile.

    → Read Article
    Robert DeLuca's profile

    Robert DeLuca

    July 14, 2018

  40. Functional Rephrasing Using an Async Function Functor

    Once you know that they're there, Functors pop up in all kinds of surprising places. Here we take a simple exploration of how the JavaScript async function construct is actually a Functor and how we can use that for great good.

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    July 3, 2018

  41. Big Testing in React

    When we write and develop our applications, it's with the intent that somebody will use it. We write tests so we can be assured that everything in our app works as expected and is bug free. But how confident are you in your tests?

    → Read Article
    Wil Wilsman's profile

    Wil Wilsman

    June 13, 2018

  42. Connecting a Slack Channel to Gitter

    Slack communities for open source projects have become very popular over the past couple years. Slack has taken hold because it makes collaborative chat really easy and accessible for the masses. Something IRC wasn’t able to achieve.

    → Read Article
    Robert DeLuca's profile

    Robert DeLuca

    April 30, 2018

  43. Math is Just Another Framework

    Functional programming with typeclasses rooted in category theory may seem like some esoteric practice reserved for the truly pointy-haired. But guess what? You do it every day.

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    February 19, 2018

  44. Quickly Build Component Libraries with Storybook

    Design systems have become an effective way to maintain consistency and improve feature delivery time. What can developers on smaller teams do to apply design system concepts?

    → Read Article
    Jeffrey Cherewaty's profile

    Jeffrey Cherewaty

    December 29, 2017

  45. How Healthy Is Your Build?

    Staying healthy is a lot of work. Maybe you hit the treadmill before going into the office, and then on the way home you pick up some organic groceries. But be honest, you probably don't. Thankfully, maintaining your web application's build health is much easier, and the rewards can be huge! Take a few minutes to check your build health today: you might regret it if you don't.

    → Read Article
    Joe LaSala, Ginger Whalen, Elrick Ryan's profile

    Joe LaSala, Ginger Whalen, Elrick Ryan

    August 4, 2017

  46. Building a Continuous Integration & Deployment Solution for the IoT.

    Smart homes, smart devices, smart vehicles. The Internet of Things is here! You want to be able to build software for IoT and deploy, maintain, and update it on your devices that may be located anywhere and within anything. This is the first part of our IoT setup connecting users to the Internet of Things.

    → Read Article
    Elrick Ryan's profile

    Elrick Ryan

    June 21, 2017

  47. One Helpful Way to Think About JavaScript Decorators

    JavaScript decorators are coming, but what are the class of problems which they're useful for? In this brief tour of decorators, we'll try to answer that question by contrasting them with comparable technology from other languages.

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    June 1, 2017

  48. React Native and Chill: A tale of stupid made fast

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    January 16, 2017

  49. Building infinite scroll in React Native

    Tackling infinite scroll can be hard on any platform. But thankfully React Native allows you to use base JavaScript libraries to solve problems in native apps. We're going to take Impagination.js and build an infinite scrolling list that is silky smooth and painless data management.

    → Read Article
    Robert DeLuca's profile

    Robert DeLuca

    December 15, 2016

  50. The Ruby DCamp Experience

    → Read Article
    Stephanie Riera's profile

    Stephanie Riera

    October 27, 2016

  51. The Conjoined Triangles of Senior-Level Development

    → Read Article
    Brandon Hays's profile

    Brandon Hays

    July 7, 2016

  52. Accessibility & Why it Matters

    → Read Article
    Stephanie Riera's profile

    Stephanie Riera

    May 19, 2016

  53. So You Just Finished a Bootcamp, Now What?

    → Read Article
    Stephanie Riera's profile

    Stephanie Riera

    May 17, 2016

  54. Global Accessibility Awareness Day

    → Read Article
    Robert DeLuca's profile

    Robert DeLuca

    May 17, 2016

  55. The Insider Track

    A guide to using kindness to elevate your conference experience.

    → Read Article
    Lydia Guarino's profile

    Lydia Guarino

    March 18, 2016

  56. Functional Templating in Ember

    See how easy it is to build a fully formed image upload widget complete with preview and progress bars when you apply functional programming techniques to your handlebars templates

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    January 22, 2016

  57. X-Select Status Update

    → Read Article
    Robert DeLuca's profile

    Robert DeLuca

    August 14, 2015

  58. Reactive Modeling with Ember

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    September 21, 2014

  59. Programming in the Wild West

    → Read Article
    Brandon Hays's profile

    Brandon Hays

    May 16, 2014

  60. Ember and the future of the web

    → Read Article
    Brandon Hays's profile

    Brandon Hays

    February 24, 2014

  61. Ember on Rails: #REALTALK

    → Read Article
    Brandon Hays's profile

    Brandon Hays

    September 21, 2013

  62. The Ruby Racer Rides Again

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    December 4, 2012

  63. Implementing a Jenkins Extension Point with the Native Java API inside a Ruby Plugin

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    January 16, 2012

  64. Ruby for Jenkins Goes Pre-Alpha

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    September 13, 2011

  65. The Ruby Racer isn't threadsafe... yet.

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    June 13, 2011

  66. What it takes to bring Ruby to Jenkins

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    May 12, 2011

  67. Wrapping each Hudson distribution in its own RubyGem

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    January 6, 2011

  68. We must come together to honor the command line

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    November 14, 2010

  69. Accessing Javascript Objects from Ruby

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    October 25, 2010

  70. RYE: Repeat Yourself Enough

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    June 29, 2009

  71. In Search of a Better Autogrowing Textfield

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    December 16, 2008

  72. Please Stop Using Global Variables in Ruby

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    June 25, 2008

  73. Patiently waiting for JavaFX

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    June 5, 2008

  74. mod_rewrite: Remeber that the version counts

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    June 11, 2007

  75. Trans-Global Pair Programming

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    June 9, 2007

  76. Taming the Rhino

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    August 4, 2006

  77. Live Stylesheets

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    July 15, 2006

  78. Learning Javascript from the Command Line

    → Read Article
    Charles Lowell's profile

    Charles Lowell

    July 8, 2006