Sending Slack messages from Rails

This tutorial explains how to send Slack messages from a Rails application.

List S3 contents and download links in Rails

This post explains how to iterate over the contents of an AWS S3 bucket and generate download links for each object. This example uses aws-sdk version 2. At the time of writing, version 3 is the latest but there’s still a lot of legacy apps that use v2.

Deploying a legacy Rails app to Heroku, via Docker

Recently, we worked on deploying a legacy Rails app to Heroku. The minimum Ruby version that Heroku supports is 2.7.6. Apps running older versions must be upgraded before they can be deployed. Thankfully, this problem can be solved by deploying the app as a container. This post explains how to containerize an application and deploy it to Heroku.

Building a dynamic dashboard with Hotwire, part 2

In part 1 we built an admin panel and used Turbo Streams to make revenue dynamic. In this post we’ll continue building out the admin panel. We’ll implement tabs, using Turbo Frames, then finish up by making ‘real time orders’ dynamic.

Building a dynamic dashboard with Hotwire, part 1

In this series we are building an admin panel, using Hotwire. The admin panel will have multiple tabs and plenty of interactivity. Let’s get started.

Hotwire turbo_stream_from single update bug

Recently, we encountered a bug with some Stimulus code. We were trying to stream updates for a small partial and found that data only refreshed on the first update.

Features and Benefits of Dedicated Software Development Team Model

A dedicated software development team is a collaborating model in which a client engages an outsourced team of project managers, software developers, QA testers, and other specialists offered by the software development vendor.

Designing a regex test feature with Stimulus pt 2

In part 1 we built a Stimulus controller that tests a regex, however, there is a problem with that solution. Ruby and JavaScript regex implementations are slightly different. In our case, we want users to verify their regex using Ruby’s regex implementation. To do that, we need to evaluate the regex on the server side.

Off-the-Shelf Software vs Building Custom Systems: How to Choose

Leaders in various industries are embracing digital tools to improve their firms. It could be to begin digital changes, support new remote workforce models, improve customer relations, or automate processes. Fortunately, software is now more widely available than ever. The power of choice, on the other hand, might be overwhelming. Furthermore, your technological decisions can mean the difference between falling behind or staying ahead in your sector.

Medical Billing and Coding Software: Benefits and Challenges

With the average time between filing a claim and receiving payment approaching 7 weeks or more, the demand for cost-effective and efficient medical billing solutions is unsurprising.

Benefits and Drawbacks of Custom CRM Software

Customer relationship management is critical in any firm. This is what enables entrepreneurs to facilitate interactions that ultimately convert leads into paying consumers. The processes involved in CRM efforts, on the other hand, can be rather tedious.

Designing a regex test feature with Stimulus

We’re building an app that requires users to input a regex. We’d like to build a feature that gives users the ability to test their regex, before saving. The feature will work a lot like Rubular. Users will be able to test their regex against various strings.

Rails 5 -> 6 Upgrade: ES6 Uglifier bug

During a recent Rails 5 -> 6 upgrade we encountered an ES6 bug. Here’s the error message:

Rails 5 -> 6 Upgrade: SQLite boolean query bug

Rails 5 uses 't' and 'f' to represent booleans, in SQLite databases, because there is no native boolean support. In Rails 6, the behaviour changed to represent booleans as 1 or 0.

Native vs Cross-platform App Development: How to Pick

There are 4.4 million apps available on both the Appstore and Google Play, aimed at the world’s 14 billion mobile phones. If you want to create a mobile app, one of the most crucial decisions you must make is whether to use native or cross-platform mobile development.

MVP for Startups: Why You Need It During Custom Software Development

When you’re scrolling through your favorite mobile apps on your phone or browsing through your favorite website, it’s easy to forget that many of them started the same way… with a simple idea that evolved over time.

Rails 5 -> 6 Upgrade: Fixing subdomain issues

During the process of upgrading a Rails 5 staging app to Rails 6, we encountered a few errors, caused by running on a subdomain. The homepage rendered correctly, however, the Omniauth sign in button caused an error.

Identifying and Testing Database Performance Issues in Ruby on Rails

Database performance is a crucial factor that dictates the overall performance of your application. This article will look into ways that can be useful in identifying some database performance issues, and testing database performance.

5 Advantages of Custom Software Development

Individuals in almost any industry appreciate when a product or service can be personalized. That sentiment holds true in the field of information technology as well. As a result, custom software development has arisen to meet this need.

Capistrano GitHub Authentication using Personal Access Tokens

Capistrano can deploy from various code hosting platforms. GitHub is one of the most popular hosting platforms and allows you to clone repos with SSH or HTTPS. This guide focuses on HTTPS. To deploy via HTTPS you’ll need a Personal Access Token, this guide explains how Personal Access Tokens are created and why they’re used in place of passwords.

Nginx configuration for multiple Rails apps

Nginx is a popular web server for Rails apps. Typically you’d have one Nginx file per application. However, you may want to run multiple Rails apps on a single server, for rapid prototyping. In this case, you can make do with a single Nginx file.

Rails 7.0 adds association checking with the associated method

Rails 7.0 brings a lot of improvements to the table.

Rails 7 adds query scheduling in the background thread pool

Query scheduling is a feature of Rails that allows you to control the order in which database queries are executed.

Handling SQLite with Capistrano

SQLite is very useful for rapid prototyping. It’s commonly used locally but it can also be used on remote servers. If you’re using Capistrano to manage server deployments then you’ll need to handle SQLite’s database file.

Rails 5 -> 6 Upgrade: Active Storage config in Production

Whilst upgrading a Rails 5 app to Rails 6 (the Rails 7 upgrade is soon to follow) we discovered an issue when running the app in production mode: