Vipul A M

Vipul A M

I am an active member of Ruby community. I have been consistently contributing to Ruby on Rails for a number of years and now am one of the top 30 contributors to Ruby on Rails. I also help as co-editor for the This week in Rails newsletter. Besides Ruby on Rails I have also contributed to many other notable open source projects including Sinatra, Devise and Rake. I am a seasoned speaker an have spoken at many conferences around the world including Gogaruco in San Francisco, RedDotRubyConf in Singapore, RubyConfIndia in Goa, India MadisonPlusRuby in Madison, Wisconsin, RubyConfBrazil in Suo Paulo, Brazil, and RubyConf Philippines in Manilla, Philippines. I am organizer of Deccan Ruby Conference and used to run RubyIndia Podcast. During my early days of open source as part of "Google summer of code" I contributed to the krypt-project project. Later I helped mentor in the JRuby and currently mentor in the Ruby on Rails organization for Google summer of code. When not working on Ruby, I am mostly working on Reactjs. I have authored the book Building Modern Web Applications with React.js which is published by PACKT. I have produced a number of screencasts on the topic of Learn React.js.
authorImg Vipul A M

Rails 8 Adds Thruster as the Default HTTP/2 Proxy Server

Rails 8 ships Thruster in the default Docker setup, giving Puma HTTP/2, asset caching, compression, X-Sendfile support, and optional automatic TLS without a separate Nginx layer.
authorImg Vipul A M

My Ever-Improving AI Setup for Rails Work With gbrain and gstack

How I use Perplexity, Claude Code, Codex, Conductor, OpenClaw, gbrain, gstack, local LLMs, CodeRabbit, Copilot, browser sessions, evals, audit trails, and GitHub checks for private Rails development, with an Uploadcare rewrite case study.
authorImg Vipul A M

Rails Authorization Patterns: Pundit, CanCanCan, and Action Policy

A practical Rails authorization guide for 2026 covering Pundit, CanCanCan, Action Policy, tenant scoping, API endpoints, background jobs, IDOR prevention, and tests that catch access-control bugs.
authorImg Vipul A M

Rails Security Best Practices: A Comprehensive Guide

Rails security best practices for 2026, updated for Rails 8.1.3, authentication generator, rate limiting, Brakeman, credentials, and CI security checks.
authorImg Vipul A M

Building a Private Karpathy-Style LLM Wiki With gbrain and gstack

How I use a private Karpathy-style LLM Wiki, gbrain, and gstack to train an AI assistant on my own work signals for Rails development, writing, and reviews.
authorImg Vipul A M

Using picture_tag Helper in Rails 7.1

Support for picture_tag helper in Rails. Its usage, advantages, and use cases.
authorImg Vipul A M

Rails 7.1 Rails.env.local? Method Explained

Rails 7.1 adds Rails.env.local? to check if environment is development or test in one simple call.
authorImg Vipul A M

Better Context and Communication

On how to better understand context and communicate questions. Personal musings on running a company
authorImg Vipul A M

Back to Office- The Remote Work edition

As the pandemic enters into a stage where some companies are retracting Work from Home, lets look at some alternatives.
authorImg Vipul A M

ES2021 Logical Assignment Operators

ES 12/2021 introduces new logical assignment operators for nullish(??=), AND(&&=) and OR(||=).
authorImg Vipul A M

How to Start Software Consulting

How to get started with Software Consulting or Software Freelancing. First steps, ongoing work and more.
authorImg Vipul A M

Ruby 2.7 Introduces Enumerable#filter_map

Ruby 2.7 introduces Enumerable#filter_map, combining filter and map into a single, efficient method call
authorImg Vipul A M

Rails 6 Array including & excluding Methods

Rails 6 adds Array#including, Array#excluding, Enumerable#including, Enumerable#excluding
authorImg Vipul A M

Rails 6 adds Relation#reselect

Rails 6 add a reselect method to Relation. This is a short-hand for "unscope(:select).select(fields)".
authorImg Vipul A M

Ruby 2.7 adds Enumerable#tally

Ruby 2.7 has added Enumerable#tally. It helps to tally occurrences of elements in an Enumerable.
authorImg Vipul A M

Rails 6 Adds Timezone Support to Active Job

Rails 6 preserves timezones in Active Job, automatically restoring the timezone when jobs execute and propagating it to nested jobs.
authorImg Vipul A M

Rails 6 Adds Negative Scopes for Enum Values

Rails 6 adds negative scopes for all enum values, making it easier to query records that don't match specific enum states.
authorImg Vipul A M

Ruby 2.7 Shorthand Operator for Object#method

Ruby 2.7 adds experimental shorthand operator for Object#method. Allows method object access using :, example File.:basename
authorImg Vipul A M

Rails 6 adds Enumerable#index_with

Rails 6 adds Enumerable#index_with to allows creating a hash from an enumerable with the value from a passed block or a default argument.
authorImg Vipul A M

Rails 6 adds Relation#create_or_find_by

Rails 6 adds Relation#create_or_find_by to avoid race conditions of Relation#find_or_create_by
authorImg Vipul A M

Rails 6 adds String#truncate_bytes

Rails 6 adds String#truncate_bytes to limit to N characters without breaking multibytes chars
authorImg Vipul A M

Rails config_for: Secrets to Credentials

Rails secrets is deprecated in Rails 6, config_for is a replacement of using ENV specific configuration along with credentials.