Even though React's useReducer has gained a lot of popularity during the last couple of years, it can be difficult to use for some common cases. Specifically, it requires a lot of boilerplate to support async actions.
Subscribe
Get our best content on how to build better apps.
Subscribe
Get our best content on how to build better apps.
Got product development questions?
Join us on
Discord
Unlocking Sketch metadata: find symbols across files using sketchtool CLI, Bash, and JSON
Have you ever had the daunting task of checking whether developers coded a component (e.g., button, checkbox, alert) according to spec and needed to find ALL instances of that component in a huge collection of pages in an unfamiliar design system? Let’s say you have a spec for an alert banner (component/symbol). You know what it’s supposed to look like. But now, you need to find every single page or modal that alert appears on, how to navigate to it, and what conditions cause it to appear, so you can check that all instances are coded to spec. Gulp! You definitely don’t want to open file after file of page-level specs/comps, search multiple pages and artboards, in a slow tedious hunt for that elusive little component, especially if there are 100+ files and hundreds of artboards in your design system. This is the dilemma I faced on a recent project.

The Bitovi Team
Manage Form-Driven State with ngrx-forms (Part 1)
If your Angular application already uses NgRx, you know the value of writing good reducers and using one-way data flow. However, that knowledge may not be enough to keep the biggest form in your app from being a rat’s nest of FormGroup
s and related logic. Forget keeping components under 50 lines of code - your form logic alone blows past that.

Kyle Nazario
Creating a design system with Storybook
Application + style guide = smart buy
A recent project called for the creation of a single page site that would showcase a real estate agent’s expertise, sales history, professional connections, and various other impressive attributes. Pages would be generated using a fill-in-the-blank template. Eventually, two additional real estate agencies affiliated with our client would make their own versions of the page, identical in function, but with slight changes in styling and content. Future brand-specific styling variations would need to be documented somewhere, so Bitovi offered to provide a fill-in-the-blank re-usable style guide to go along with the template page. Both the template and the style guide could be cloned and restyled as many times as desired. Hence, our client bought themselves a cookie cutter vs. paying for one cookie at a time.

The Bitovi Team
When to Use the Non-Null Assertion Operator in Angular
If you've recently made the switch to using Strict Mode for Angular, good job, you're on your way to writing better code and governing a more maintainable codebase! However, your team may encounter new TypeScript "errors" they haven't seen before, like "Property 'myClassMember' has no initializer and is not definitely assigned in the constructor.ts". To find out more about this error and how to resolve it using the Non-null Assertion Operator, check out my post on dev.to here: https://dev.to/bitovi/non-null-assertion-operator-in-angular-g5l

Jennifer Wadella
DevOps Automation using StackStorm - BitOps Secrets Management
In a recent series of blog posts, I drew up how to go from a basic StackStorm installation and pack deployed using Ansible, to moving that entire custom deployment to a one-touch cloud deployment using BitOps while only modifying a handful of files in the process.
We only barely scratched the surface of our implementation, and we can always go further. One aspect I tried to be mindful of throughout the guides was the various ways of managing of secrets. In this guide we will detail how we can utilize an AWS Key Management Service (KMS) key as well as AWS Systems Manager (SSM) and Parameter Store to take that a step further.
In practical terms: we'll create a BitOps before hook script we use to retrieve all of the secret variables we need from AWS, and demonstrate how we can load those into the BitOps container environment for usage within our existing Ansible StackStorm playbook.

Dylan Lundquist
Angular Consulting at Bitovi
Psst, hey you! Are you looking for a place to grow your Angular skills by working on interesting projects with fabulous teammates?
At Bitovi we’re expert developer consultants that care about our craft and care about helping our customers achieve success in their software products. We invest ourselves fully in client success and make sure we bring the development knowledge & consulting skills they need to achieve their goals.

Jennifer Wadella