{
    "componentChunkName": "component---src-templates-tags-tsx",
    "path": "/tags/dx/",
    "result": {"data":{"site":{"siteMetadata":{"title":"Frontside Software"}},"allBlogPost":{"totalCount":16,"edges":[{"node":{"id":"cb67e69c-86b6-5f07-97c2-cf9794a39d61","slug":"/blog/2023-10-24-innersource-codeowners-backstage/","title":"Backstage: Unblock Innersource Development with Plugins and Code Owners.","authorNodes":[{"name":"Taras Mankovski","slug":"/people/taras-mankovski/"}],"markdown":{"excerpt":"Backstage empowers platform and product teams within their organization to extend their internal developer portal in an inner-source manner. Keeping up with the growth of an inner-source Backstage…","frontmatter":{"description":"Navigating the challenges of inner-source Backstage portals? Discover how successful adopters harness code owners to streamline contributions and maintain code quality.","date":"October 24, 2023","img":{"childImageSharp":{"fixed":{"src":"/static/daab22b9c585edf70869506e82ff1cdc/2a4de/2023-10-24-innersource-codeowners-backstage.png"}}}}}}},{"node":{"id":"a8790376-f3a7-5124-88c6-bbef0a1f121e","slug":"/blog/2023-10-16-backstage-linting/","title":"Backstage: How to fix linting errors without slowing down development","authorNodes":[{"name":"Min Kim","slug":"/people/min-kim/"}],"markdown":{"excerpt":"TL;DR This blog post outlines the steps in creating a patch for the lint command in Backstage, which organizes errors by package, rules, and overall counts. The author explains how to use the…","frontmatter":{"description":"In this guide Min will show you a unique approach to tackling a mountain of linting errors without disrupting delivery","date":"October 16, 2023","img":{"childImageSharp":{"fixed":{"src":"/static/363877537a4c176532fe50374dbfa685/2a4de/2023-10-16-backstage-linting.png"}}}}}}},{"node":{"id":"97685acb-1c23-5b1c-aeab-eca0e4a522e8","slug":"/blog/2022-02-21-graphgen-graph-factory/","title":"Announcing GraphGen: the search for the graph factory","authorNodes":[{"name":"Charles Lowell","slug":"/people/charles-lowell/"}],"markdown":{"excerpt":"From the very beginning of my career until the present day I have relied on fake data. That may sound odd to the uninitiated—especially in a world where that seems overrun with fake data—but it’s true…","frontmatter":{"description":"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","date":"February 21, 2022","img":{"childImageSharp":{"fixed":{"src":"/static/eede6e82e5ca35b8a669ead7ce41c804/2a4de/2022-graphgetn.png"}}}}}}},{"node":{"id":"bb5a4d4c-46b6-5e20-85e3-dc48bff3d673","slug":"/blog/2022-02-09-semver-or-calver-by-project-type/","title":"When to use SemVer or CalVer: project type considerations","authorNodes":[{"name":"Jacob Bolda","slug":"/people/jacob-bolda/"}],"markdown":{"excerpt":"Reaching meaningful versions is more than setting a number within a package's main file (e.g., package.json, pubspec.yaml, etc.). Versioning aims to build up quality metadata that humans and computers…","frontmatter":{"description":"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. ","date":"February 09, 2022","img":{"childImageSharp":{"fixed":{"src":"/static/375aab58fb3c31794777d331cd33884a/2a4de/2022-versioning.png"}}}}}}},{"node":{"id":"77471ff2-43e7-52ec-8e67-d9ab011b3b66","slug":"/blog/2022-01-26-what-is-dx/","title":"What is DX anyway: a chronological overview","authorNodes":[{"name":"Jorge Lainfiesta","slug":"/people/jorge-lainfiesta/"}],"markdown":{"excerpt":"It was bound to happen: after UX (user experience) and CX (customer experience) it was only a matter of time before DX (Developer Experience) took center stage. Nowadays it's in the marketing copy of…","frontmatter":{"description":"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.","date":"January 26, 2022","img":{"childImageSharp":{"fixed":{"src":"/static/e41712679e606c5f80d5a10ab3e2ef92/2a4de/2022-what-is-dx.png"}}}}}}},{"node":{"id":"920e0bee-e778-5a03-943d-2ee190c8da61","slug":"/blog/2022-01-13-auth0-simulator/","title":"Simplified local development and testing with Auth0 simulation","authorNodes":[{"name":"Paul Cowan","slug":"/people/paul-cowan/"}],"markdown":{"excerpt":"Auth0 is an excellent service that lets you focus on your app instead of trying to stay up to date with the latest safe and secure authentication practices. However, what’s not so great is having to…","frontmatter":{"description":"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.","date":"January 13, 2022","img":{"childImageSharp":{"fixed":{"src":"/static/c671689697dc07b7c5bc20c9cd078abe/2a4de/2022-auth-simulator.png"}}}}}}},{"node":{"id":"fc0c6e59-0f9c-56c5-8f44-9b37f8694a59","slug":"/blog/2021-10-26-effection-async-await/","title":"Effection: for when async/await is not enough","authorNodes":[{"name":"Jonas Niklas","slug":"/people/jonas-niklas/"}],"markdown":{"excerpt":"Everyone who has built a complex system in JavaScript has hit a critical moment where the illusion of control comes crashing down. Those are the moments when there are dozens (maybe hundreds) of…","frontmatter":{"description":"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. ","date":"October 26, 2021","img":{"childImageSharp":{"fixed":{"src":"/static/c588855a2e02779b29504f163481ca0a/2a4de/2021-intro-effection.png"}}}}}}},{"node":{"id":"f4eb66ce-910f-5338-a5d5-33e123eb2ad0","slug":"/blog/2021-05-14-avoid-cloud-native-churn-with-backstage/","title":"Relieve developers’ churn in your Cloud native strategy with Backstage","authorNodes":[{"name":"Taras Mankovski","slug":"/people/taras-mankovski/"}],"markdown":{"excerpt":"When you start breaking your monolithic platform into microservices and deploying components independently, you can’t help but feel excited about adopting a Cloud native strategy. You see releases…","frontmatter":{"description":"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.","date":"May 14, 2021","img":{"childImageSharp":{"fixed":{"src":"/static/87fd89b9dbb428106f89adc3c652a0a8/2a4de/avoid-developer-churn-with-backstage.png"}}}}}}},{"node":{"id":"76ceebf6-3cb7-51e0-98bb-cd595153f70b","slug":"/blog/2021-04-07-helping-designers-and-developers-storybook/","title":"Unleashing the Genie: Helping both designers and developers with Storybook","authorNodes":[{"name":"Varya Stepanova","slug":"/people/varya-stepanova/"}],"markdown":{"excerpt":"The goal of a design system is to have everyone using it across apps, products, and teams, but achieving that is easier said than done. It’s no mystery that the easier a design system is to use the…","frontmatter":{"description":"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!","date":"April 07, 2021","img":{"childImageSharp":{"fixed":{"src":"/static/683168e1a545f8c5e3d2d1988a6f14df/2a4de/2021-helping-designers-and-developers-storybook.png"}}}}}}},{"node":{"id":"1ba9181a-f3c5-5f19-8744-ebd316e57ae6","slug":"/blog/2021-01-15-design-tokens-and-components/","title":"The context dilemma: design tokens and components ","authorNodes":[{"name":"Varya Stepanova","slug":"/people/varya-stepanova/"}],"markdown":{"excerpt":"Design systems are growing in popularity as organizations realize how greatly they empower their various teams to create accessible on-brand web and mobile apps while avoiding duplicated work. However…","frontmatter":{"description":"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? ","date":"January 15, 2021","img":{"childImageSharp":{"fixed":{"src":"/static/275837a01039bd9f3ba22079182d43f8/2a4de/design-tokens-header.png"}}}}}}},{"node":{"id":"9bfaed99-9840-55bd-ad3d-012465e61bae","slug":"/blog/2020-12-11-default-branch-names/","title":"Renaming `main` with purpose ","authorNodes":[{"name":"Jorge Lainfiesta","slug":"/people/jorge-lainfiesta/"}],"markdown":{"excerpt":"At Frontside  (or any similar name) has never seemed like a great branch name. Like many developers, we navigate through different kinds of repositories all the time, from user-facing apps to Open…","frontmatter":{"description":"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.","date":"December 11, 2020","img":{"childImageSharp":{"fixed":{"src":"/static/e84e2f02df3737e96cd1588e7578a6f2/2a4de/2020-12-11-default-branch-names.png"}}}}}}},{"node":{"id":"011e2f56-f71f-571d-9ccb-702f8d2add32","slug":"/blog/2020-08-31-mirage-serializers/","title":"MirageJS: Choosing the right Serializer ","authorNodes":[{"name":"Min Kim","slug":"/people/min-kim/"}],"markdown":{"excerpt":"MirageJS is one of the pioneers in enabling frontend developers to use mocks systematically for their tests and development. It was originally built for Ember.js in 2015, but due to its popularity the…","frontmatter":{"description":"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.","date":"August 31, 2020","img":{"childImageSharp":{"fixed":{"src":"/static/d4e278e50eadb083bc7d0048fa835d4d/2a4de/2020-07-29-mirage-social.png"}}}}}}},{"node":{"id":"64d55be4-363c-54c9-84a6-7ccbdf23b805","slug":"/blog/2020-07-29-decoupling-teams-through-simulation/","title":"Beyond Mocking: Decoupling teams through Simulation","authorNodes":[{"name":"Charles Lowell","slug":"/people/charles-lowell/"},{"name":"Jorge Lainfiesta","slug":"/people/jorge-lainfiesta/"}],"markdown":{"excerpt":"Working across teams is challenging. It gets especially tricky when one team depends on another to make progress on their own tasks. For instance, take an all-time classic: the front-end team needs…","frontmatter":{"description":"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.","date":"July 29, 2020","img":{"childImageSharp":{"fixed":{"src":"/static/2c1fe6c214acbe17dd3db9dfd6237dd3/2a4de/2020-07-29-simulator-social.png"}}}}}}},{"node":{"id":"8693c287-ea2a-5d1e-a33a-43dcdd468a2b","slug":"/blog/2020-04-30-triple-threat-to-testing-part-2-reliability/","title":"The Triple Threat to Testing — Part 2: Reliability","authorNodes":[{"name":"Charles Lowell","slug":"/people/charles-lowell/"},{"name":"Jeffrey Cherewaty","slug":"/people/jeffrey-cherewaty/"},{"name":"Jorge Lainfiesta","slug":"/people/jorge-lainfiesta/"},{"name":"Robbie Pitts","slug":"/people/robbie-pitts/"},{"name":"Taras Mankovski","slug":"/people/taras-mankovski/"}],"markdown":{"excerpt":"Imagine you have agreed to carpool with a friend. The first couple of weeks it’s all good: you go to their place to pick them up, the next time they pick you up. But one day you’re waiting in front of…","frontmatter":{"description":"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.","date":"April 30, 2020","img":{"childImageSharp":{"fixed":{"src":"/static/0c348234dc6ef8d5091787a60860fa75/2a4de/2020-triple-threat-to-testing-part-2-reliability-social.png"}}}}}}},{"node":{"id":"b79d667f-b15c-5a23-8ea6-56b98c59daba","slug":"/blog/2020-04-15-7-reasons-for-good-pull-request-descriptions/","title":"7 reasons to write good Pull Request descriptions","authorNodes":[{"name":"Taras Mankovski","slug":"/people/taras-mankovski/"}],"markdown":{"excerpt":"In large open-source projects writing a good description in a Pull Request (PR) can be the difference between your changes being merged or ignored. These projects essentially necessitate the creation…","frontmatter":{"description":"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.","date":"April 15, 2020","img":{"childImageSharp":{"fixed":{"src":"/static/0bab407c201b2dec75d66de622ff5789/2a4de/2020-7-reasons-for-good-pull-request-descriptions-social.png"}}}}}}},{"node":{"id":"1833fce7-85c2-50b6-afd1-38c4062f91ea","slug":"/blog/2020-04-06-triple-threat-to-testing-part-1-speed/","title":"The Triple Threat to Testing — Part 1: Speed","authorNodes":[{"name":"Charles Lowell","slug":"/people/charles-lowell/"},{"name":"Jeffrey Cherewaty","slug":"/people/jeffrey-cherewaty/"},{"name":"Jorge Lainfiesta","slug":"/people/jorge-lainfiesta/"},{"name":"Robbie Pitts","slug":"/people/robbie-pitts/"},{"name":"Taras Mankovski","slug":"/people/taras-mankovski/"}],"markdown":{"excerpt":"Writing tests is like paying taxes. And much like how attitudes vary towards paying taxes, attitudes diverge widely in development circles about writing tests. Some people dread paying their taxes…","frontmatter":{"description":"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.","date":"April 06, 2020","img":{"childImageSharp":{"fixed":{"src":"/static/5d8e78dfbc7420388c279a10bb5c91ef/2a4de/2020-triple-threat-to-testing-part-1-speed.png"}}}}}}}]}},"pageContext":{"tag":"dx"}},
    "staticQueryHashes": ["1241260443"]}