DIY Google reCAPTCHA with Ruby

reCAPTCHA is an anti-bot tool you can implement in your web app to prevent bad actors from programmatically filling out forms and spamming your endpoints. In this post, we'll implement Google's reCAPTCHA protocol using the Google reCAPTCHA 2 client-side library and our very own hand-rolled verification client. I am Not… »

Building a Custom Logger with Active Support Tagged Logging

The ActiveSupport::Logger class is the go-to logging tool for Rails––the default Rails logger represents an instance of this class. Active Support provides some additional flexible logging classes that we can use to customize logging functionality in our Rails app. The default logger allows us to set logging levels,… »

Using Agent to Maintain Channel State in Phoenix

In my previous post, we used Phoenix Presence to track user presence in a given "challenge room" (think: chat room). In this post, we'll build our own Agent-backed module to track channel state that does not pertain to user presence. In our pair programming app, the shared text-editor is accompanied… »

Tracking User State with Phoenix Presence, React and Redux

In any application, you may need to track user involvement in real-time features. In a gaming, chatting or otherwise real-time and interactive application, we want to track things like which users are present in a chat/game/live stream or who is typing a message/shooting aliens/streaming a thing.… »

JWT Auth with Phoenix and React Router 4

Since I clearly cannot get enough of JWT authentication, here's a look at how to use it to authenticate your shiny new Phoenix API with a React + Redux front-end application, using React Router 4. In this post, we'll cover: Using React Router 4 to set up both regular and authenticated… »