• Blog

    • Angular Autolink Pipe

      In development of a social platform for work, I found myself needing to support the creation of links for commons items such as, hashtags, urls, phone numbers, emails, etc. First instinct was, someone definitely has a solution for this! Thankfully, that turned out to be true (h/t Greg Jacobs). I knew Autolinker.js could save me…

    • Angular Masked Phone Number Input

      Many of ours apps at some point will require a form with user input. More often than not, a phone number input is required. Rather than simply have the digits, it can be helpful to format the number as its typed in. It’s much more visibly appealing and easier to find a mistake if there…

    • Alphabetical Index with Ionic Virtual Scroll

      This post is an extension of the first post on a contacts lists with headers to break up the sections. You can read that here! I wanted to extend that example to show how we could add an alphabetical index on the side of the list. This was something that plagued me for a while.…

    • Login Form with Show/Hide Password Switch

      For me, I always appreciate when login forms give you an option to show the password I’ve typed in. It may seem commonplace, but all too often sites neglect to add this feature. It’s nothing more than a slight nuisance, but I appreciate being able to hit the toggle, show what I’ve typed so I…

    • Ionic Virtual Scroll with Headers

      We all have apps where we need to display a long list of contacts or users of some sorts. It could be a list of friends, co-workers, phone contacts, or plenty of other use cases. Nevertheless, ion-virtual-scroll comes in handy to create these lists because it comes with built-in performance benefits. As Ionic says in…

    • Watch for Network Status Changes with Capacitor

      One of the key elements of every Progressive Web App (PWA) is that they are offline capable. This means that regardless of whether the user currently has Internet connectivity, they should still be able to use your app with cached data returned. While this post isn’t going to go into the finer details of caching…