Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
4118c47
SEO improvements
pftg Sep 26, 2025
5aa1aa1
SEO improvements
pftg Sep 26, 2025
a471537
plan the tech debt cleanup
pftg Sep 26, 2025
77732f0
optimizations
pftg Sep 26, 2025
094e263
Shameless green: add .c-responsive-preview-content dual-class at line…
pftg Sep 26, 2025
70d86aa
Micro-step: extend .fl-responsive-preview-content input button at lin…
pftg Sep 26, 2025
d742a48
Shameless green: add .c-responsive-preview-content submit at line 3102
pftg Sep 26, 2025
9a4b10c
Flocking step 1: identify .fl-responsive-preview-content button patte…
pftg Sep 26, 2025
1776e50
Shameless green: add .c-full-width dual-class at line 354
pftg Sep 26, 2025
d61ab70
Flocking step 2: find smallest difference in .fl-photo component at l…
pftg Sep 26, 2025
c963921
Flocking step 3: make smallest change for .c-fixed-width complex sele…
pftg Sep 26, 2025
f54ff89
CSS Migration Phase 7: Micro-change 1 - Add c-form-field dual-class s…
pftg Sep 26, 2025
bf6680c
CSS Migration Phase 7: Micro-change 2 - Add c-form-error dual-class s…
pftg Sep 26, 2025
9b196fc
CSS Migration Phase 8: Micro-change 1 - Add c-widget dual-class support
pftg Sep 26, 2025
8b2a02b
CSS Migration Phase 9: Micro-change 1 - Add c-animation dual-class su…
pftg Sep 26, 2025
6a70ec5
CSS Migration Phase 9: Micro-change 2 - Add c-animated dual-class sup…
pftg Sep 26, 2025
5fe308d
CSS Migration Phase 9: Micro-change 3 - Complete c-animated dual-clas…
pftg Sep 26, 2025
d40a551
CSS Migration Phase 9: Micro-change 4 - Convert c-slideshow to dual-c…
pftg Sep 26, 2025
de3ba88
CSS Migration Phase 9: Micro-change 5 - Convert nested slideshow imag…
pftg Sep 26, 2025
0de2956
CSS Migration Phase 9: Micro-change 6 - Convert c-slideshow-social to…
pftg Sep 26, 2025
0476a5e
CSS Migration Phase 9: Micro-change 7 - Complete slideshow social uni…
pftg Sep 26, 2025
f8bd0dd
CSS Migration Phase 10: Micro-change 1 - Convert fl-col pseudo-elemen…
pftg Sep 26, 2025
b6fb606
CSS Migration Phase 10: Micro-change 2 - Complete fl-col clearfix aft…
pftg Sep 26, 2025
3ddfce7
CSS Migration Phase 10: Micro-change 3 - Convert fl-row pseudo-elemen…
pftg Sep 26, 2025
2e6847e
CSS Migration Phase 10: Micro-change 4 - Complete fl-row clearfix aft…
pftg Sep 26, 2025
563e71f
Shameless green: add .c-rich-text dual-class to main selector
pftg Sep 26, 2025
1d90436
Shameless green: add .c-content-text dual-class to content block
pftg Sep 26, 2025
fd8f6d9
Shameless green: add .c-content-text dual-class to font-weight inheri…
pftg Sep 26, 2025
3a88ae9
CSS Migration Phase 2 Tier 2: Add .c-menu dual-class to FL-Builder me…
pftg Sep 26, 2025
3b00dd9
CSS Migration Phase 2 Tier 2: Add .c-menu-item dual-class to navigati…
pftg Sep 26, 2025
263ff28
CSS Migration Phase 2 Tier 2: Create c-pagination component with FL-B…
pftg Sep 26, 2025
ef48f78
CSS Micro-change 1: Apply utility classes to safe test templates
pftg Sep 26, 2025
9bab44a
Apply utility classes to test-service.html template
pftg Sep 26, 2025
597e5e4
Replace inline style with utility class in test-testimonials.html
pftg Sep 26, 2025
cceffb2
Add text centering utilities to test-usecase.html header
pftg Sep 26, 2025
e63f2d8
Enhance shortcodes with utility classes for better reusability
pftg Sep 26, 2025
5434cb3
fixes
pftg Sep 26, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,19 @@ cover_image: https://raw.githubusercontent.com/jetthoughts/jetthoughts.github.io
metatags:
image: cover.jpeg
slug: best-practices-for-optimizing-ruby-on-rails-performance
faqs:
- question: "Why is Rails performance optimization important?"
answer: "Rails performance optimization is crucial for SEO rankings (search engines favor faster websites), better user experience with faster page loads, and cost savings through reduced server resource usage and hosting expenses."
- question: "What are the most effective ways to optimize Rails database performance?"
answer: "Use database indexing, optimize ActiveRecord queries with includes() and joins(), implement query caching, use pagination for large datasets, and consider database-specific optimizations like connection pooling."
- question: "How does caching improve Rails application performance?"
answer: "Caching stores frequently accessed data in memory, reducing database queries and computational overhead. Rails supports various caching strategies including page caching, action caching, fragment caching, and low-level caching with Redis or Memcached."
- question: "What server optimization strategies work best for Rails?"
answer: "Choose appropriate server configurations for your traffic, implement load balancing to distribute requests across multiple servers, use cloud platforms like AWS or Google Cloud for better uptime, and configure web servers like Nginx for static asset serving."
- question: "How can I optimize Rails asset delivery?"
answer: "Minify CSS and JavaScript files, compress images, use CDNs for global asset delivery, implement browser caching headers, and leverage Rails asset pipeline for efficient asset compilation and fingerprinting."
- question: "What background job strategies improve Rails performance?"
answer: "Use Sidekiq or Resque for processing heavy tasks asynchronously, implement job queues for email sending and file processing, and separate CPU-intensive operations from user-facing request-response cycles."
---
![Best practices for optimizing Ruby on Rails performance](file_0.jpeg)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,21 @@ cover_image: https://raw.githubusercontent.com/jetthoughts/jetthoughts.github.io
metatags:
image: cover.png
slug: deploying-ruby-on-rails-applications-with-kamal-devops-docker
faqs:
- question: "What is Kamal and why should I use it for Rails deployment?"
answer: "Kamal is the default deployment tool for Rails 8 applications that simplifies the process of deploying Rails applications to any VPS. It uses Docker containers and provides a cost-effective alternative to platforms like Heroku while giving you greater flexibility and control over your infrastructure."
- question: "What are the prerequisites for deploying with Kamal?"
answer: "You need a VPS server, Docker installed on the server, a container registry account (like Docker Hub), and a Rails application with the Kamal configuration files (deploy.yml and .env)."
- question: "How do I configure environment variables for Kamal deployment?"
answer: "Environment variables are configured in the .env file for sensitive data like KAMAL_REGISTRY_PASSWORD, RAILS_MASTER_KEY, and POSTGRES_PASSWORD. Non-sensitive variables can be set in the deploy.yml file under the env section."
- question: "What user permissions are needed on the VPS for Kamal?"
answer: "You need to create a deploy user with sudo privileges and Docker group membership. Use commands like 'sudo useradd --create-home -s /bin/bash deploy' and 'sudo usermod -aG docker deploy' to set up the proper permissions."
- question: "How do I set up a database with Kamal?"
answer: "Configure the database as an accessory service in deploy.yml under the accessories section. For PostgreSQL, specify the image, host, port, environment variables, and volume mapping for data persistence."
- question: "What does 'kamal setup' command do?"
answer: "The 'kamal setup' command configures the server and performs the first deployment. It installs necessary dependencies, sets up Docker containers, configures Traefik for load balancing, and deploys your application."
- question: "How do I monitor my deployed application?"
answer: "Use commands like 'kamal details' to see container status, 'kamal app logs' to view application logs, and 'kamal app exec -i bin/rails console' to access the Rails console directly on the server."
---
With the release of Rails 8, [Kamal will be the default tool for deploying Rails applications](https://jetthoughts.com/blog/kamal-integration-in-rails-8-by-default-ruby/), simplifying the process for developers. This change is significant as it standardizes deployment, making it easier for both new and experienced developers to get their applications up and running. Utilizing a VPS for hosting your Rails applications is also a cost-effective alternative to platforms like Heroku, providing greater flexibility and control over your infrastructure.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,21 @@ cover_image: https://raw.githubusercontent.com/jetthoughts/jetthoughts.github.io
metatags:
image: cover.jpeg
slug: mastering-ruby-on-rails-best-practices-for-efficient-development-in-2024
faqs:
- question: "What is Ruby on Rails used for?"
answer: "Ruby on Rails is a web application framework that helps developers build websites and web apps quickly and efficiently. It follows the MVC (Model-View-Controller) pattern and emphasizes convention over configuration."
- question: "Why should I follow Rails conventions?"
answer: "Following Rails conventions makes your code more predictable and easier for others to understand. It reduces the need for custom configurations, saving time and effort."
- question: "What are RESTful controllers in Rails?"
answer: "RESTful controllers in Rails organize actions around standard HTTP methods like GET, POST, PUT, and DELETE. This structure makes APIs more intuitive and easier to maintain."
- question: "How can I keep my Rails app secure?"
answer: "To keep your Rails app secure, use built-in security features, regularly update your Rails version and dependencies, and handle user inputs carefully to prevent attacks like SQL injection."
- question: "What are ActiveRecord associations?"
answer: "ActiveRecord associations in Rails define relationships between models, such as one-to-many or many-to-many. They help manage related data efficiently within the database."
- question: "Why is testing important in Rails development?"
answer: "Testing ensures that your Rails application works as expected and helps catch bugs early. It provides confidence when making changes, making your app more reliable and maintainable."
- question: "How do I optimize Rails performance?"
answer: "Rails performance can be optimized through caching strategies, using background jobs for long-running tasks, optimizing database queries with ActiveRecord scopes, and implementing proper view helpers and partials."
---
Ruby on Rails is still one of the go-to frameworks for web development in 2024. It's known for making developers' lives easier with its conventions and a focus on getting things done fast. But to really get the most out of Rails, you gotta stick to some best practices. They help keep your code clean, your apps fast, and your users happy. In this article, we'll break down some key practices you should follow to master Ruby on Rails in 2024.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,19 @@ cover_image: https://raw.githubusercontent.com/jetthoughts/jetthoughts.github.io
metatags:
image: cover.jpeg
slug: rails-8-introducing-new-default-asset-pipeline-propshaft-ruby
faqs:
- question: "What is Propshaft in Rails 8?"
answer: "Propshaft is the new default asset pipeline in Rails 8, designed to be more lightweight and straightforward than Sprockets. It focuses solely on serving traditional static assets like images, CSS, and non-JavaScript assets, allowing developers to choose their own JavaScript bundling tools."
- question: "How does Propshaft differ from Sprockets?"
answer: "Propshaft is simpler than Sprockets, focusing only on direct file linking and caching for static assets. Unlike Sprockets, it doesn't handle JavaScript bundling, letting developers use modern tools like esbuild or Vite for JavaScript asset management."
- question: "Do I need to migrate from Sprockets to Propshaft?"
answer: "Migration is not mandatory. Rails 8 applications will use Propshaft by default, but existing applications can continue using Sprockets. You can also manually switch between them based on your project's needs."
- question: "What JavaScript bundling tools work with Propshaft?"
answer: "Propshaft works with modern JavaScript bundlers like esbuild, Vite, Webpack, Rollup, and other tools of your choice. Since Propshaft doesn't handle JavaScript compilation, you have the flexibility to use any bundling solution."
- question: "What are the main benefits of using Propshaft?"
answer: "Propshaft offers simplicity with fewer configuration options, better performance for static asset serving, reduced complexity compared to Sprockets, and the freedom to choose modern JavaScript tooling that best fits your application."
- question: "How do I configure Propshaft in my Rails application?"
answer: "Propshaft requires minimal configuration and works out of the box with Rails 8. You can customize asset paths, configure compilers for different file types, and set up caching strategies through simple configuration options."
---

The Rails asset pipeline helps manage static assets like CSS, JavaScript, and images. It improves delivery speed by compressing and combining these files. Sprockets used to be the main tool for this, providing useful features like precompilation and versioning. However, it was often too complicated.
Expand Down
2 changes: 1 addition & 1 deletion content/services/_index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Optimize & Empower Products At Any Stage
description: We help optimize products and teams at any stage, from technical strategy to talent acquisition and software development.
description: Transform your technology with expert engineering leadership. Ruby on Rails development, CTO consulting, team scaling. 95% client success rate. Get quote.

headline: We optimize technology
excerpt: From technical strategy and innovation to talent acquisition and software development, we help empower products and teams at any stage.
Expand Down
Loading