Latest articles from Write Software, Well
20 articlesLocalhost is treated as a trustworthy origin even without TLS, so all apps on localhost run in a secure context. This allows secure features to work i...
A staging environment is a safe replica of production where you can test features before going live. In this post, we'll create a staging environment ...
In this post, I'll provision and configure the staging infrastructure for my blog, which is a Rails application. This includes installing and setting ...
This is the first post in the series where I'm building my blog in Ruby on Rails. I'll create a new Rails application and we'll walk through some of t...
After three years on Ghost, I'm rebuilding this blog from scratch with Ruby on Rails. In a new series, I'll document the journey of building a product...
A sitemap lists your site's pages, helping Google crawl it efficiently. It's especially useful for large sites or new sites with zero backlinks. This ...
The Rails router's direct method lets you create custom url and path helpers, which is especially useful for polymorphic models and delegated types. T...
I started as a sceptic, but now I'm a convert and a heavy user of AI for everyday programming, and wanted to write down some common patterns and promp...
This post shows how to inspect the sequence of before, after, and around callbacks in Rails controllers by adding a small initializer. Useful for unde...
After three years of freelancing and over a year of running my own software studio, here're some scattered thoughts on freelancing as a software devel...
You can safely extract options hash from the end of an argument list using the extract_options! method in Rails. Not only it simplifies the method def...
In this post, we’ll explore how redirects work in Rails: what they are, how to redirect manually, and how the redirect_to method simplifies things. We...
In this post, we'll learn how Rails' render method works and how to use it effectively. From rendering templates, partials, and inline content to JSON...
Last week, I used AI to finally learn the basics of QuickBooks and handle my company’s bookkeeping. AI didn’t just help me finish a chore, it taught m...
Announcing a new newsletter where I write about topics beyond Ruby on Rails: running a software services business, freelancing, positioning and market...
If your Rails app deals with large files, let a reverse proxy like Nginx or Thruster serve them. In this post, we'll learn how X-Accel-Redirect (or X-...
In this post, we'll learn how to use a SQL subquery in a Rails app to eliminate N+1 queries and improve performance. We'll profile a real-world exampl...
As your application grows, so do your database tables. If you keep fetching all columns, those extra fields, especially large text or JSON blobs can q...
This post shows how you can get a better understanding of your Ruby on Rails application performance with the Rails Debugbar, a profiling tool inspire...
In 2012, GitHub was compromised by Mass Assignment vulnerability. A GitHub user used mass assignment that gave him administrator privileges to none ot...