<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[ShakaCode Blog]]></title><description><![CDATA[Web Performance Optimization & AI integration by maintainers of React on Rails and Shakapacker. We optimize Web Vitals, Lighthouse, SEO, Accessibility, BE performance. We help build reliable AI assistants.]]></description><link>https://shakacode.com</link><generator>GatsbyJS</generator><lastBuildDate>Thu, 08 Oct 2026 02:38:48 GMT</lastBuildDate><item><title><![CDATA[Gumroad RSC experiment: technical reference and trade-offs]]></title><description><![CDATA[The methods, rendering choices, costs and evidence behind our Gumroad product-page experiment with React Server Components and Inertia.]]></description><link>https://shakacode.com/blog/gumroad-rsc-performance-reference/</link><guid isPermaLink="false">https://shakacode.com/blog/gumroad-rsc-performance-reference/</guid><dc:creator><![CDATA[Justin Gordon]]></dc:creator><pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[React Server Components on Gumroad: from 53 to 80 on mobile PageSpeed]]></title><description><![CDATA[Could React Server Components complement Inertia? Compare two live Gumroad product pages, their PageSpeed reports and repeated first-paint measurements.]]></description><link>https://shakacode.com/blog/gumroad-inertia-react-server-components/</link><guid isPermaLink="false">https://shakacode.com/blog/gumroad-inertia-react-server-components/</guid><dc:creator><![CDATA[Justin Gordon]]></dc:creator><pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Code Coverage Cannot See a Cookie Banner. Screenshot Coverage Can.]]></title><description><![CDATA[Tests can run every line and never see the cart button under a cookie banner. ShakaPerf 0.3 gives agents a goal they cannot fake: every component on screen.]]></description><link>https://shakacode.com/blog/code-coverage-cannot-see-a-cookie-banner/</link><guid isPermaLink="false">https://shakacode.com/blog/code-coverage-cannot-see-a-cookie-banner/</guid><dc:creator><![CDATA[Alexander Kharitonov]]></dc:creator><pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Asana Removed Enzyme in Two Weeks. Re-price Your Rails Upgrade]]></title><description><![CDATA[Asana, Airbnb and Uber finished migrations once thought impractical. The wins came from verification harnesses, not prompts. Your Rails upgrade is next.]]></description><link>https://shakacode.com/blog/ai-assisted-migrations/</link><guid isPermaLink="false">https://shakacode.com/blog/ai-assisted-migrations/</guid><dc:creator><![CDATA[Justin Gordon]]></dc:creator><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[GitHub Made Pull Request Stacks Visible. Now Test Every Layer]]></title><description><![CDATA[GitHub can show how pull requests fit into a stack. ShakaPerf adds the missing proof: visual checks for each layer and the finished stack.]]></description><link>https://shakacode.com/blog/github-stacked-prs-visual-regression/</link><guid isPermaLink="false">https://shakacode.com/blog/github-stacked-prs-visual-regression/</guid><dc:creator><![CDATA[Roman Kuksin]]></dc:creator><pubDate>Thu, 06 Aug 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[The AI Reviewer Found It. We Merged Anyway.]]></title><description><![CDATA[Two useful AI review findings went unanswered before merge. Our 30-commit audit shows how clearer PRs, meaningful checks, and review follow-through help developers ship agent-written code.]]></description><link>https://shakacode.com/blog/audit-30-ai-assisted-commits/</link><guid isPermaLink="false">https://shakacode.com/blog/audit-30-ai-assisted-commits/</guid><dc:creator><![CDATA[Justin Gordon]]></dc:creator><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Streaming a Web Page, Explained at a Restaurant Table]]></title><description><![CDATA[How does a modern web page arrive on your screen, and what does it mean to deliver the right part faster, without waste? Here's a hard React streaming architecture explained with nothing but a restaurant, a waiter, and a pushy busser.]]></description><link>https://shakacode.com/blog/streaming-explained-restaurant-analogy/</link><guid isPermaLink="false">https://shakacode.com/blog/streaming-explained-restaurant-analogy/</guid><dc:creator><![CDATA[Justin Gordon]]></dc:creator><pubDate>Wed, 22 Jul 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Teach Me With Analogies: The AI Prompt That Makes Hard Things Actually Click]]></title><description><![CDATA[Most 'explain this' AI prompts hand you a wall of text you nod along to and forget. Here's a copy-paste prompt that forces the AI to teach with analogies, quiz you after each one, and keep going until you can explain it back. Plus how to reuse it for any codebase, PR, or concept.]]></description><link>https://shakacode.com/blog/teach-me-with-analogies-ai-prompt/</link><guid isPermaLink="false">https://shakacode.com/blog/teach-me-with-analogies-ai-prompt/</guid><dc:creator><![CDATA[Justin Gordon]]></dc:creator><pubDate>Wed, 22 Jul 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[We Designed a $65-70-a-Month Image Pipeline Without Replacing Cloudinary]]></title><description><![CDATA[Replacing a four-figure Cloudinary bill without replacing Cloudinary: a self-hosted sharp scaler behind Cloudflare, with R2 as a write-through originals mirror, for about $65-70 per month.]]></description><link>https://shakacode.com/blog/cloudinary-to-self-hosted-image-pipeline/</link><guid isPermaLink="false">https://shakacode.com/blog/cloudinary-to-self-hosted-image-pipeline/</guid><dc:creator><![CDATA[Sergey Tarasov]]></dc:creator><pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Moving 710 Million Time-Series Rows Off TimescaleDB Without Losing the Cache]]></title><description><![CDATA[Moving 710M time-series rows off TimescaleDB onto plain RDS Postgres. The blocker is not storage cost, it is cache residency - here is the JSONB packing design that keeps the working set in RAM.]]></description><link>https://shakacode.com/blog/timescaledb-to-postgres-jsonb-packing/</link><guid isPermaLink="false">https://shakacode.com/blog/timescaledb-to-postgres-jsonb-packing/</guid><dc:creator><![CDATA[Sergey Tarasov]]></dc:creator><pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[You're Leaving Next.js. Don't Trade One JS Backend for Another.]]></title><description><![CDATA[Teams are leaving Next.js — the real question is where they land. The case for keeping Rails as your backend and adopting TanStack Query, Router, and Table on the client, instead of trading one JavaScript meta-framework (TanStack Start) for another.]]></description><link>https://shakacode.com/blog/tanstack-with-react-on-rails/</link><guid isPermaLink="false">https://shakacode.com/blog/tanstack-with-react-on-rails/</guid><dc:creator><![CDATA[Justin Gordon]]></dc:creator><pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[How We Cut Our Demo Hosting Costs to Near-Zero with Scale-to-Zero on Control Plane]]></title><description><![CDATA[If your demos and review apps sit idle most of the day, ShakaCode can help them sleep on Control Plane, wake on the first click, and cut avoidable infrastructure spend without confusing visitors.]]></description><link>https://shakacode.com/blog/cut-demo-hosting-costs-with-scale-to-zero/</link><guid isPermaLink="false">https://shakacode.com/blog/cut-demo-hosting-costs-with-scale-to-zero/</guid><dc:creator><![CDATA[Justin Gordon]]></dc:creator><pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Things I Wish I Knew Before Using Terraform]]></title><description><![CDATA[Terraform is incredibly powerful. No doubt about it. But if you're like me, you probably started using it because you wanted to automate infrastructure, not spend your nights debugging why an aws…]]></description><link>https://shakacode.com/blog/things-i-wish-i-knew-before-using-terraform/</link><guid isPermaLink="false">https://shakacode.com/blog/things-i-wish-i-knew-before-using-terraform/</guid><dc:creator><![CDATA[Alexandre Borela]]></dc:creator><pubDate>Mon, 19 Jan 2026 00:00:00 GMT</pubDate></item><item><title><![CDATA[Choosing Between Kamal and Control Plane with ShakaCode]]></title><description><![CDATA[When selecting a platform for deploying your application, ShakaCode helps you weigh the strengths of Kamal versus Control Plane based on your specific needs.]]></description><link>https://shakacode.com/blog/choosing-between-kamal-control-plane-shakacode/</link><guid isPermaLink="false">https://shakacode.com/blog/choosing-between-kamal-control-plane-shakacode/</guid><dc:creator><![CDATA[Justin Gordon]]></dc:creator><pubDate>Sat, 12 Oct 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Why Stay Versus Move Away from Heroku?]]></title><description><![CDATA[Heroku's user-friendly environment makes it a popular choice for startups and early-stage applications.]]></description><link>https://shakacode.com/blog/why-stay-versus-move-away-from-heroku/</link><guid isPermaLink="false">https://shakacode.com/blog/why-stay-versus-move-away-from-heroku/</guid><dc:creator><![CDATA[Justin Gordon]]></dc:creator><pubDate>Thu, 10 Oct 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Maximizing Code Quality with Rails Pre-Commit and Pre-Push Hooks]]></title><description><![CDATA[By utilizing pre-commit and pre-push hooks, developers can automate various checks and tasks that contribute to maintaining high code quality standards.]]></description><link>https://shakacode.com/blog/maximizing-code-quality-with-rails-pre-commit-and-pre-push-hooks/</link><guid isPermaLink="false">https://shakacode.com/blog/maximizing-code-quality-with-rails-pre-commit-and-pre-push-hooks/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 09 Apr 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Streamlined Syntax - Unveiling the Power of Slim Template Language]]></title><description><![CDATA[Slim is a templating language designed to streamline the view syntax to its fundamental elements while avoiding cryptic complexity.]]></description><link>https://shakacode.com/blog/streamlined-syntax-unveiling-the-power-of-slim-template-language/</link><guid isPermaLink="false">https://shakacode.com/blog/streamlined-syntax-unveiling-the-power-of-slim-template-language/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 03 Apr 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Level Up Your Ruby Code with Draper Decorators]]></title><description><![CDATA[Draper provides a simple, elegant way to separate presentation and model logic in Rails applications.]]></description><link>https://shakacode.com/blog/level-up-your-ruby-code-with-draper-decorators/</link><guid isPermaLink="false">https://shakacode.com/blog/level-up-your-ruby-code-with-draper-decorators/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 02 Apr 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Keeping your database migrations strong with strong_migrations gem]]></title><description><![CDATA[Enhance the reliability and safety of your migration tasks, reducing the risk of data loss or corruption using strong_migrations.]]></description><link>https://shakacode.com/blog/keeping-your-database-migrations-strong-with-strong_migrations-gem/</link><guid isPermaLink="false">https://shakacode.com/blog/keeping-your-database-migrations-strong-with-strong_migrations-gem/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 27 Mar 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Feedback on ReScript]]></title><description><![CDATA[A few months ago, I asked fellow devs to give honest feedback on their experience with ReScript, and this is what I got in replies.]]></description><link>https://shakacode.com/blog/rescript-feedback/</link><guid isPermaLink="false">https://shakacode.com/blog/rescript-feedback/</guid><dc:creator><![CDATA[Alex Fedoseev]]></dc:creator><pubDate>Wed, 27 Mar 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Supercharge your Rails App with Active Admin]]></title><description><![CDATA[Active Admin is a gem that simplifies the creation of administrative interfaces for your Ruby on Rails applications.]]></description><link>https://shakacode.com/blog/supercharge-your-rails-app-with-active-admin/</link><guid isPermaLink="false">https://shakacode.com/blog/supercharge-your-rails-app-with-active-admin/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 26 Mar 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Introducing Playwright Support in the cypress-on-rails Ruby Gem]]></title><description><![CDATA[Web developers understand the importance of reliable end-to-end testing frameworks to ensure the quality of our applications. That's why we're thrilled to announce Playwright support in the cypress-on-rails Ruby gem!]]></description><link>https://shakacode.com/blog/introducing-playwright-support-in-cypress-on-rails/</link><guid isPermaLink="false">https://shakacode.com/blog/introducing-playwright-support-in-cypress-on-rails/</guid><dc:creator><![CDATA[Justin Gordon]]></dc:creator><pubDate>Wed, 20 Mar 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Unlocking SEO-Friendly URLs with FriendlyID Gem]]></title><description><![CDATA[FriendlyId is a Ruby gem that extends Active Record functionality. It lets you create custom URLs for your models using text strings instead of numeric IDs.]]></description><link>https://shakacode.com/blog/unlocking-seo-friendly-urls-with-friendlyid-gem/</link><guid isPermaLink="false">https://shakacode.com/blog/unlocking-seo-friendly-urls-with-friendlyid-gem/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 19 Mar 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Boost Your Ruby on Rails Application Performance with Bullet Gem]]></title><description><![CDATA[Ruby on Rails developers know N + 1 queries are performance killers. Bullet helps you spot them in your code before they become bottlenecks.]]></description><link>https://shakacode.com/blog/eliminate-N-1-queries-with-bullet/</link><guid isPermaLink="false">https://shakacode.com/blog/eliminate-N-1-queries-with-bullet/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 13 Mar 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Simplify Your Ruby Application Configuration with Figaro Gem]]></title><description><![CDATA[Figaro simplifies the process of securely storing sensitive information.]]></description><link>https://shakacode.com/blog/simplify-your-ruby-application-configuration-with-figaro-gem/</link><guid isPermaLink="false">https://shakacode.com/blog/simplify-your-ruby-application-configuration-with-figaro-gem/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 12 Mar 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Debugging Made Easy with Pry]]></title><description><![CDATA[The Pry gem offers a robust alternative to the standard IRB shell for Ruby. Easily configure your Rails app to utilize Pry for improved debugging and development efficiency.]]></description><link>https://shakacode.com/blog/debugging-made-easy-with-pry/</link><guid isPermaLink="false">https://shakacode.com/blog/debugging-made-easy-with-pry/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 06 Mar 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Empower Your Rails Application with CanCanCan Gem]]></title><description><![CDATA[With CanCanCan streamlines permission management for your Rails app.]]></description><link>https://shakacode.com/blog/empower-your-rails-application-with-cancancan-gem/</link><guid isPermaLink="false">https://shakacode.com/blog/empower-your-rails-application-with-cancancan-gem/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 05 Mar 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Comprehensive Guide to SimpleCov Gem]]></title><description><![CDATA[SimpleCov is a gem used for code coverage analysis in Ruby projects, providing insights into how thoroughly the codebase is being tested.]]></description><link>https://shakacode.com/blog/comprehensive-guide-to-simplecov-gem-in-rails/</link><guid isPermaLink="false">https://shakacode.com/blog/comprehensive-guide-to-simplecov-gem-in-rails/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 28 Feb 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Mastering Authorization in Rails with Pundit]]></title><description><![CDATA[Discover how Pundit promotes a clear separation of concerns, allowing you to focus on building features without worrying about intricate permission checks.]]></description><link>https://shakacode.com/blog/mastering-authorization-in-rails-with-pundit/</link><guid isPermaLink="false">https://shakacode.com/blog/mastering-authorization-in-rails-with-pundit/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 27 Feb 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Exploring the FFaker Gem - A Comprehensive Guide]]></title><description><![CDATA[FFaker simplifies the process of generating fake data, allowing you to focus on what truly matters.]]></description><link>https://shakacode.com/blog/exploring-the-ffaker-gem/</link><guid isPermaLink="false">https://shakacode.com/blog/exploring-the-ffaker-gem/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 21 Feb 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Streamlining Rails Development with GitHub CI/CD]]></title><description><![CDATA[With Rails 8, GitHub CI files will be added by default to the new applications.]]></description><link>https://shakacode.com/blog/rails-8-adds-github-ci-files/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-8-adds-github-ci-files/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 20 Feb 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[RuboCop comes built-in with Rails 8.0]]></title><description><![CDATA[Wondering what RuboCop is? Starting with Rails 8.0, it's included by default to automatically check your code for quality and adherence to coding standards.]]></description><link>https://shakacode.com/blog/rails-8-adds-rubocop-by-default/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-8-adds-rubocop-by-default/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 14 Feb 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 8.0 adds Brakeman]]></title><description><![CDATA[With Rails 8.0, brakeman will be added by default to your application, enhancing its security.]]></description><link>https://shakacode.com/blog/rails-8-adds-brakeman-by-default/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-8-adds-brakeman-by-default/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 13 Feb 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 8 adds explain support to ActiveRecord::Relation]]></title><description><![CDATA[With Rails 8, the object returned by explain now responds to pluck, first, last, average, count, maximum, minimum, and sum.]]></description><link>https://shakacode.com/blog/rails-8-extends-explain-support-to-activerecord-relations/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-8-extends-explain-support-to-activerecord-relations/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 07 Feb 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 8.0 adds allow_browser to set minimum versions for application]]></title><description><![CDATA[Rails 8.0 adds the allow_browser method to specify the browser versions, allowing access to all actions.]]></description><link>https://shakacode.com/blog/rails-8-adds-allow_browser-to-set-minimum-version-for-apps/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-8-adds-allow_browser-to-set-minimum-version-for-apps/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 06 Feb 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 adds support for MessagePack as a Message Serializer]]></title><description><![CDATA[Rails 7.1 welcomes MessagePack, a binary data format delivering significant payload size reduction and performance improvements over traditional serializers like JSON.]]></description><link>https://shakacode.com/blog/rails-7-1-adds-message-pack-as-message-serializer/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-adds-message-pack-as-message-serializer/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 31 Jan 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Ruby 3.3.0]]></title><description><![CDATA[Ruby 3.3.0 has been released! Take advantage of what's new. Check out this summary of features, improvements, additions, and removals.]]></description><link>https://shakacode.com/blog/ruby-3-3-0/</link><guid isPermaLink="false">https://shakacode.com/blog/ruby-3-3-0/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 30 Jan 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Headless Chrome Ruby - Conquering Automation with Ferrum]]></title><description><![CDATA[Ferrum streamlines Chrome automation in Ruby by establishing a WebSocket connection and elegantly exposing the Chrome DevTools Protocol through a well-crafted API.]]></description><link>https://shakacode.com/blog/headless-chrome-automation-in-rails-using-ferrum/</link><guid isPermaLink="false">https://shakacode.com/blog/headless-chrome-automation-in-rails-using-ferrum/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 24 Jan 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Using GraphQL in Ruby on Rails]]></title><description><![CDATA[GraphQL (flexible, strong typing) empowers front-end devs to query Rails data without much backend fuss.]]></description><link>https://shakacode.com/blog/graphql-in-ruby-on-rails/</link><guid isPermaLink="false">https://shakacode.com/blog/graphql-in-ruby-on-rails/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 23 Jan 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[How to upgrade Rails 6.1 to 7.0]]></title><description><![CDATA[A step-by-step guide to upgrading Rails from 6.1 to 7.0.]]></description><link>https://shakacode.com/blog/upgrade-rails-6-1-to-7/</link><guid isPermaLink="false">https://shakacode.com/blog/upgrade-rails-6-1-to-7/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 17 Jan 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 8.0 adds rate limiting to ActionController]]></title><description><![CDATA[Rails 8.0 introduces built-in rate-limiting capabilities for controller actions, allowing you to fine-tune user access and prevent abuse.]]></description><link>https://shakacode.com/blog/rails-8-adds-rate-limiting-to-action-controller/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-8-adds-rate-limiting-to-action-controller/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 16 Jan 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Upgrading Rails 5.2 to 6]]></title><description><![CDATA[Upgrading to Rails 6 made easy, learn the steps and discover crucial tips for a smooth transition.]]></description><link>https://shakacode.com/blog/upgrade-rails-5-2-to-6/</link><guid isPermaLink="false">https://shakacode.com/blog/upgrade-rails-5-2-to-6/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 10 Jan 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 adds path_params option to url_for for flexible URL generation]]></title><description><![CDATA[When using url_for in Rails 7.1, leverage the new path_params option to craft URLs with specific path parameters precisely.]]></description><link>https://shakacode.com/blog/rails-7-1-adds-path_params-options-to-url_for-helper/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-adds-path_params-options-to-url_for-helper/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 09 Jan 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Conquering Code Clutter - A Guide to Rails Concerns]]></title><description><![CDATA[In Ruby on Rails, ActiveSupport's Concern is a module that allows you to encapsulate shared behaviour and code in a modular and reusable way.]]></description><link>https://shakacode.com/blog/rails-concerns/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-concerns/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 03 Jan 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Ready, Set, Deploy! Rails 7.1 Gets Docker Support]]></title><description><![CDATA[With Rails 7.1, Dockerfiles make deploying apps to production environments a breeze with Docker.]]></description><link>https://shakacode.com/blog/rails-7-1-adds-default-dockerfiles/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-adds-default-dockerfiles/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 02 Jan 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 adds ActiveRecord regroup]]></title><description><![CDATA[With Rails 7.1, ActiveRecord regroup allows you to change a previously set group statement.]]></description><link>https://shakacode.com/blog/rails-7-1-adds-activerecord-regroup/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-adds-activerecord-regroup/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 27 Dec 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 empowers the resetting of singular associations]]></title><description><![CDATA[Resetting singular associations unloads the cached associate record and causes the subsequent access to query it from the database.]]></description><link>https://shakacode.com/blog/rails-7-1-allows-resetting-singular-associations/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-allows-resetting-singular-associations/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 26 Dec 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 ActiveStorage's TransformJob cleverly pre-processes videos and PDFs for smooth previews]]></title><description><![CDATA[Rails 7.1 ActiveStorage's TransformJob expands its pre-processing power to videos and PDFs, enriching preview possibilities beyond images.]]></description><link>https://shakacode.com/blog/rails-7-1-activestorage-transform_job-preprocess-previewable/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-activestorage-transform_job-preprocess-previewable/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 20 Dec 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 allows ActiveRecord reselect to accept a hash]]></title><description><![CDATA[With Rails 7.1, developers can now use intuitive hash syntax with the reselect method for more transparent and flexible database queries.]]></description><link>https://shakacode.com/blog/rails-7-1-allows-activerecord-reselect-to-accept-hash/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-allows-activerecord-reselect-to-accept-hash/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 19 Dec 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails introduce powerful ErrorReporter#unexpected for controlled error reporting]]></title><description><![CDATA[Rails offers a game-changer ErrorReporter#unexpected for developers facing tricky precondition violations.]]></description><link>https://shakacode.com/blog/rails-adds-errorreporter-unexpected-for-error-reporting/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-adds-errorreporter-unexpected-for-error-reporting/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 13 Dec 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 introduces a new option to exclude all custom methods generated by the ActiveRecord::Enum]]></title><description><![CDATA[Rails 7.1 lets you turn off the creation of custom methods for enum attributes, giving you more control over your models.]]></description><link>https://shakacode.com/blog/rails-7-1-adds-the-option-to-disable-activerecord-enum-methods/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-adds-the-option-to-disable-activerecord-enum-methods/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 12 Dec 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 allows using aliased attributes with insert_all and upsert_all]]></title><description><![CDATA[As of Rails 7.1, you can utilize aliased attributes when employing the insert_all and upsert_all methods.]]></description><link>https://shakacode.com/blog/rails-7-1-allows-using-aliased-attributes-in-insert_all-upsert_all/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-allows-using-aliased-attributes-in-insert_all-upsert_all/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 06 Dec 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 adds ActiveRecord::Base::generates_token_for]]></title><description><![CDATA[In Rails 7.1, ActiveRecord::Base::generates_token_for provides a convenient way to generate and validate tokens for various use cases in Rails applications.]]></description><link>https://shakacode.com/blog/rails-7-1-introduces-active-record-generates_token_for/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-introduces-active-record-generates_token_for/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 05 Dec 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 allows passing options to ActiveRecord explain]]></title><description><![CDATA[Rails 7.1's explain method now accepts options for more detailed query insights.]]></description><link>https://shakacode.com/blog/rails-7-1-allows-passing-options-to-activerecord-explain/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-allows-passing-options-to-activerecord-explain/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 29 Nov 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 adds support for multiple-column ordering in Activerecord]]></title><description><![CDATA[Rails 7.1 supports multiple-column ordering for find_each, find_in_batches and in_batches.]]></description><link>https://shakacode.com/blog/rails-7-1-adds-support-for-multi-column-ordering-in-activerecord/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-adds-support-for-multi-column-ordering-in-activerecord/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 28 Nov 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 adds the ability to autoload the lib directory]]></title><description><![CDATA[Rails 7.1 introduces the autoload lib method and allows one to pass the option :ignore to avoid subdirectories that should not be autoloaded.]]></description><link>https://shakacode.com/blog/rails-7-1-introduces-config-autoload_lib/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-introduces-config-autoload_lib/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 22 Nov 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[An introduction to test suite optimization in Ruby]]></title><description><![CDATA[Going over some common pitfalls that might be making your tests slower than they need to be, and what to do about them.]]></description><link>https://shakacode.com/blog/an-introduction-to-test-suite-optimization-in-ruby/</link><guid isPermaLink="false">https://shakacode.com/blog/an-introduction-to-test-suite-optimization-in-ruby/</guid><dc:creator><![CDATA[Samuel de Moura]]></dc:creator><pubDate>Tue, 21 Nov 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Flaky Visual Regression Tests, and what to do about them]]></title><description><![CDATA[Let's go over some tips about what to do when your visual regression tests are failing intermittently for no apparent reason.]]></description><link>https://shakacode.com/blog/flaky-visual-regression-tests-and-what-to-do-about-them/</link><guid isPermaLink="false">https://shakacode.com/blog/flaky-visual-regression-tests-and-what-to-do-about-them/</guid><dc:creator><![CDATA[Samuel de Moura]]></dc:creator><pubDate>Thu, 16 Nov 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 limits the maximum length of auto-generated index names]]></title><description><![CDATA[Rails 7.1 defines a 62-byte maximum limit for auto-generated index names.]]></description><link>https://shakacode.com/blog/rails-7-1-limits-max-length-of-auto-generated-index-names/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-limits-max-length-of-auto-generated-index-names/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 14 Nov 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 adds an option to extract the sample rate of an audio file]]></title><description><![CDATA[In Rails 7.1, leverage ActiveStorage::AudioAnalyzer to extract an audio file's sample rate, bit rate, and duration.]]></description><link>https://shakacode.com/blog/rails-7-1-adds-option-to-extract-audio-sample-rate/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-adds-option-to-extract-audio-sample-rate/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 08 Nov 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 allows ErrorReporter to handle several error classes]]></title><description><![CDATA[With Rails 7.1, you can use the Rails.error.handle method to deal with multiple error classes.]]></description><link>https://shakacode.com/blog/rails-7-1-allow-error-reporter-to-handle-several-error-classes/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-allow-error-reporter-to-handle-several-error-classes/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 07 Nov 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 adds support for infinite ranges for LengthValidators]]></title><description><![CDATA[With Rails 7.1, you can pass an infinite range to the :in/:with options of length validators.]]></description><link>https://shakacode.com/blog/rails-7-1-adds-support-for-infinite-range-for-length-validators/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-adds-support-for-infinite-range-for-length-validators/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 31 Oct 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 expands its support for ActiveRecord asynchronous queries]]></title><description><![CDATA[With Rails 7.1, you can execute the aggregate queries asynchronously.]]></description><link>https://shakacode.com/blog/rails-7-1-active-record-api-for-general-async-queries/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-active-record-api-for-general-async-queries/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Mon, 30 Oct 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 raises an error on generating model attributes with dangerous name]]></title><description><![CDATA[In Rails 7.1, generating a model with attributes named keywords like hash or save would raise an error.]]></description><link>https://shakacode.com/blog/rails-7-1-raises-error-on-generating-model-attributes-with-dangerous-name/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-raises-error-on-generating-model-attributes-with-dangerous-name/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Fri, 27 Oct 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 adds validation to enums]]></title><description><![CDATA[With Rails 7.1, if you want to validate the enum values before saving, use the option `:validate`.]]></description><link>https://shakacode.com/blog/rails-7-1-adds-validation-to-enums/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-adds-validation-to-enums/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Thu, 26 Oct 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 allows matching exception messages to assert_raises assertion]]></title><description><![CDATA[In Rails 7.1, you can now use a single assert_raises assertion to match both the exception class and the message.]]></description><link>https://shakacode.com/blog/rails-7-1-allows-matching-exception-messages-to-assert_raises-assertion/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-allows-matching-exception-messages-to-assert_raises-assertion/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 25 Oct 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 adds Object#with method]]></title><description><![CDATA[Rails 7.1 implements object#with as a method that allows you to set and restore public attributes around a block.]]></description><link>https://shakacode.com/blog/rails-7-1-adds-object-with-method/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-adds-object-with-method/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 24 Oct 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 allows attaching file or pathname to has_one_attached]]></title><description><![CDATA[With Rails 7.1, users can attach a file or pathname directly to has_one_attached associations. This makes it easier to attach files already stored on the filesystem.]]></description><link>https://shakacode.com/blog/rails-7-1-allows-attaching-file-or-pathname-to-has-one-attached/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-allows-attaching-file-or-pathname-to-has-one-attached/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Mon, 23 Oct 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails adds the ability to pass the expires_at option to ActiveStorage::Blog#signed_id]]></title><description><![CDATA[The expires_at option for ActiveStorage Blob signed IDs allows you to specify when the signed ID will expire. This can be useful for sharing sensitive files or files you don't want publicly accessible forever.]]></description><link>https://shakacode.com/blog/rails-add-expires_at-option-to-active-storage-blob-signed-id/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-add-expires_at-option-to-active-storage-blob-signed-id/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Fri, 20 Oct 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Ruby 3.3 introduces range overlap? method]]></title><description><![CDATA[The Ruby team introduces the range overlap? method that returns true or false if the two range overlaps each other or not.]]></description><link>https://shakacode.com/blog/ruby-3-3-introduces-range-overlap-method/</link><guid isPermaLink="false">https://shakacode.com/blog/ruby-3-3-introduces-range-overlap-method/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 17 Oct 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Metaprogramming in Ruby]]></title><description><![CDATA[Explore about metaprogramming in Ruby and how to use it.]]></description><link>https://shakacode.com/blog/metaprogramming-in-ruby/</link><guid isPermaLink="false">https://shakacode.com/blog/metaprogramming-in-ruby/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 19 Sep 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 gives templates more control over the locals they receive]]></title><description><![CDATA[Rails 7.1 introduces an option that enables templates to have required arguments with default values.]]></description><link>https://shakacode.com/blog/rails-7-1-allows-templates-to-define-accepted-locals/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-allows-templates-to-define-accepted-locals/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 13 Sep 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Ruby 3.2 introduces Data, a new core class for immutable value objects]]></title><description><![CDATA[Ruby 3.2 adds Data that provides a convenient way to define simple classes for value-alike objects.]]></description><link>https://shakacode.com/blog/ruby-3-2-adds-a-new-data-class/</link><guid isPermaLink="false">https://shakacode.com/blog/ruby-3-2-adds-a-new-data-class/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 12 Sep 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 makes it possible to execute tests for a given range of lines in a file]]></title><description><![CDATA[In Rails 7.1, you can execute tests for a given range of lines (a-b) by passing the range to the test command.]]></description><link>https://shakacode.com/blog/rails-7-1-adds-support-to-run-test-for-given-line-range/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-adds-support-to-run-test-for-given-line-range/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 06 Sep 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 removes the secrets:setup command and deprecates secrets:edit and secrets:show commands]]></title><description><![CDATA[Rails 7.1 removes the deprecated setup command of secrets and adds a deprecation warning for secrets edit and show commands.]]></description><link>https://shakacode.com/blog/rails-7-1-removes-secret-setup-command-and-deprecates-secret-show-edit-commands/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-removes-secret-setup-command-and-deprecates-secret-show-edit-commands/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 05 Sep 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 makes increment_counter and decrement_counter accept a by argument]]></title><description><![CDATA[In Rails 7.1, the increment_counter and decrement_counter methods can now be passed an argument to increment or decrement the counter by any value.]]></description><link>https://shakacode.com/blog/rails-7-1-increment-decrement-counter-accepts-a-by-argument/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-increment-decrement-counter-accepts-a-by-argument/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Thu, 31 Aug 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Shakapacker 7]]></title><description><![CDATA[Shakapacker, Webpacker's official successor, is a Ruby gem that integrates webpack into Ruby on Rails. Version 6 had references to both webpacker and shakapacker, but with version 7, Shakapacker is now entirely Shakapacker.]]></description><link>https://shakacode.com/blog/shakapacker-7/</link><guid isPermaLink="false">https://shakacode.com/blog/shakapacker-7/</guid><dc:creator><![CDATA[Mostafa Ahangarha]]></dc:creator><pubDate>Wed, 30 Aug 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 adds support for Array#intersect? to ActiveRecord::Relation]]></title><description><![CDATA[In Rails 7.1, the Array#intersect? method can be used to find if two ActiveRecord::Relation objects intersect or not.]]></description><link>https://shakacode.com/blog/rails-7-1-adds-support-for-intersect-to-activerecord-relation/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-1-adds-support-for-intersect-to-activerecord-relation/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 22 Aug 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 adds the ability to raise errors on missing callback actions]]></title><description><![CDATA[In Rails 7.1, you can now configure your controllers to throw an error if the only or except options in controller callbacks refer to actions that don't exist. This helps detect and fix typos and other mistakes in your controller code.]]></description><link>https://shakacode.com/blog/rails-adds-ability-to-raise-error-on-missing-callback-actions/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-adds-ability-to-raise-error-on-missing-callback-actions/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 09 Aug 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 adds the ability to defer the unique constraints in PostgreSQL]]></title><description><![CDATA[With Rails 7.1, you can delay the unique constraints check using the deferrable option.]]></description><link>https://shakacode.com/blog/defer-unique-constraints-in-postgresql-with-rails/</link><guid isPermaLink="false">https://shakacode.com/blog/defer-unique-constraints-in-postgresql-with-rails/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 08 Aug 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 enhances PostgreSQL enum functionality]]></title><description><![CDATA[Rails 7.1 adds rename_enum, add_enum_value and rename_enum_value commands to DB migration extending support for PostgreSQL enums.]]></description><link>https://shakacode.com/blog/rails-7-enhances-postgresql-enum-functionality/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-7-enhances-postgresql-enum-functionality/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 02 Aug 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Normalize Data with Rails 7.1]]></title><description><![CDATA[Rails 7.1 adds ActiveRecord::Base::normalizes method to standardize the data before saving it to the database.]]></description><link>https://shakacode.com/blog/rails-add-normalize-to-activerecord/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-add-normalize-to-activerecord/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 01 Aug 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 adds --parent option to the controllers]]></title><description><![CDATA[Rails 7.1 controller generator accepts the --parent option. It allows to generate a controller that inherits from the specified parent controller.]]></description><link>https://shakacode.com/blog/rails-adds-parent-option-to-controller-generator/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-adds-parent-option-to-controller-generator/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 26 Jul 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 adds picture_tag helper to support HTML5 picture element]]></title><description><![CDATA[Rails 7.1 adds the picture_tag helper method that renders the HTML picture tag for handling responsive images.]]></description><link>https://shakacode.com/blog/rails-add-picture_tag-helper/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-add-picture_tag-helper/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 25 Jul 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 adds routes --unused option to detect extraneous routes]]></title><description><![CDATA[Discover extraneous routes in your Rails application effortlessly by utilizing the --unused option with the rails routes command.]]></description><link>https://shakacode.com/blog/identify-unused-routes-in-rails-7/</link><guid isPermaLink="false">https://shakacode.com/blog/identify-unused-routes-in-rails-7/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 19 Jul 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 adds ActiveJob#perform_all_later to enqueue multiple jobs at once]]></title><description><![CDATA[Rails 7.1 adds perform_all_later to ActiveJob that enqueues many jobs at once, eliminating repeated Redis roundtrips.]]></description><link>https://shakacode.com/blog/rails-adds-perform_all_later-to-activejob/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-adds-perform_all_later-to-activejob/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 18 Jul 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 introduces deliver callbacks for ActionMailer]]></title><description><![CDATA[Rails 7.1 adds before_deliver and after_deliver callbacks to ActionMailer to hook into the lifecycle events of the mail delivery.]]></description><link>https://shakacode.com/blog/rails_add_deliver_callbacks_to_action_mailer/</link><guid isPermaLink="false">https://shakacode.com/blog/rails_add_deliver_callbacks_to_action_mailer/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Tue, 11 Jul 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Rails 7.1 makes ActiveRecord query cache an LRU]]></title><description><![CDATA[With Rails 7.1, the ActiveRecord query cache uses the LRU strategy and removes the least recently used queries.]]></description><link>https://shakacode.com/blog/rails-make-active-records-query-cache-an-lru/</link><guid isPermaLink="false">https://shakacode.com/blog/rails-make-active-records-query-cache-an-lru/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Wed, 05 Jul 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Pull Requests (PRs) - Creating and Review]]></title><description><![CDATA[Tips and ideas on how to make the code review process as simple and painless as it can be — both for those reviewing and those preparing the code for review]]></description><link>https://shakacode.com/blog/pull-requests-creating-and-review/</link><guid isPermaLink="false">https://shakacode.com/blog/pull-requests-creating-and-review/</guid><dc:creator><![CDATA[Justin Gordon]]></dc:creator><pubDate>Fri, 17 Feb 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Shortcut (Jira/Trello/Github) Toggl Time and Task Tracking]]></title><description><![CDATA[Clear and regular communications regarding time spent on various tasks are critical to having good client relationships. To this end, ShakaCode leverages Toggl with Shortcut to provide reports to our clients so they can assess the overall level of effort for various tasks and efficiency of ShakaCode development efforts.]]></description><link>https://shakacode.com/blog/shortcut-jira-trello-github-toggl-time-and-task-tracking/</link><guid isPermaLink="false">https://shakacode.com/blog/shortcut-jira-trello-github-toggl-time-and-task-tracking/</guid><dc:creator><![CDATA[Justin Gordon]]></dc:creator><pubDate>Sun, 12 Feb 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[ShakaCode Consulting Versus Full-Time Hires and Staff Augmentation]]></title><description><![CDATA[Consulting Versus Full-Time Hires]]></description><link>https://shakacode.com/blog/consulting-vs-full-time-hires/</link><guid isPermaLink="false">https://shakacode.com/blog/consulting-vs-full-time-hires/</guid><dc:creator><![CDATA[Justin Gordon]]></dc:creator><pubDate>Sat, 11 Feb 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[thiserror, anyhow, or How I Handle Errors in Rust Apps]]></title><description><![CDATA[A quick note on error handling in Rust.]]></description><link>https://shakacode.com/blog/thiserror-anyhow-or-how-i-handle-errors-in-rust-apps/</link><guid isPermaLink="false">https://shakacode.com/blog/thiserror-anyhow-or-how-i-handle-errors-in-rust-apps/</guid><dc:creator><![CDATA[Alex Fedoseev]]></dc:creator><pubDate>Wed, 16 Nov 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[React on Rails: File-System-Based Automated Bundle Generation]]></title><description><![CDATA[Automate bundle generation in Rails app using React on Rails.]]></description><link>https://shakacode.com/blog/react-on-rails-file-system-based-automated-bundle-generation/</link><guid isPermaLink="false">https://shakacode.com/blog/react-on-rails-file-system-based-automated-bundle-generation/</guid><dc:creator><![CDATA[Pulkit]]></dc:creator><pubDate>Wed, 19 Oct 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[React on Rails: How to use different versions of a file for client and server rendering]]></title><description><![CDATA[Let's explore the three ways to use different code for server vs. client rendering.]]></description><link>https://shakacode.com/blog/how-to-use-different-versions-of-a-file-for-client-and-server-rendering/</link><guid isPermaLink="false">https://shakacode.com/blog/how-to-use-different-versions-of-a-file-for-client-and-server-rendering/</guid><dc:creator><![CDATA[Justin Gordon]]></dc:creator><pubDate>Tue, 20 Sep 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[Sending Bytes]]></title><description><![CDATA[A note on a data partition during network communications.]]></description><link>https://shakacode.com/blog/sending-bytes/</link><guid isPermaLink="false">https://shakacode.com/blog/sending-bytes/</guid><dc:creator><![CDATA[Alex Fedoseev]]></dc:creator><pubDate>Sat, 05 Jun 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[RailsConf 2021 -- Implicit to Explicit: Decoding Ruby's Magical Syntax]]></title><description><![CDATA[Does a Rails model or config file seem like a magical syntax? Or can you read any Ruby code and understand it as the interpreter does?]]></description><link>https://shakacode.com/blog/railsconf-2021-implicit-to-explicit-decoding-rubys-magical-syntax/</link><guid isPermaLink="false">https://shakacode.com/blog/railsconf-2021-implicit-to-explicit-decoding-rubys-magical-syntax/</guid><dc:creator><![CDATA[Justin Gordon]]></dc:creator><pubDate>Sun, 11 Apr 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[Managing External Data Sources in End-to-End Testing for cross-platform React Native Application]]></title><description><![CDATA[End to end(E2E) testing is a traditional testing methodology where the aim is to examine how an application works by assessing the flow from start to end. In Scenario-Based End-to-End Testing, Application is examined from all layers – front end to backend along with its interfaces and the endpoints]]></description><link>https://shakacode.com/blog/managing-external-data-sources-in-e2e-testing-for-cross-platform-react-native-application/</link><guid isPermaLink="false">https://shakacode.com/blog/managing-external-data-sources-in-e2e-testing-for-cross-platform-react-native-application/</guid><dc:creator><![CDATA[Pulkit]]></dc:creator><pubDate>Fri, 05 Feb 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[Cool Things You Can Do with First-Class Modules in ReScriptReact]]></title><description><![CDATA[This post is about not so widely known advanced feature of the language, that helps to build handy abstractions over ReScriptReact components.]]></description><link>https://shakacode.com/blog/cool-things-you-can-do-with-first-class-modules-in-rescript-react/</link><guid isPermaLink="false">https://shakacode.com/blog/cool-things-you-can-do-with-first-class-modules-in-rescript-react/</guid><dc:creator><![CDATA[Alex Fedoseev]]></dc:creator><pubDate>Mon, 02 Nov 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[A definitive guide to E2E Testing CI Setup for React-Native using Cavy-CLI]]></title><description><![CDATA[React Native is a cross-platform mobile application development framework. It saves development time & cost and adds the ability to ship OTA (over the air) updates.]]></description><link>https://shakacode.com/blog/a-definite-guide-to-e2e-ci-setup-react-native-using-cavy-cli/</link><guid isPermaLink="false">https://shakacode.com/blog/a-definite-guide-to-e2e-ci-setup-react-native-using-cavy-cli/</guid><dc:creator><![CDATA[Pulkit]]></dc:creator><pubDate>Fri, 09 Oct 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[Manage Rails app business logic using ActiveInteraction gem]]></title><description><![CDATA[Let's dive into managing Rails application-specific business logic using ActiveInteraction.]]></description><link>https://shakacode.com/blog/manage-rails-app-business-logic-using-activeInteraction-gem/</link><guid isPermaLink="false">https://shakacode.com/blog/manage-rails-app-business-logic-using-activeInteraction-gem/</guid><dc:creator><![CDATA[Alkesh Ghorpade]]></dc:creator><pubDate>Sat, 29 Aug 2020 00:00:00 GMT</pubDate></item></channel></rss>