Writing on web development, API integrations, and the payments industry.

Some of my long-form thoughts on programming, learning, productivity, and more, collected in chronological order.

A Flexible AI Integration Pattern for Ruby on Rails

In this article, you will learn how to integrate AI into your Ruby on Rails application using a flexible pattern. Discover best practices and enhance your app's capabilities! šŸš€

Caching ViewComponents

Learn how to optimize your Rails application by caching ViewComponents effectively. Improve performance and user experience! šŸš€

Quick drag and drop sorting with Rails using stimulus and shopify/draggable

How to implement drag-and-drop sorting in Rails using StimulusJS and Shopify Draggable, setting up a Stimulus controller to handle drag events and send requests to update order on the server, with code samples showing how to configure the controller, use it in views, and process order updates on the backend to reorder associated models.

Rails Performance Playbook

In this Article, you will learn how to optimize the performance of Ruby on Rails applications. It covers backend optimization, tackling N+1 queries, caching, database indexing, DOM element reduction, lazy loading, and more. The article provides detailed explanations and recommendations for each optimization technique, helping you improve the efficiency and user experience of your Rails applications. Share your own tips and tricks by contacting the author via email.

Renaming in Rails Projects with `sed` and `find`: A Guide

Refactoring file and directory names, as well as their content, can be challenging, especially in large projects. This guide will walk you through the process using the sed and find commands, addressing common pitfalls and providing solutions to typical issues encountered during the refactor.

How to setup react-rails with esbuild

How to set up react-rails with esbuild and ultimately get server side rendering working so that we can use react-email.

Setting up PR previews for Rails on Render.com

Discusses the benefits of using PR-based workflows in software development and shares their experience setting up a staging environment for Rails on Render.com. A step-by-step guide on how to configure the staging environment, including creating a staging environment with Jumpstart Pro, setting up an Env group in Render, and configuring the `render.yaml` file. Also some sample bash scripts for the build, start, and initHook commands that use the `IS_PULL_REQUEST` environment variable set by Render to differentiate between production and staging environments.

Stripe Connect onboarding with Ruby on Rails

In this article, we learned how to integrate Stripe Connect onboarding with Ruby on Rails for a newsletter platform use case. We set up the necessary database models for representing authors, newsletters, their issues, and reader subscriptions. We also set up Stripe authentication, installed the Stripe Ruby SDK, and added the necessary code to create a Stripe Express account for authors. We also set up webhooks to listen for account updates and handle them to update the author's flags for whether charges and payouts are enabled. Finally, we tested the integration by going through the onboarding flow using test details and verified that the Stripe account is created successfully with the necessary flags enabled.

Handling webhooks for Stripe Connect

In this article, you'll learn how to use webhooks to automate parts of your Stripe Connect integration. We'll look at some node.js examples for handling webhook events in your server-side code, verifing webhook signatures for multiple use-cases, nesting verification to enable multiple webhook signing secrets. We'll also cover using the Stripe CLI to build and test your webhook endpoint.

Taking a cut with Stripe Connect

In this article, you'll learn how to collect a commission on payments flowing through your Stripe integration; take a cut from payments by transferring a smaller amount than the total payment; collect a one-time payment from a connected account; and collect recurring payments from your users as customers.

Picking the right charge type for your Stripe Connect platform

This blog post explores the different payment flow options in Stripe Connect, including Direct, Destination, and Separate Charges and Transfers (SCT). The article compares and contrasts the different flows, highlighting their key features, use cases, and potential pitfalls, and covers which connected account configurations work best with each funds flow. Whether you're a seasoned developer or new to Stripe Connect, this guide will give you the information you need to decide which payment flow suits your needs.

Standard vs. Express vs. Custom account types for Stripe Connect

When using Stripe Connect, you will need to create an account for each user of your platform who collects payments. There are three types of accounts to choose from: Standard, Express, and Custom. Standard accounts are the easiest to integrate and have the lowest operational overhead, while Custom accounts allow for more control over the user experience but require more development work to implement. It is recommended to use Stripe Connect Onboarding to onboard merchants and minimize compliance and operational issues. Standard and Express accounts receive automatic updates for new compliance requirements, while Custom accounts may need to make updates as compliance requirements change.

Pass data through Stripe payment links

Stripe Payment Links allow you to quickly get started with collecting payments. But passing data with your payment links can be tricky. Luckily, this blog post covers 3 ways to do it! Learn how to retrieve Checkout Sessions, use the `client_reference_id` query string parameter, and add UTM parameters to the query string. With these 3 tips you can easily track payments and build attribution for your campaigns with Stripe Payment Links.

How I start Django apps in 2022

This is mostly a note to self about the steps for setting up a fully operational django application with tailwind, authentication, and payments. ## Scaffold the python environment From some parent directory run: ```bash python -m venv venv so venv/bin/activate ``` Install django ```bash pip ...

Stripe API from Airtable Scripts

Airtable is a popular tool for building no-code applications. Iā€™m finding that knowing just a little bit of JavaScript can really super charge these no-code solutions. [Airtable Scripting](https://www.airtable.com/developers/scripting) enables you to write a bit of custom JavaScript and wire that...

Handling Stripe Webhooks with Rails

This is mostly for my own reference later so I can quickly copy and paste snippets. First, I create a webhook controller: ```bash rails g controller Webhooks ``` Then, configure the routes to accept POST requests ```rb # config/routes.rb resources :webhooks, only: [:create] ``` Then, I make...