Musings of a startup junkie and Ruby on Rails nerd.
Welcome to Millarian! I write about web development, Ruby on Rails, consulting, and the occasional startup lesson learned the hard way.
Shrink Your Expo Android App Size with R8
R8 is off by default in Expo. Turning it on cut my Android download from 27.5 MB to 17.3 MB.
Supabase RPC Silently Capped at 1000 Rows (PostgREST)
PostgREST's max_rows cut my RPC result off at 1,000 rows with no error. Returning one row per group fixed it.
Expo Android Status Bar Icons Invisible in Light Mode
White status bar icons on a white background? Render expo-status-bar once in the root layout.
Rails titleize Breaks Names, Hyphens, and Apostrophes
titleize splits McAllen, drops hyphens, skips capitals after apostrophes, and chops ALL-CAPS words around acronyms. Here's a safer way to recase text.
Catching Rails Credential Drift Between Environments
Rails ships no check that your credential files declare the same keys. We built credential_parity to catch the drift before it reaches production.
EncryptedConfiguration#key? Missing Before Rails 7.1
delegate_missing_to turns a missing predicate into a confusing ArgumentError, not a NoMethodError.
Requiring an ActiveSupport Leaf File Breaks on Rails 7.1
require 'active_support/x' alone raises a deprecator NoMethodError unless the parent library loads first.
Turbo Streams Instead of Nested Forms
When the parent already exists, you probably don't need a nested form at all
Nested Forms in Rails 8: Life After Cocoon and Webpacker
accepts_nested_attributes_for still works. A small Stimulus controller handles the rest.
Building a Pluggable Adapter Architecture in Ruby
How to design a gem with zero hard dependencies and user-selectable backends.