<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Briebug Developer Resource Center</title><description>In-depth engineering articles on Angular, TypeScript, RxJS, testing, DevOps, and UX from the Briebug team.</description><link>https://briebug.com/</link><language>en-us</language><item><title>Implementing Material 3 Theming in Angular 20</title><link>https://briebug.com/articles/material-3-theming/</link><guid isPermaLink="true">https://briebug.com/articles/material-3-theming/</guid><description>A practical guide to Material 3 (M3) theming in Angular 20: how M3&apos;s semantic, role-based system works, setup with SCSS, design tokens, Nx monorepo and Tailwind integration, and the common gotchas when migrating from Material 2.</description><pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate><category>Angular</category><author>Kelly Davidson</author></item><item><title>Angular&apos;s resource() API: Asynchronous Data Fetching with Signals</title><link>https://briebug.com/articles/angular-resource-api/</link><guid isPermaLink="true">https://briebug.com/articles/angular-resource-api/</guid><description>How Angular 20&apos;s stabilized resource() API fetches asynchronous data reactively with signals: core setup, configuration, resource state, route-driven loading, chaining resources, and the key considerations to keep in mind.</description><pubDate>Mon, 08 Dec 2025 00:00:00 GMT</pubDate><category>Angular</category><author>Anjil Dhamala</author></item><item><title>Git Questions, Good and Bad</title><link>https://briebug.com/articles/git-questions-good-and-bad/</link><guid isPermaLink="true">https://briebug.com/articles/git-questions-good-and-bad/</guid><description>Many common Git questions rest on assumptions that do not hold, because Git&apos;s internals differ from older version-control tools. This clears up the confusing ones, from commit hashes to rebasing, squashing, and safe force-pushing.</description><pubDate>Mon, 01 Dec 2025 00:00:00 GMT</pubDate><category>Git</category><author>Ron Newcomb</author></item><item><title>How AI Will Change Software Delivery in the Next 2 Years</title><link>https://briebug.com/articles/how-ai-will-change-software-delivery-in-the-next-2-years/</link><guid isPermaLink="true">https://briebug.com/articles/how-ai-will-change-software-delivery-in-the-next-2-years/</guid><description>AI promises faster, better software delivery, but most teams see marginal gains. Here is why projects still fail, what AI can and cannot fix, and how to adopt it with discipline over the next two years.</description><pubDate>Tue, 30 Sep 2025 00:00:00 GMT</pubDate><category>Angular</category><category>AI</category><author>Jesse Sanders</author></item><item><title>Exploring Angular Signals: A Case for Fine-Grained Reactivity in Modern Applications</title><link>https://briebug.com/articles/exploring-angular-signals-a-case-for-fine-grained-reactivity-in-modern-applications/</link><guid isPermaLink="true">https://briebug.com/articles/exploring-angular-signals-a-case-for-fine-grained-reactivity-in-modern-applications/</guid><description>How Angular&apos;s evolution toward signals, computed, effect, and zoneless change detection brings fine-grained reactivity and precise, attentive state management to modern enterprise applications.</description><pubDate>Tue, 16 Sep 2025 00:00:00 GMT</pubDate><category>Angular</category><author>Tyler Kleeberger</author></item><item><title>Is Cypress Cloud Worth It? A Cost-Benefit Breakdown for Modern Testing Teams</title><link>https://briebug.com/articles/is-cypress-cloud-worth-it/</link><guid isPermaLink="true">https://briebug.com/articles/is-cypress-cloud-worth-it/</guid><description>A practical cost-benefit breakdown of the free Cypress App versus Cypress Cloud to help testing teams decide which fits their project scale and budget.</description><pubDate>Mon, 15 Sep 2025 00:00:00 GMT</pubDate><category>Testing</category><category>Cypress</category><author>Kevin Schuchard</author></item><item><title>Deep Dive: The Accessible Angular Application</title><link>https://briebug.com/articles/the-accessible-angular-application/</link><guid isPermaLink="true">https://briebug.com/articles/the-accessible-angular-application/</guid><description>Why accessibility is really a UX and business advantage, then a hands-on walk through making Angular apps usable for everyone: meaningful markup, focus management, sufficient color contrast, and clearly labeled forms.</description><pubDate>Sun, 14 Sep 2025 00:00:00 GMT</pubDate><category>Angular</category><category>Accessibility</category><author>Tyler Kleeberger</author></item><item><title>Case Study: Turning Around a Stalled Platform with Strategic Technical Leadership</title><link>https://briebug.com/articles/case-study-turning-around-a-stalled-platform-with-strategic-technical-leadership/</link><guid isPermaLink="true">https://briebug.com/articles/case-study-turning-around-a-stalled-platform-with-strategic-technical-leadership/</guid><description>How Briebug stabilized a stalled gifting platform through technical assessment, Agile transformation, DevOps modernization, and security hardening.</description><pubDate>Mon, 14 Jul 2025 00:00:00 GMT</pubDate><category>Case Study</category><author>Jesse Sanders</author></item><item><title>A Game-Changer for Software Development</title><link>https://briebug.com/articles/tax-code-changes-lower-interest-rates-fuels-software-development/</link><guid isPermaLink="true">https://briebug.com/articles/tax-code-changes-lower-interest-rates-fuels-software-development/</guid><description>Two shifts are reopening the door to software investment: the 2025 repeal of Section 174&apos;s R&amp;D amortization rules and the prospect of Federal Reserve rate cuts. Here is what changed and why it matters now.</description><pubDate>Sat, 12 Jul 2025 00:00:00 GMT</pubDate><category>Business</category><author>Jesse Sanders</author></item><item><title>Angular 19: The Most Transformative Angular Release Yet</title><link>https://briebug.com/articles/angular-19-the-most-transformative-angular-release-yet/</link><guid isPermaLink="true">https://briebug.com/articles/angular-19-the-most-transformative-angular-release-yet/</guid><description>A tour of what is new in Angular 19, including incremental hydration, zoneless change detection, signals, standalone-by-default, micro-frontend support, and router upgrades, and why each matters in production.</description><pubDate>Mon, 19 May 2025 00:00:00 GMT</pubDate><category>Angular</category><author>Jesse Sanders</author></item><item><title>Mastering Vue 3 Components: A Comprehensive Guide for Software Developers</title><link>https://briebug.com/articles/mastering-vue-3-components-a-comprehensive-guide-for-software-developers/</link><guid isPermaLink="true">https://briebug.com/articles/mastering-vue-3-components-a-comprehensive-guide-for-software-developers/</guid><description>A comprehensive guide to Vue 3 components covering defining components, props, prop data flow, events, dynamic components, and async components.</description><pubDate>Fri, 12 Apr 2024 00:00:00 GMT</pubDate><category>Vue</category><author>Kevin Schuchard</author></item><item><title>Typed Forms in Angular 14+</title><link>https://briebug.com/articles/typed-forms-in-angular-14/</link><guid isPermaLink="true">https://briebug.com/articles/typed-forms-in-angular-14/</guid><description>How Angular 14&apos;s Typed Forms work: infer control types from initial values, build a TypedForm helper from any interface, handle the FormBuilder null gotcha, and use Omit and Pick for flexible form types.</description><pubDate>Fri, 29 Mar 2024 00:00:00 GMT</pubDate><category>Angular</category><category>Forms</category><category>NG14+</category><author>Myles Morrone</author></item><item><title>A Comparison of Angular, React, and Vue</title><link>https://briebug.com/articles/a-comparison-of-angular-react-and-vue/</link><guid isPermaLink="true">https://briebug.com/articles/a-comparison-of-angular-react-and-vue/</guid><description>Angular, React, or Vue? A senior engineer weighs each framework&apos;s philosophy, strengths, and trade-offs, alongside community adoption and performance, to help match the right tool to your project.</description><pubDate>Fri, 15 Mar 2024 00:00:00 GMT</pubDate><category>Angular</category><category>React</category><category>Vue</category><author>Myles Morrone</author></item><item><title>Reactive State Management with async/await, NgRx ComponentStore, and Signals</title><link>https://briebug.com/articles/intro-to-react-form-libraries-copy/</link><guid isPermaLink="true">https://briebug.com/articles/intro-to-react-form-libraries-copy/</guid><description>Combine the best of Angular&apos;s reactive toolkit, Observables, async/await, NgRx ComponentStore, and Signals, into a state-management approach that stays simple as an app grows, with guidance on when to use each.</description><pubDate>Fri, 26 Jan 2024 00:00:00 GMT</pubDate><category>Angular</category><author>Kevin Schuchard</author></item><item><title>Intro to React Form Libraries</title><link>https://briebug.com/articles/intro-to-react-form-libraries/</link><guid isPermaLink="true">https://briebug.com/articles/intro-to-react-form-libraries/</guid><description>Building forms in React from the ground up: uncontrolled and controlled inputs, then Formik and React Hook Form, compared on how easily each produces typed, reusable, low-boilerplate forms.</description><pubDate>Fri, 06 Oct 2023 00:00:00 GMT</pubDate><category>Angular</category><author>Hudson Baker</author></item><item><title>Angular Seed and Its Successors</title><link>https://briebug.com/articles/angular-seed/</link><guid isPermaLink="true">https://briebug.com/articles/angular-seed/</guid><description>A look at project scaffolding for Angular: what Angular Seed was, why the Angular CLI and Nx replaced it, and how to choose between them for your next project.</description><pubDate>Thu, 27 Apr 2023 00:00:00 GMT</pubDate><category>Angular</category><author>Stratton Whisler</author></item><item><title>Why UX Designers Should Care About Table Relationships</title><link>https://briebug.com/articles/database-design-and-user-experience/</link><guid isPermaLink="true">https://briebug.com/articles/database-design-and-user-experience/</guid><description>How database design and table relationships shape product usability, and why UX designers and database designers should coordinate early.</description><pubDate>Wed, 26 Apr 2023 00:00:00 GMT</pubDate><category>UX/UI</category><author>Spike Bachman</author></item><item><title>How to Use CodePush in React Native</title><link>https://briebug.com/articles/how-to-use-codepush-in-react-native/</link><guid isPermaLink="true">https://briebug.com/articles/how-to-use-codepush-in-react-native/</guid><description>Ship JavaScript fixes to a React Native app without waiting on the app stores. What CodePush and App Center are, their limits and alternatives, how to set them up, and when over-the-air updates make sense.</description><pubDate>Wed, 22 Feb 2023 00:00:00 GMT</pubDate><category>Frontend</category><category>React Native</category><author>Brandon Humboldt</author></item><item><title>When To Choose Angular</title><link>https://briebug.com/articles/when-to-choose-angular/</link><guid isPermaLink="true">https://briebug.com/articles/when-to-choose-angular/</guid><description>A deep look at when and why to choose Angular for your web project: its modular architecture, component-based design, Node package ecosystem, built-in Forms API, and how it compares to React and Vue.</description><pubDate>Mon, 20 Feb 2023 00:00:00 GMT</pubDate><category>Angular</category><category>Frontend</category><author>Matt Stivali</author></item><item><title>Big Data Purging in Oracle</title><link>https://briebug.com/articles/big-data-purging-in-oracle/</link><guid isPermaLink="true">https://briebug.com/articles/big-data-purging-in-oracle/</guid><description>An approach to building a performant data purging solution in Oracle for high-volume, high-velocity tables using BULK COLLECT, ROWIDs, FORALL, and incremental commits.</description><pubDate>Thu, 29 Dec 2022 00:00:00 GMT</pubDate><category>Oracle</category><author>Corey Lasley</author></item><item><title>Regression Testing; What It Is, Why It&apos;s Important, and Which Types You Should Consider Using</title><link>https://briebug.com/articles/regression-testing/</link><guid isPermaLink="true">https://briebug.com/articles/regression-testing/</guid><description>An overview of the most impactful automated test types (unit, integration, and end-to-end), plus other test types and why regression tests matter.</description><pubDate>Thu, 22 Dec 2022 00:00:00 GMT</pubDate><category>Testing</category><category>Unit Testing</category><category>Regression Testing</category><author>Kevin Schuchard</author></item><item><title>The Wonderful Lives of Angular Components</title><link>https://briebug.com/articles/angular-component-lifecycle/</link><guid isPermaLink="true">https://briebug.com/articles/angular-component-lifecycle/</guid><description>A deep dive into the Angular component lifecycle (construction, initialization, change detection, and destruction) and the lifecycle hooks that let you handle each phase.</description><pubDate>Wed, 21 Dec 2022 00:00:00 GMT</pubDate><category>Angular</category><category>Frontend</category><category>Components</category><author>Jon Rista</author></item><item><title>A Crash Course in Using Google&apos;s Firestore with AngularFire</title><link>https://briebug.com/articles/crash-course-firebases-firestore-angularfire/</link><guid isPermaLink="true">https://briebug.com/articles/crash-course-firebases-firestore-angularfire/</guid><description>Get up and running with AngularFire, Firebase&apos;s official Angular library, and use Cloud Firestore for CRUD: securing the database, installing the library, and reading and writing collection data with examples.</description><pubDate>Fri, 14 Oct 2022 00:00:00 GMT</pubDate><category>Angular</category><category>Frontend</category><author>Brandon Humboldt</author></item><item><title>Using the Java String.split() Method</title><link>https://briebug.com/articles/java-split-string/</link><guid isPermaLink="true">https://briebug.com/articles/java-split-string/</guid><description>A practical guide to the Java String.split() method: both overloads, regex and limit usage, and how to avoid PatternSyntaxException.</description><pubDate>Thu, 13 Oct 2022 00:00:00 GMT</pubDate><category>Java</category><category>Backend</category><author>Ed Gazdag</author></item><item><title>How To Declare A Global Variable In Angular</title><link>https://briebug.com/articles/how-declare-global-variable-angular/</link><guid isPermaLink="true">https://briebug.com/articles/how-declare-global-variable-angular/</guid><description>Compare three ways to handle global values in Angular: the environment file, a dedicated constants file, and a global service, and learn which fits configuration, shared constants, and managed state.</description><pubDate>Tue, 20 Sep 2022 00:00:00 GMT</pubDate><category>Angular</category><category>Typescript</category><category>Frontend</category><author>Myles Morrone</author></item><item><title>Getting Started With Angular Progressive Web Apps (PWA)</title><link>https://briebug.com/articles/angular-progressive-web-application/</link><guid isPermaLink="true">https://briebug.com/articles/angular-progressive-web-application/</guid><description>Learn what a Progressive Web App (PWA) is and how to turn a basic Angular application into a PWA using ng add, the service worker, caching, and app icons.</description><pubDate>Mon, 15 Aug 2022 00:00:00 GMT</pubDate><category>Angular</category><author>Jay Bishtawi</author></item><item><title>Setting up Cross-platform Push Notifications for Your Mobile App</title><link>https://briebug.com/articles/cross-platform-push-notifications/</link><guid isPermaLink="true">https://briebug.com/articles/cross-platform-push-notifications/</guid><description>A practical map of mobile push notifications across iOS and Android: how APNs and FCM or GCM fit together, the services that send them such as Azure and Firebase, and what it takes to wire push up end to end.</description><pubDate>Mon, 15 Aug 2022 00:00:00 GMT</pubDate><category>Mobile</category><category>iOS</category><category>Android</category><author>Jamie Perkins</author></item><item><title>What is a higher-order component in React?</title><link>https://briebug.com/articles/what-is-higher-order-component-react/</link><guid isPermaLink="true">https://briebug.com/articles/what-is-higher-order-component-react/</guid><description>Higher-order components let you wrap a React component to share logic across many. Here is how they work, why you would reach for one, and a step-by-step build using a fitness-logging example.</description><pubDate>Fri, 12 Aug 2022 00:00:00 GMT</pubDate><category>React</category><category>Frontend</category><author>Mark Tiahrt</author></item><item><title>Detecting Route Changes in Angular</title><link>https://briebug.com/articles/detect-route-changes-angular/</link><guid isPermaLink="true">https://briebug.com/articles/detect-route-changes-angular/</guid><description>Learn how Angular&apos;s router works as a single page application and how to detect route changes using the router events observable, with a practical breadcrumb example.</description><pubDate>Tue, 19 Jul 2022 00:00:00 GMT</pubDate><category>Angular</category><category>Frontend</category><author>Myles Morrone</author></item><item><title>So You Want to Be a Product Owner?</title><link>https://briebug.com/articles/want-to-be-product-owner/</link><guid isPermaLink="true">https://briebug.com/articles/want-to-be-product-owner/</guid><description>A breakdown of what a Product Owner is, how people grow into the role, and the day-to-day responsibilities both inside and outside the agile scrum team.</description><pubDate>Mon, 18 Jul 2022 00:00:00 GMT</pubDate><category>Project Management</category><category>Product Management</category><author>Brian Lang</author></item><item><title>Intro to Angular Dependency Injection</title><link>https://briebug.com/articles/angular-dependency-injection/</link><guid isPermaLink="true">https://briebug.com/articles/angular-dependency-injection/</guid><description>An introduction to the Angular Injector and dependency injection: Inversion of Control, providers, injection tokens, hierarchical injectors, lifecycle, manual injection, and automatic provisioning with providedIn.</description><pubDate>Mon, 16 May 2022 00:00:00 GMT</pubDate><category>Angular</category><category>Frontend</category><author>Jon Rista</author></item><item><title>UX vs. UI</title><link>https://briebug.com/articles/ux-vs-ui/</link><guid isPermaLink="true">https://briebug.com/articles/ux-vs-ui/</guid><description>A practical look at how UX and UI design are distinct yet inextricably connected, and how their deliverables work together throughout the product development process.</description><pubDate>Fri, 01 Apr 2022 00:00:00 GMT</pubDate><category>UX/UI</category><author>Spike Bachman</author></item><item><title>The #1 Mistake Made in Agile Backlog Grooming</title><link>https://briebug.com/articles/biggest-mistake-in-agile-backlog-grooming/</link><guid isPermaLink="true">https://briebug.com/articles/biggest-mistake-in-agile-backlog-grooming/</guid><description>Why backlog refinement deserves dedicated time, what a backlog refinement meeting looks like, and the common mistakes to avoid along the way.</description><pubDate>Wed, 30 Mar 2022 00:00:00 GMT</pubDate><category>Agile</category><category>Project Management</category><author>Carrie Fehr</author></item><item><title>The Guide to Using Bootstrap With Angular</title><link>https://briebug.com/articles/using-bootstrap-with-angular/</link><guid isPermaLink="true">https://briebug.com/articles/using-bootstrap-with-angular/</guid><description>Add Bootstrap to an Angular app the right way: the full framework versus just its CSS utilities, the NG-Bootstrap and NGX-Bootstrap component libraries, and how to customize the theme to fit your brand.</description><pubDate>Fri, 04 Mar 2022 00:00:00 GMT</pubDate><category>Angular</category><category>Frontend</category><category>Bootstrap</category><author>Chris Take</author></item><item><title>What are React Fragments?</title><link>https://briebug.com/articles/react-fragments/</link><guid isPermaLink="true">https://briebug.com/articles/react-fragments/</guid><description>A guide to React Fragments: what they are, how to use the long and short syntax, keyed fragments, and why they help when returning multiple elements from a component.</description><pubDate>Thu, 03 Mar 2022 00:00:00 GMT</pubDate><category>React</category><category>Frontend</category><author>Mark Tiahrt</author></item><item><title>Conditional Rendering in React</title><link>https://briebug.com/articles/conditional-rendering-in-react/</link><guid isPermaLink="true">https://briebug.com/articles/conditional-rendering-in-react/</guid><description>Techniques for showing React content based on changing state: inline ternaries and logical operators, returning JSX from functions, and conditional styling, with an example of each.</description><pubDate>Wed, 02 Mar 2022 00:00:00 GMT</pubDate><category>React</category><category>Frontend</category><author>Hudson Baker</author></item><item><title>Mocking Cypress GraphQL Response With Fixtures</title><link>https://briebug.com/articles/mocking-cypress-graphql-response-with-fixtures/</link><guid isPermaLink="true">https://briebug.com/articles/mocking-cypress-graphql-response-with-fixtures/</guid><description>A three-step guide to mocking out Cypress GraphQL responses with fixtures by aliasing queries, intercepting them, and using the routeHandler to modify the reply.</description><pubDate>Tue, 01 Mar 2022 00:00:00 GMT</pubDate><category>Cypress</category><category>GraphQL</category><category>Frontend</category><author>David Avila</author></item><item><title>Cloud Compute Services Comparison</title><link>https://briebug.com/articles/cloud-compute-services-comparison/</link><guid isPermaLink="true">https://briebug.com/articles/cloud-compute-services-comparison/</guid><description>How AWS, GCP, and Azure stack up on compute. The article maps their IaaS virtual machines, PaaS offerings, and serverless functions side by side to help you pick the right service for a workload.</description><pubDate>Mon, 21 Feb 2022 00:00:00 GMT</pubDate><category>Cloud</category><category>DevOps/Cloud</category><author>Jesse Hagenouw</author></item><item><title>Getting a &quot;Lead&quot; Start on Time: Using Agile to Improve Efficiency</title><link>https://briebug.com/articles/using-agile-to-improve-efficiency/</link><guid isPermaLink="true">https://briebug.com/articles/using-agile-to-improve-efficiency/</guid><description>Lead Time and Cycle Time explained, and three tactics from agile and Kanban to reduce them and improve efficiency.</description><pubDate>Fri, 04 Feb 2022 00:00:00 GMT</pubDate><category>Agile</category><category>Project Management</category><author>Courtney Smolen</author></item><item><title>Navigating Data-Driven Projects Using Agile Ceremonies</title><link>https://briebug.com/articles/data-driven-projects-agile-ceremonies/</link><guid isPermaLink="true">https://briebug.com/articles/data-driven-projects-agile-ceremonies/</guid><description>How to manage data-heavy projects with Agile ceremonies, spot common data pitfalls, and keep your team on track without being a data expert yourself.</description><pubDate>Thu, 03 Feb 2022 00:00:00 GMT</pubDate><category>Agile Ceremonies</category><category>Project Management</category><author>Todd Kleiman</author></item><item><title>Advanced Project Management: Functional vs. Nonfunctional Requirements</title><link>https://briebug.com/articles/functional-vs-nonfunctional-requirements/</link><guid isPermaLink="true">https://briebug.com/articles/functional-vs-nonfunctional-requirements/</guid><description>An advanced project management guide to functional vs. nonfunctional requirements: what they are, how they differ, and how user stories and use cases capture them.</description><pubDate>Wed, 02 Feb 2022 00:00:00 GMT</pubDate><category>Agile</category><category>Project Management</category><author>Francesca Lio</author></item><item><title>Scrum Master vs. Project Manager</title><link>https://briebug.com/articles/scrum-master-vs-project-manager/</link><guid isPermaLink="true">https://briebug.com/articles/scrum-master-vs-project-manager/</guid><description>Scrum Master and Project Manager look alike but own different things on an Agile team. Here is what each is responsible for, where they overlap, and how they work together to deliver.</description><pubDate>Tue, 01 Feb 2022 00:00:00 GMT</pubDate><category>Project Management</category><author>Brian Lang</author></item><item><title>Advanced Reactive Angular Interceptors</title><link>https://briebug.com/articles/reactive-angular-interceptors/</link><guid isPermaLink="true">https://briebug.com/articles/reactive-angular-interceptors/</guid><description>A step-by-step walkthrough of building an advanced, purely reactive Angular HTTP interceptor that caches results and synchronizes concurrent cross-request streams with custom RxJs operators.</description><pubDate>Thu, 18 Nov 2021 00:00:00 GMT</pubDate><category>Angular</category><category>Reactive</category><category>Frontend</category><author>Jon Rista</author></item><item><title>Advanced Async Reactive Angular Validators</title><link>https://briebug.com/articles/async-reactive-angular-validators/</link><guid isPermaLink="true">https://briebug.com/articles/async-reactive-angular-validators/</guid><description>A progressive, step-by-step guide to building advanced asynchronous, reactive Angular form validators that make HTTP calls, cross-validate related fields, and stay fully functional with RxJs.</description><pubDate>Wed, 17 Nov 2021 00:00:00 GMT</pubDate><category>Angular</category><category>Async</category><category>Reactive</category><category>Validators</category><category>Frontend</category><author>Jon Rista</author></item><item><title>What is the difference between a Subject and an Observable?</title><link>https://briebug.com/articles/subject-observable-difference/</link><guid isPermaLink="true">https://briebug.com/articles/subject-observable-difference/</guid><description>An in-depth look at how RxJs Subjects differ from Observables, covering push vs. pull, the multi-channel and Subscribable interfaces, BehaviorSubject, ReplaySubject, AsyncSubject, and building custom subjects.</description><pubDate>Wed, 17 Nov 2021 00:00:00 GMT</pubDate><category>RxJs</category><category>Observables</category><category>Reactive</category><category>Subject</category><category>Frontend</category><author>Jon Rista</author></item><item><title>Getting started with Apollo + GraphQL in Angular</title><link>https://briebug.com/articles/apollo-graphql-in-angular/</link><guid isPermaLink="true">https://briebug.com/articles/apollo-graphql-in-angular/</guid><description>A step-by-step guide to installing and configuring the Apollo Client in Angular, writing GraphQL queries and mutations, sending requests, handling errors, typing responses, disabling caching, and unit testing your services.</description><pubDate>Tue, 16 Nov 2021 00:00:00 GMT</pubDate><category>Angular</category><category>GraphQL</category><category>Apollo</category><category>Frontend</category><author>Josh de Gouveia</author></item><item><title>Getting Started With Micro FrontEnds and Angular</title><link>https://briebug.com/articles/micro-frontends-angular/</link><guid isPermaLink="true">https://briebug.com/articles/micro-frontends-angular/</guid><description>A practical guide to setting up an Angular Micro Frontends project using Webpack 5 Module Federation, with both Nx Workspace and the Angular CLI.</description><pubDate>Mon, 15 Nov 2021 00:00:00 GMT</pubDate><category>Angular</category><category>Micro FrontEnds</category><category>Frontend</category><author>Jay Bishtawi</author></item><item><title>Basics of the React Router</title><link>https://briebug.com/articles/react-router/</link><guid isPermaLink="true">https://briebug.com/articles/react-router/</guid><description>Learn the basics of routing in React: add react-router-dom, set up Routes, Links, Switch, Redirect, and pass route and query params in a React application.</description><pubDate>Mon, 25 Oct 2021 00:00:00 GMT</pubDate><category>TypeScript</category><category>React</category><category>Router</category><category>Frontend</category><author>Nick Landkamer</author></item><item><title>UX for Developers: The #1 Biggest Issue With Most Designs</title><link>https://briebug.com/articles/ux-for-developers/</link><guid isPermaLink="true">https://briebug.com/articles/ux-for-developers/</guid><description>Even though UX is not the primary job of a developer, any software has the goal of interfacing with users, and the number one principle of UX is that software is about the user first.</description><pubDate>Mon, 11 Oct 2021 00:00:00 GMT</pubDate><category>UX/UI</category><author>Ephie Risho</author></item><item><title>A Guide to The 5 Agile Scrum Ceremonies</title><link>https://briebug.com/articles/agile-scrum-ceremonies/</link><guid isPermaLink="true">https://briebug.com/articles/agile-scrum-ceremonies/</guid><description>A quick guide to the five Agile Scrum ceremonies (the Sprint, Sprint Planning, the Daily Scrum, the Sprint Review, and the Sprint Retrospective), plus the unofficial Product Backlog Grooming event.</description><pubDate>Fri, 08 Oct 2021 00:00:00 GMT</pubDate><category>Agile Ceremonies</category><category>Agile</category><category>Scrum</category><category>Project Management</category><author>Emily Meehan</author></item><item><title>Why User Flows Play a Critical Role in the UI/UX Design Process</title><link>https://briebug.com/articles/user-flows/</link><guid isPermaLink="true">https://briebug.com/articles/user-flows/</guid><description>User flows are a vital tool in the UX product design toolbelt, ensuring teams share a clear understanding of where a product is headed before development begins.</description><pubDate>Sun, 08 Aug 2021 00:00:00 GMT</pubDate><category>User Flows</category><category>UX/UI</category><author>Ephie Risho</author></item><item><title>Foundations of Functional Programming in Java/TypeScript (Part 1)</title><link>https://briebug.com/articles/functional-programming-part-1/</link><guid isPermaLink="true">https://briebug.com/articles/functional-programming-part-1/</guid><description>The start of a multi-part series laying a solid foundation for functional programming in JS/TS: what functional programming is, how it compares to other paradigms, and what functions really are.</description><pubDate>Tue, 27 Jul 2021 00:00:00 GMT</pubDate><category>JavaScript</category><category>TypeScript</category><category>Functional</category><category>Frontend</category><author>Jon Rista</author></item><item><title>Foundations of Functional Programming in Java/TypeScript (Part 2)</title><link>https://briebug.com/articles/functional-programming-part-2/</link><guid isPermaLink="true">https://briebug.com/articles/functional-programming-part-2/</guid><description>The second installment in the series covers the key tenets of functional programming (purity, immutability, and composability) and explores when mutability is allowable without observable side effects.</description><pubDate>Mon, 26 Jul 2021 00:00:00 GMT</pubDate><category>JavaScript</category><category>TypeScript</category><category>Functional</category><category>Frontend</category><author>Jon Rista</author></item><item><title>Foundations of Functional Programming in Java/TypeScript (Part 3)</title><link>https://briebug.com/articles/functional-programming-part-3/</link><guid isPermaLink="true">https://briebug.com/articles/functional-programming-part-3/</guid><description>Part 3 of the functional programming series explores higher order functions, currying, partial application, function decomposition, and closures in JavaScript and TypeScript.</description><pubDate>Sun, 25 Jul 2021 00:00:00 GMT</pubDate><category>JavaScript</category><category>TypeScript</category><category>Functional</category><category>Frontend</category><author>Jon Rista</author></item><item><title>The Ultimate Guide To Angular Reactive Forms</title><link>https://briebug.com/articles/angular-reactive-forms/</link><guid isPermaLink="true">https://briebug.com/articles/angular-reactive-forms/</guid><description>A deep dive into Angular Reactive Forms: building scalable, reusable, and maintainable forms with FormControl, FormGroup, FormArray, FormBuilder, custom validators, nested forms, and submission strategies.</description><pubDate>Thu, 17 Jun 2021 00:00:00 GMT</pubDate><category>Angular</category><category>Forms</category><category>Reactive</category><category>Frontend</category><author>Jordan Powell</author></item><item><title>Mastering RouterLink</title><link>https://briebug.com/articles/router-link/</link><guid isPermaLink="true">https://briebug.com/articles/router-link/</guid><description>A comprehensive introduction to routing via the Angular template using the RouterLink directive, covering relative links, parameters, fragments, state, navigation options, multiple outlets, active styling, and disabling links.</description><pubDate>Tue, 11 May 2021 00:00:00 GMT</pubDate><category>Angular</category><category>Routing</category><category>RouterLink</category><category>Navigation</category><category>Frontend</category><author>Jonathan Garvey</author></item><item><title>High-level Comparison of AWS, GCP, and Azure Services</title><link>https://briebug.com/articles/aws-gcp-and-azure-comparison/</link><guid isPermaLink="true">https://briebug.com/articles/aws-gcp-and-azure-comparison/</guid><description>New to the cloud? Start here: the core concepts and vocabulary, who the major providers are, and a side-by-side look at the compute, storage, networking, and security services across AWS, GCP, and Azure.</description><pubDate>Wed, 03 Mar 2021 00:00:00 GMT</pubDate><category>Cloud</category><category>AWS</category><category>GCP</category><category>Azure</category><category>DevOps/Cloud</category><author>Nishal Kallupalle</author></item><item><title>How to Create an External Package for Angular</title><link>https://briebug.com/articles/how-to-create-an-external-package-for-angular/</link><guid isPermaLink="true">https://briebug.com/articles/how-to-create-an-external-package-for-angular/</guid><description>Learn how to build, export, and publish a reusable Angular library to npm using the Angular CLI, with a shared UI components library as an example.</description><pubDate>Mon, 22 Feb 2021 00:00:00 GMT</pubDate><category>Angular</category><category>CLI</category><category>NPM</category><category>Frontend</category><category>UX/UI</category><author>Jordan Powell</author></item><item><title>Converting your Angular project from TSLint to ESLint</title><link>https://briebug.com/articles/convert-angular-project-tslint-eslint/</link><guid isPermaLink="true">https://briebug.com/articles/convert-angular-project-tslint-eslint/</guid><description>A step-by-step guide to migrating your Angular project from the deprecated TSLint to ESLint using the @angular-eslint schematic.</description><pubDate>Wed, 10 Feb 2021 00:00:00 GMT</pubDate><category>Angular</category><category>JavaScript</category><category>ESLint</category><category>TSLint</category><category>Frontend</category><author>Jamie Perkins</author></item><item><title>Template Variables in Angular</title><link>https://briebug.com/articles/template-variables-angular/</link><guid isPermaLink="true">https://briebug.com/articles/template-variables-angular/</guid><description>A deep dive into Angular template variables (also called template reference variables or local references): how to define and use them, scope, ViewChild, element references, template references, and alternative representations.</description><pubDate>Thu, 28 Jan 2021 00:00:00 GMT</pubDate><category>Angular</category><category>Template Variables</category><category>Local References</category><category>Viewchild</category><category>Elementref</category><category>Frontend</category><author>Jon Rista</author></item><item><title>Building Responsive Applications with Angular Flex Layout</title><link>https://briebug.com/articles/building-responsive-applications-angular-flex-layout/</link><guid isPermaLink="true">https://briebug.com/articles/building-responsive-applications-angular-flex-layout/</guid><description>Learn how to build responsive layouts in Angular using the Angular Flex Layout package, from installation and basic directives to content positioning and the responsive breakpoints API.</description><pubDate>Wed, 27 Jan 2021 00:00:00 GMT</pubDate><category>Angular</category><category>Frontend</category><author>Chris Take</author></item><item><title>How to add NgRx Store Slices into LocalStorage</title><link>https://briebug.com/articles/how-to-add-ngrx-store-slices-into-localstorage/</link><guid isPermaLink="true">https://briebug.com/articles/how-to-add-ngrx-store-slices-into-localstorage/</guid><description>Learn how to sync select slices of your NgRx store into a user&apos;s localStorage using ngrx-store-localstorage, including rehydration and a mergeReducer.</description><pubDate>Mon, 25 Jan 2021 00:00:00 GMT</pubDate><category>Angular</category><category>NgRx</category><category>Frontend</category><author>Jordan Powell</author></item><item><title>Managing Local Storage in Angular</title><link>https://briebug.com/articles/managing-local-storage-in-angular/</link><guid isPermaLink="true">https://briebug.com/articles/managing-local-storage-in-angular/</guid><description>Go beyond the raw localStorage API in Angular: wrap it in a reactive service backed by an Observable subject, handle the server-side rendering case, and decide what is actually safe to store.</description><pubDate>Sun, 24 Jan 2021 00:00:00 GMT</pubDate><category>Angular</category><category>Server-Side Rendering</category><category>Dependency Injection</category><category>Frontend</category><author>Hudson Baker</author></item><item><title>Staying Functional and Reactive with Angular Data Services</title><link>https://briebug.com/articles/staying-functional-and-reactive-with-angular-data-services/</link><guid isPermaLink="true">https://briebug.com/articles/staying-functional-and-reactive-with-angular-data-services/</guid><description>Turn imperative Angular data services into clean, reactive RxJS using creation operators like of and from to compose streams, join data sources, and reuse logic across an app.</description><pubDate>Fri, 22 Jan 2021 00:00:00 GMT</pubDate><category>Angular</category><category>RxJs</category><category>Reactive</category><category>Frontend</category><author>Jon Rista</author></item><item><title>Mastering the Angular CLI</title><link>https://briebug.com/articles/mastering-the-angular-cli/</link><guid isPermaLink="true">https://briebug.com/articles/mastering-the-angular-cli/</guid><description>Dig deeper into the Angular CLI to boost your productivity: workspaces, command aliases, ng config customizations, updating Angular, and automatic deployment.</description><pubDate>Wed, 23 Dec 2020 00:00:00 GMT</pubDate><category>Angular</category><category>CLI</category><category>Frontend</category><author>Anthony Jones</author></item><item><title>Getting Started With the Angular CLI</title><link>https://briebug.com/articles/getting-started-with-the-angular-cli/</link><guid isPermaLink="true">https://briebug.com/articles/getting-started-with-the-angular-cli/</guid><description>Everything you need to start with the Angular CLI: how it works under the hood, installing it, generating a new app and its building blocks with schematics, and serving the project locally.</description><pubDate>Mon, 21 Dec 2020 00:00:00 GMT</pubDate><category>Angular</category><category>CLI</category><category>Frontend</category><author>Josh De Gouveia</author></item><item><title>What is the activated route?</title><link>https://briebug.com/articles/what-is-the-activated-route/</link><guid isPermaLink="true">https://briebug.com/articles/what-is-the-activated-route/</guid><description>An in-depth look at Angular&apos;s ActivatedRoute API: what it is, what route data it holds, how it differs from ActivatedRouteSnapshot, and what you can do with it.</description><pubDate>Fri, 20 Nov 2020 00:00:00 GMT</pubDate><category>Angular</category><category>Activated Route</category><category>Frontend</category><author>Hudson Baker</author></item><item><title>How do I restructure and streamline my UI by using &quot;container/presenter&quot; pattern?</title><link>https://briebug.com/articles/streamline-ui-using-container-presenter/</link><guid isPermaLink="true">https://briebug.com/articles/streamline-ui-using-container-presenter/</guid><description>Split Angular components into smart containers that manage data and presentational components that handle display: a pattern that improves testability, reuse, and maintainability, built up with example code.</description><pubDate>Mon, 19 Oct 2020 00:00:00 GMT</pubDate><category>Angular</category><category>Architecture</category><category>Frontend</category><category>UX/UI</category><author>Kevin Schuchard</author></item><item><title>AngularJS vs. Angular</title><link>https://briebug.com/articles/angularjs-vs-angular/</link><guid isPermaLink="true">https://briebug.com/articles/angularjs-vs-angular/</guid><description>AngularJS and Angular share a name but little else. How the 2016 ground-up rewrite reshaped front-end development with TypeScript, RxJS, the CLI, and a new router, and what it means if you are upgrading.</description><pubDate>Sun, 18 Oct 2020 00:00:00 GMT</pubDate><category>Angular</category><category>Typescript</category><category>RxJs</category><category>AngularJS</category><category>Frontend</category><author>Jamie Perkins</author></item><item><title>Using RxJs to Write Functional JavaScript</title><link>https://briebug.com/articles/using-rxjs-to-write-functional-javascript/</link><guid isPermaLink="true">https://briebug.com/articles/using-rxjs-to-write-functional-javascript/</guid><description>How RxJs lets you write functional, reactive JavaScript and TypeScript, using pipe, pipeable operators, and decomposition to simplify Angular data services and make them easier to test.</description><pubDate>Wed, 19 Aug 2020 00:00:00 GMT</pubDate><category>Unit Testing</category><category>Operators</category><category>RxJs</category><category>Reactive</category><category>Pipe</category><category>Frontend</category><author>Jon Rista</author></item><item><title>What can I do with Observables?</title><link>https://briebug.com/articles/what-can-i-do-with-observables/</link><guid isPermaLink="true">https://briebug.com/articles/what-can-i-do-with-observables/</guid><description>A tour of what Observables and RxJs make possible beyond Promises: reactive programming, transforming, combining, switching, forking, and joining streams of data in Angular.</description><pubDate>Tue, 04 Aug 2020 00:00:00 GMT</pubDate><category>Angular</category><category>RxJs</category><category>Reactive</category><category>Frontend</category><author>Jon Rista</author></item><item><title>What&apos;s a fork and why would I join one? Understanding the forkJoin RxJs operator</title><link>https://briebug.com/articles/understanding-the-forkjoin-rxjs-operator/</link><guid isPermaLink="true">https://briebug.com/articles/understanding-the-forkjoin-rxjs-operator/</guid><description>A deep dive into the RxJs forkJoin operator: what forking and joining mean in reactive programming, and how to fork and join both completing and continuous streams in Angular.</description><pubDate>Mon, 03 Aug 2020 00:00:00 GMT</pubDate><category>RxJs</category><category>Reactive</category><category>forkJoin</category><category>Frontend</category><author>Jon Rista</author></item><item><title>What is the difference between Promises and Observables?</title><link>https://briebug.com/articles/what-is-the-difference-between-promises-and-observables/</link><guid isPermaLink="true">https://briebug.com/articles/what-is-the-difference-between-promises-and-observables/</guid><description>An in-depth look at how Promises and Observables both handle asynchrony in JavaScript and Angular, and why Observables and RxJs offer a far richer reactive platform.</description><pubDate>Sun, 02 Aug 2020 00:00:00 GMT</pubDate><category>RxJs</category><category>Async</category><category>Reactive</category><category>Frontend</category><author>Jon Rista</author></item><item><title>How do I manually trigger change detection in Angular?</title><link>https://briebug.com/articles/how-do-i-manually-trigger-change-detection-in-angular/</link><guid isPermaLink="true">https://briebug.com/articles/how-do-i-manually-trigger-change-detection-in-angular/</guid><description>Learn the differences between Angular&apos;s default change detection and OnPush, when to use manual change detection, and the simplest way to achieve optimal performance.</description><pubDate>Sat, 01 Aug 2020 00:00:00 GMT</pubDate><category>Angular</category><category>JavaScript</category><category>TypeScript</category><category>Frontend</category><author>Anthony Jones</author></item><item><title>When should I unsubscribe my Subscriptions in Angular?</title><link>https://briebug.com/articles/when-should-i-unsubscribe-my-subscriptions-in-angular/</link><guid isPermaLink="true">https://briebug.com/articles/when-should-i-unsubscribe-my-subscriptions-in-angular/</guid><description>A guide to managing RxJS subscriptions in Angular: when you need to unsubscribe, and the framework tools that handle subscriptions for you.</description><pubDate>Sat, 01 Aug 2020 00:00:00 GMT</pubDate><category>Angular</category><category>NgRx</category><category>Async</category><category>Frontend</category><author>Jon Rista</author></item><item><title>How do I restructure and streamline my UI by using Angular Workspaces &amp; Libraries?</title><link>https://briebug.com/articles/how-do-i-restructure-and-streamline-my-ui-by-using-angular-workspaces-libraries/</link><guid isPermaLink="true">https://briebug.com/articles/how-do-i-restructure-and-streamline-my-ui-by-using-angular-workspaces-libraries/</guid><description>Use Angular workspaces and libraries to run multiple apps from one monorepo, share UI and logic across them, and standardize your organization&apos;s components, with a step-by-step directory walkthrough.</description><pubDate>Fri, 31 Jul 2020 00:00:00 GMT</pubDate><category>Angular</category><category>JavaScript</category><category>CLI</category><category>TypeScript</category><category>UX/UI</category><author>Anthony Jones</author></item><item><title>Using WebAuthn with Angular</title><link>https://briebug.com/articles/using-webauthn-with-angular/</link><guid isPermaLink="true">https://briebug.com/articles/using-webauthn-with-angular/</guid><description>A primer on WebAuthn, public-key authentication for the web, and a demonstration of how to implement it in your Angular application with a node server.</description><pubDate>Mon, 27 Jul 2020 00:00:00 GMT</pubDate><category>Angular</category><category>Security</category><category>Webauthn</category><category>Node</category><category>Frontend</category><author>Jamie Perkins</author></item><item><title>How do I bind to &apos;formGroup&apos; when it isn&apos;t a known property of &apos;form&apos;?</title><link>https://briebug.com/articles/how-do-i-bind-to-formgroup-when-it-isn-t-a-known-property-of-form/</link><guid isPermaLink="true">https://briebug.com/articles/how-do-i-bind-to-formgroup-when-it-isn-t-a-known-property-of-form/</guid><description>Resolve the Angular error &quot;Can&apos;t bind to &apos;formGroup&apos; since it isn&apos;t a known property of &apos;form&apos;&quot; by importing the correct Forms module in the module that declares your component.</description><pubDate>Thu, 25 Jun 2020 00:00:00 GMT</pubDate><category>Angular</category><category>Testing</category><category>Modules</category><category>Frontend</category><author>Kevin Schuchard</author></item><item><title>How do I display HTML inside an Angular binding?</title><link>https://briebug.com/articles/how-do-i-display-html-inside-an-angular-binding/</link><guid isPermaLink="true">https://briebug.com/articles/how-do-i-display-html-inside-an-angular-binding/</guid><description>How to bind and display HTML inside an Angular component using innerHtml, sanitize it safely with a custom DomSanitizer pipe, and refactor away from innerHtml entirely.</description><pubDate>Thu, 25 Jun 2020 00:00:00 GMT</pubDate><category>Angular</category><category>JavaScript</category><category>HTML</category><category>TypeScript</category><category>Frontend</category><author>Anthony Jones</author></item><item><title>What is the difference between Constructor and ngOnInit?</title><link>https://briebug.com/articles/what-is-the-difference-between-constructor-and-ngoninit/</link><guid isPermaLink="true">https://briebug.com/articles/what-is-the-difference-between-constructor-and-ngoninit/</guid><description>Should setup logic go in the constructor or in ngOnInit? A look at what each does during Angular component initialization, and how picking the right one keeps your code predictable and testable.</description><pubDate>Fri, 29 May 2020 00:00:00 GMT</pubDate><category>Angular</category><category>JavaScript</category><category>TypeScript</category><category>Frontend</category><author>Kevin Schuchard</author></item><item><title>Switching to Cypress: The Update</title><link>https://briebug.com/articles/switching-to-cypress-the-update/</link><guid isPermaLink="true">https://briebug.com/articles/switching-to-cypress-the-update/</guid><description>A walkthrough of updates to the Briebug Cypress schematic, including a custom Angular CLI builder that lets you run ng e2e to start Cypress.</description><pubDate>Thu, 05 Mar 2020 00:00:00 GMT</pubDate><category>Cypress</category><category>Frontend</category><author>Anthony Jones</author></item><item><title>Angular Material Theme Switcher: Part 2</title><link>https://briebug.com/articles/angular-material-theme-switcher-part-2/</link><guid isPermaLink="true">https://briebug.com/articles/angular-material-theme-switcher-part-2/</guid><description>Three strategies for persisting a user&apos;s Angular Material theme preference through a page reload: local storage, an API request, and the operating system&apos;s color-scheme preference.</description><pubDate>Wed, 04 Mar 2020 00:00:00 GMT</pubDate><category>Angular</category><category>Frontend</category><author>Anthony Jones</author></item><item><title>Angular Material Theme Switcher: Part 1</title><link>https://briebug.com/articles/angular-material-theme-switcher-part-1/</link><guid isPermaLink="true">https://briebug.com/articles/angular-material-theme-switcher-part-1/</guid><description>A step-by-step guide to Angular Material&apos;s Sass-based theming: define your own color palettes and typography, then add a runtime light and dark mode toggle built on the same engine.</description><pubDate>Wed, 04 Mar 2020 00:00:00 GMT</pubDate><category>Angular</category><category>Frontend</category><author>Anthony Jones</author></item><item><title>Internationalizing your Angular app</title><link>https://briebug.com/articles/internationalizing-your-angular-app/</link><guid isPermaLink="true">https://briebug.com/articles/internationalizing-your-angular-app/</guid><description>An overview of options to consider when approaching internationalization in an Angular app, and how to implement them, including formatting dates and numbers, Angular&apos;s i18n tooling, Ngx-translate, Transloco, language switchers, and debugging i18n.</description><pubDate>Thu, 05 Sep 2019 00:00:00 GMT</pubDate><category>Angular</category><category>Frontend</category><author>Jamie Perkins</author></item><item><title>3 ways to use Angular HTTP Interceptors</title><link>https://briebug.com/articles/3-ways-to-use-angular-http-interceptor/</link><guid isPermaLink="true">https://briebug.com/articles/3-ways-to-use-angular-http-interceptor/</guid><description>How to use Angular HTTP Interceptors to control your application&apos;s network requests and responses, with examples for caching, XML to JSON conversion, and scope-based redirects.</description><pubDate>Thu, 27 Jun 2019 00:00:00 GMT</pubDate><category>Angular</category><category>JavaScript</category><category>Interceptors</category><category>Frontend</category><author>Kevin Schuchard</author></item><item><title>With NgRx Effects, There&apos;s A Place for Every Mapper!</title><link>https://briebug.com/articles/a-place-for-every-mapper/</link><guid isPermaLink="true">https://briebug.com/articles/a-place-for-every-mapper/</guid><description>Every mapper has its place in NgRx Effects. Learn the semantics of switchMap, exhaustMap, concatMap, and mergeMap, and how to choose the right one for each use case.</description><pubDate>Thu, 27 Jun 2019 00:00:00 GMT</pubDate><category>Angular</category><category>Rxjs</category><category>NgRx</category><category>JavaScript</category><category>Operators</category><category>Frontend</category><author>Jon Rista</author></item><item><title>Not going to conferences is costing you too much - Here&apos;s two reasons why</title><link>https://briebug.com/articles/why-not-going-to-conferences-is-costing-you-too-much/</link><guid isPermaLink="true">https://briebug.com/articles/why-not-going-to-conferences-is-costing-you-too-much/</guid><description>Briebug CEO Jesse Sanders shares why conferences are an invaluable, cost-effective way for developers and teams to learn best practices and avoid the high cost of failed projects.</description><pubDate>Tue, 18 Jun 2019 00:00:00 GMT</pubDate><category>Angular</category><category>Conferences</category><category>Other</category><author>Jesse Sanders</author></item><item><title>Visual Testing with Cypress</title><link>https://briebug.com/articles/visual-testing-with-cypress/</link><guid isPermaLink="true">https://briebug.com/articles/visual-testing-with-cypress/</guid><description>Use Cypress with stubbed data and visual regression tools like cypress-visual-regression and Percy.io to reliably test complex visual elements.</description><pubDate>Thu, 30 May 2019 00:00:00 GMT</pubDate><category>Testing</category><category>JavaScript</category><category>Cypress</category><category>Frontend</category><category>E2E Testing</category><author>Jesse Sanders</author></item><item><title>I&apos;m not ready for NgRx</title><link>https://briebug.com/articles/i-m-not-ready-for-ngrx/</link><guid isPermaLink="true">https://briebug.com/articles/i-m-not-ready-for-ngrx/</guid><description>An introduction to the service-with-a-subject pattern in Angular, a simple alternative to NgRx that gives developers a clear upgrade path to a redux pattern with little to no refactor.</description><pubDate>Thu, 23 May 2019 00:00:00 GMT</pubDate><category>Angular</category><category>NgRx</category><category>JavaScript</category><category>State Management</category><category>Frontend</category><author>Jesse Sanders</author></item><item><title>Introducing NgRx Auto-Entity</title><link>https://briebug.com/articles/introducing-ngrx-auto-entity/</link><guid isPermaLink="true">https://briebug.com/articles/introducing-ngrx-auto-entity/</guid><description>An introduction to NgRx Auto-Entity, an add-on library that eliminates NgRx boilerplate by providing ready-made generic CRUD actions, effects, reducers, and facades for Angular entity state.</description><pubDate>Thu, 23 May 2019 00:00:00 GMT</pubDate><category>Angular</category><category>NgRx</category><category>JavaScript</category><category>Frontend</category><author>Jon Rista</author></item><item><title>Making Use of WebSockets in Angular—Way Easier Than You Expected</title><link>https://briebug.com/articles/making-use-of-websockets-in-angular/</link><guid isPermaLink="true">https://briebug.com/articles/making-use-of-websockets-in-angular/</guid><description>A practical guide to using WebSockets in Angular with the RxJs WebSocket wrapper (no extra dependencies needed), covering setup, a connection service, auth, and troubleshooting.</description><pubDate>Thu, 16 May 2019 00:00:00 GMT</pubDate><category>Angular</category><category>Websocket</category><category>RxJs</category><category>Frontend</category><author>Jamie Perkins</author></item><item><title>Angular: How to Implement Drag and Drop in a Material tree</title><link>https://briebug.com/articles/angular-how-to-implement-drag-and-drop-in-a-material-tree/</link><guid isPermaLink="true">https://briebug.com/articles/angular-how-to-implement-drag-and-drop-in-a-material-tree/</guid><description>How to integrate the Angular Material CDK drag and drop with the Material flat tree, including handling the drop event, generating unique IDs, and persisting node expansion state.</description><pubDate>Thu, 28 Mar 2019 00:00:00 GMT</pubDate><category>Angular</category><category>Material Design</category><category>Frontend</category><author>Jamie Perkins</author></item><item><title>Angular Material Modal Schematic</title><link>https://briebug.com/articles/everybody-hates-modals/</link><guid isPermaLink="true">https://briebug.com/articles/everybody-hates-modals/</guid><description>How I built an Angular schematic that scaffolds an Angular Material dialog, automatically installing @angular/material, generating the components, and wiring up the required modules.</description><pubDate>Fri, 08 Mar 2019 00:00:00 GMT</pubDate><category>Angular</category><category>JavaScript</category><category>Material Dialog</category><category>Frontend</category><author>Anthony Jones</author></item><item><title>Common Angular Errors And How To Fix Them</title><link>https://briebug.com/articles/common-angular-errors-and-how-to-fix-them/</link><guid isPermaLink="true">https://briebug.com/articles/common-angular-errors-and-how-to-fix-them/</guid><description>A field guide to the Angular errors you will actually hit, from circular dependency injection to ExpressionChangedAfterItHasBeenChecked and missing value accessors, with the cause and the fix for each.</description><pubDate>Fri, 01 Mar 2019 00:00:00 GMT</pubDate><category>Angular</category><category>Frontend</category><author>Jamie Perkins</author></item><item><title>Switching to Cypress from Protractor in Less Than 30 Seconds</title><link>https://briebug.com/articles/switching-to-cypress-from-protractor-in-less-than-30-seconds/</link><guid isPermaLink="true">https://briebug.com/articles/switching-to-cypress-from-protractor-in-less-than-30-seconds/</guid><description>A walkthrough of a custom Angular schematic that installs Cypress with TypeScript support out of the box and optionally removes Protractor and its dependencies.</description><pubDate>Tue, 05 Feb 2019 00:00:00 GMT</pubDate><category>Angular</category><category>Cypress</category><category>Schematics</category><category>TypeScript</category><category>Frontend</category><author>Anthony Jones</author></item><item><title>I&apos;m soo done with E2E testing... until now - An Introduction to E2E Testing with Cypress.io</title><link>https://briebug.com/articles/i-m-so-done-with-e2e-testing-until-now/</link><guid isPermaLink="true">https://briebug.com/articles/i-m-so-done-with-e2e-testing-until-now/</guid><description>An introduction to end-to-end testing with Cypress.io, covering setup, writing tests, stubbing responses, fixtures, and wait commands for fast, reliable E2E tests.</description><pubDate>Wed, 19 Dec 2018 00:00:00 GMT</pubDate><category>Angular</category><category>JavaScript</category><category>Cypress</category><category>Frontend</category><category>E2E Testing</category><author>Jesse Sanders</author></item><item><title>Jest Testing: Your test tools are all wrong</title><link>https://briebug.com/articles/jest-testing-your-test-tools-are-all-wrong/</link><guid isPermaLink="true">https://briebug.com/articles/jest-testing-your-test-tools-are-all-wrong/</guid><description>Jest brings zero-config setup, fast JSDOM-based runs, built-in coverage, a powerful CLI, and snapshot testing to make testing faster and easier.</description><pubDate>Mon, 17 Dec 2018 00:00:00 GMT</pubDate><category>Testing</category><category>Frontend</category><category>Jest</category><author>Jesse Sanders</author></item><item><title>5 Ways to Pass Data into Child Components in Angular</title><link>https://briebug.com/articles/5-ways-to-pass-data-into-child-components-in-angular/</link><guid isPermaLink="true">https://briebug.com/articles/5-ways-to-pass-data-into-child-components-in-angular/</guid><description>Five techniques for passing data into Angular child components: @Inputs, @ViewChild, BehaviorSubjects in services, the Angular Router, and NgRx.</description><pubDate>Tue, 20 Nov 2018 00:00:00 GMT</pubDate><category>Angular</category><category>NgRx</category><category>Frontend</category><author>Jamie Perkins</author></item><item><title>Building Schematics with a Sandbox</title><link>https://briebug.com/articles/building-schematics-with-a-sandbox/</link><guid isPermaLink="true">https://briebug.com/articles/building-schematics-with-a-sandbox/</guid><description>Set up a local sandbox to build and end-to-end test Angular schematics with instant visual feedback before you publish, so you can see exactly what your schematic generates.</description><pubDate>Mon, 19 Nov 2018 00:00:00 GMT</pubDate><category>Angular</category><category>JavaScript</category><category>Schematics</category><category>Unit Testing</category><category>TypeScript</category><category>Frontend</category><author>Kevin Schuchard</author></item><item><title>3 Ways You&apos;re Using NgRx Wrong</title><link>https://briebug.com/articles/3-ways-youre-using-ngrx-wrong/</link><guid isPermaLink="true">https://briebug.com/articles/3-ways-youre-using-ngrx-wrong/</guid><description>Three common NgRx anti-patterns and how to avoid them: taking shortcuts, nesting data in the store, and underusing selectors.</description><pubDate>Mon, 12 Nov 2018 00:00:00 GMT</pubDate><category>Angular</category><category>NgRx</category><category>Frontend</category><author>Jesse Sanders</author></item><item><title>A is for Enterprise: 6 Reasons We Love Angular</title><link>https://briebug.com/articles/a-is-for-enterprise/</link><guid isPermaLink="true">https://briebug.com/articles/a-is-for-enterprise/</guid><description>Six reasons Angular is a great fit for the enterprise: it&apos;s opinionated, scaled, trustworthy, familiar, and backed by a strong ecosystem.</description><pubDate>Mon, 01 Oct 2018 00:00:00 GMT</pubDate><category>Angular</category><category>Enterprise</category><category>Frontend</category><author>Jesse Sanders</author></item><item><title>What Should You Look for When Hiring Your Next Developer?</title><link>https://briebug.com/articles/what-should-you-look-for-when-hiring-your-next-developer/</link><guid isPermaLink="true">https://briebug.com/articles/what-should-you-look-for-when-hiring-your-next-developer/</guid><description>What to look for when hiring your next web application developer to keep your project on time, on budget, and on target.</description><pubDate>Fri, 17 Aug 2018 00:00:00 GMT</pubDate><category>Other</category><author>Jesse Sanders</author></item><item><title>5 Considerations for Successful Web Application Design</title><link>https://briebug.com/articles/5-considerations-for-successful-web-application-design/</link><guid isPermaLink="true">https://briebug.com/articles/5-considerations-for-successful-web-application-design/</guid><description>Five essential considerations for execs and developers getting ready to dive into new web application design projects, and how they can help you avoid problems along the way.</description><pubDate>Wed, 25 Jul 2018 00:00:00 GMT</pubDate><category>Frontend</category><category>UX/UI</category><author>Jesse Sanders</author></item><item><title>How In-House Developer Education Can Bridge IT Skills Gaps</title><link>https://briebug.com/articles/bridge-the-it-skills-gap-with-in-house-developer-education/</link><guid isPermaLink="true">https://briebug.com/articles/bridge-the-it-skills-gap-with-in-house-developer-education/</guid><description>How partnering with an expert team to provide in-house developer education can help bridge the IT skills gap.</description><pubDate>Fri, 06 Jul 2018 00:00:00 GMT</pubDate><category>Other</category><author>Jesse Sanders</author></item><item><title>Development Team Need a Boost? Partner Up!</title><link>https://briebug.com/articles/development-team-need-a-boost-partner-up/</link><guid isPermaLink="true">https://briebug.com/articles/development-team-need-a-boost-partner-up/</guid><description>How partnering with an expert development team can give your in-house developers a boost by avoiding bad hires, applying best practices, and accelerating your projects.</description><pubDate>Mon, 02 Jul 2018 00:00:00 GMT</pubDate><category>Other</category><author>Jesse Sanders</author></item><item><title>MailChimp Subscribe Form with Angular Using jsonp</title><link>https://briebug.com/articles/mailchimp-subscribe-form-with-angular-using-jsonp/</link><guid isPermaLink="true">https://briebug.com/articles/mailchimp-subscribe-form-with-angular-using-jsonp/</guid><description>A working recipe for an AJAX Mailchimp signup form in Angular using HttpClient&apos;s jsonp, including the endpoint tweak Mailchimp does not document and the component code to drop in.</description><pubDate>Tue, 20 Mar 2018 00:00:00 GMT</pubDate><category>Angular</category><category>JavaScript</category><category>MailChimp</category><category>Frontend</category><author>Jamie Perkins</author></item><item><title>Five Coachable Steps For Building Complex Applications</title><link>https://briebug.com/articles/complex-applications/</link><guid isPermaLink="true">https://briebug.com/articles/complex-applications/</guid><description>A repeatable, five-step process for taming complex Angular applications and reducing eventing spaghetti with NgRx and Redux patterns.</description><pubDate>Sun, 25 Feb 2018 00:00:00 GMT</pubDate><category>Angular</category><category>JavaScript</category><category>TypeScript</category><category>Frontend</category><author>Jesse Sanders</author></item><item><title>Building an Angular Schematic for Jest Unit Testing</title><link>https://briebug.com/articles/building-an-angular-schematic-for-jest-testing/</link><guid isPermaLink="true">https://briebug.com/articles/building-an-angular-schematic-for-jest-testing/</guid><description>How Briebug built an Angular CLI schematic to configure unit tests to run with Jest instead of Karma and Jasmine.</description><pubDate>Tue, 18 Jul 2017 00:00:00 GMT</pubDate><category>Angular</category><category>Testing</category><category>Frontend</category><category>Jest</category><author>Kevin Schuchard</author></item><item><title>Why Angular?</title><link>https://briebug.com/articles/why-angular/</link><guid isPermaLink="true">https://briebug.com/articles/why-angular/</guid><description>What makes modern Angular a stable, productive choice for front-end work: its evolution since AngularJS, its performance and mobile gains, and the conventions that guide solid architecture.</description><pubDate>Wed, 29 Mar 2017 00:00:00 GMT</pubDate><category>Angular</category><category>JavaScript</category><category>TypeScript</category><category>Frontend</category><author>Briebug Team</author></item></channel></rss>