Josh Frankel
banner
joshfrankel.bsky.social
Josh Frankel
@joshfrankel.bsky.social
I’m always reading configuration options to improve my workflow. I spend so much time working with these tools that keeping them aesthetic is a priority. This article details my current setup with #Zsh, #Antidote, #OhMyZsh, Powerlevel10k, and #Mise.

joshfrankel.me/blog/a-perfe...
A Perfect terminal with Zsh, Antidote, Oh My Zsh, Powerlevel10k, and Mise.
I love to customize my development environment. Between operating system, editor, and terminal, I’m always reading through the configuration options to improve my workflow. Getting it to look pretty i...
joshfrankel.me
November 7, 2025 at 6:03 PM
Reposted by Josh Frankel
Spotify is running ads recruiting more ICE agents to infringe our rights and terrorize our communities, so we’re calling on users to stop paying for or using the app until Spotify stops streaming fascism: indivisible.org/cancel-spoti... #CancelSpotify
November 7, 2025 at 5:22 PM
Today, I learned that #Rails 8 introduced a new ActionController::Parameters method called expect. This allows for cleaner and safer parameter permitting, which is a nice quality-of-life feature to add. Check out my write-up below

joshfrankel.me/blog/expecti...

#til
Expecting Perfection from ActionController::Parameters
Today, I learned that Rails 8 introduced a new ActionController::Parameters method called expect. This allows for cleaner and safer parameter permission and requiring. I must have just missed this in ...
joshfrankel.me
October 20, 2025 at 4:01 PM
Today, I learned about the `after` function in #nextjs as a simple background job processor. Lighter and simpler than using #Redis or #Database backed queueing, it is ensured to execute even when an error is encountered.

joshfrankel.me/blog/simple-...
Simple Background Jobs with After in Next.js
Today I learned about the after function for scheduling side effects which avoid blocking execution. Think of it as a simple background job scheduler. These are much lighter than a database or Redis b...
joshfrankel.me
July 14, 2025 at 6:46 PM
I've been working on a project with #Next.js and #prisma. I miss the niceties provided by ActiveRecord along with PostgreSQL's best practices, so I wrote a blog post detailing how to customize tables, columns, and associations in Prisma.

joshfrankel.me/blog/custom-...

#JavaScript, #Nextjs, #Prisma
Custom Naming for Database Tables, Columns, and Associations in Prisma ORM
I’ve been working with Prisma as an object-relational mapping tool for my projects. Coming from a background of using raw SQL along with ActiveRecord, I’ve noticed that default Prisma caters to JavaSc...
joshfrankel.me
May 27, 2025 at 3:37 PM
ViewComponents reduce bloat, simplify data, and create reusable frontend styling. Despite these benefits, they're often under-utilized in the Rails community. I've written a blog post refactoring a real-world example into isolated ViewComponents.

joshfrankel.me/blog/viewcom...

#ruby #rubyonrails
ViewComponents, the Missing View Layer for Rails
If you’ve worked with Rails for any measure of time, then you know that Rails’ Views can quickly get out of hand. Between Helpers, instance variables, and inline logic, they quickly become bloated and...
joshfrankel.me
May 15, 2025 at 12:56 PM
I'm a big fan of Linux, but most companies standardize around Mac. I wrote an article about my setup to help ease the transition from Linux to Mac

joshfrankel.me/blog/setting...
Setting up Mac for the Linux user
So you’ve got a new Mac. Maybe it’s a work laptop, maybe you are switching from another operating system. Either way, if you’re like me, you’ve got some set habits with your work environment. This art...
joshfrankel.me
March 6, 2025 at 1:36 AM
Reposted by Josh Frankel
February 27, 2025 at 10:04 PM
If you haven't already, call your representatives. It only takes 5 minutes: 5calls.org
5 Calls
Spend 5 minutes. Make 5 calls. Make your voice heard.
5calls.org
February 6, 2025 at 7:20 PM
I wrote a blog post on my philosophy for a well-factored data migration. Traditional migrations don't need testing; data migrations can and SHOULD be tested.

joshfrankel.me/blog/well-fa...

#ruby #sql #rubyonrails
Well-factored Data Migrations
Large dataset migrations are always an adventure. A well factored data migration considers: Performance, Accuracy, Reversibility, and Repeatability. Each of these supports a successful data migration....
joshfrankel.me
December 12, 2024 at 3:58 PM