Greg Navis
gregnavis.bsky.social
Greg Navis
@gregnavis.bsky.social
🖥 Fractional CTO, product designer, product engineer
📢 Tweets about Ruby, Rails, PostgreSQL, TypeScript, Hotwire
🛠 Creator of active_record_doctor
I had a bike accident on Friday and spent the weekend with a concussion. I'm better now, so I'd like to announce ...

active_record_doctor 2, nicknamed Bouncing Brain 🧠

Interested in learning what's new? Read on below 👇🏻
October 1, 2025 at 1:25 PM
I'm releasing active_record_doctor 2.0!
September 24, 2025 at 5:05 PM
I built my own simple deployment tool that allows me to deploy my Rails application to production in 18 seconds. It's based on POSIX shell and Ruby.
September 12, 2025 at 8:44 AM
My wife's iPhone 13 mini is driving me nuts!

1. eSIM stopped working and cannot be removed - it gets stuck on "Removing".
2. I can't update to iOS 18.6 - gets stuck on "Verifying update".

Any tips?
September 11, 2025 at 6:05 PM
I've just pushed the first improvement to cyborg: checking for backup preconditions.

I needed that to ensure my home lab server has its encrypted ZFS partition mounted, as otherwise I'd be backing up an empty directory.

github.com/gregnavis/cy...
Add support for auto backup preconditions · gregnavis/cyborg@66f8382
In certain cases it doesn't make sense to proceed with an automated backup unless a precondition is met. A great example is a storage server that doesn't have its storage file system mounte...
github.com
September 6, 2025 at 10:35 AM
cyborg is live! If you're looking for a tool to make encrypted backups easy I suggest you take a look at github.com/gregnavis/cy....

I use it to back up my Mac Mini, my FreeBSD home server, and my OpenBSD app server.
GitHub - gregnavis/cyborg: POSIX-compatible and user-friendly frontend for borg
POSIX-compatible and user-friendly frontend for borg - gregnavis/cyborg
github.com
September 6, 2025 at 9:12 AM
I'm going to release a small POSIX shell script today called cyborg. It's a thin wrapper around borg that makes it easy to run backups configured via configuration files.

I use it on MacOS, FreeBSD, and OpenBSD: that's the beauty of POSIX! ✨
September 5, 2025 at 9:19 AM
👋🏻 I'm available for work and can help with:

1️⃣ Solving complex software engineering problems, especially in Rails apps.

or

2️⃣ Turning product ideas into working teams and code - from pre-seed to series A.

If it sounds like I could help you drop me a DM.
September 2, 2025 at 4:24 PM
If you live in the EU then you need to be aware the EU is considering requiring electronic communications surveillance. If you don't like mass indiscriminate spying then I urge you to take action:

fightchatcontrol.eu
Fight Chat Control - Protect Digital Privacy in the EU
Learn about the EU Chat Control proposal and contact your representatives to protect digital privacy and encryption.
fightchatcontrol.eu
August 25, 2025 at 9:11 AM
I started using open-props.style and really like it: vanilla CSS is very powerful, and open-props saves you time by providing design tokens.
Open Props: sub-atomic styles
Open source CSS custom properties to help accelerate adaptive and consistent design. Available from a CDN or NPM, as CSS or Javascript.
open-props.style
August 17, 2025 at 11:02 AM
I'm experimenting with a new source code layout. What do you think?
August 7, 2025 at 11:06 AM
@thoughtbot.com has just published a wonderful list of 70 companies on Rails. 😍

thoughtbot.com/blog/70-comp...
70 Companies You Didn't Know Were Using Rails in 2025
For twenty-two years, thoughtbot has helped companies and organizations of...
thoughtbot.com
August 6, 2025 at 11:35 AM
I'm test driving @zed.dev (per @hacktec.bsky.social's recommendation), including AI coding via Claude. It's sooo apparent that AI has absolutely zero reasoning skills.
August 2, 2025 at 11:30 AM
It's this time of month again! Head over to whoishiring.jobs if you're looking for a new role.
August 1, 2025 at 6:53 PM
I also pushed an update to pocus: it allows you to cast a subset of spells. If you're looking for a lightweight YAML-free alternative to Ansible then have a look.

Man, I missed working on open source so much ...

github.com/gregnavis/po...
GitHub - gregnavis/pocus: Simple server provisioning via POSIX-shell
Simple server provisioning via POSIX-shell. Contribute to gregnavis/pocus development by creating an account on GitHub.
github.com
July 13, 2025 at 7:15 AM
Success! A new version of whoishiring.jobs has just been deployed. I had to reconfigure Solid Queue and now it's properly picking up new jobs.
whoishiring.jobs – find you dream tech startup job
Find your dream tech startup job with whoishiring.jobs
whoishiring.jobs
July 13, 2025 at 6:43 AM
I'm so excited to make my own production console work on OpenBSD! It's a matter of running `bin/rails production:console` to connect Heroku-style. So satisfying!
July 13, 2025 at 5:15 AM
Happy 4th of July! 🇺🇸
July 4, 2025 at 7:42 AM
A security vulnerability in sudo allows users to obtain root privileges. sudo is 20k lines of C. My recommendation is to replace it with doas - 630 lines of C + 290 lines of YACC.

cve.mitre.org/cgi-bin/cven...
CVE - CVE-2025-32463
The mission of the CVE™ Program is to identify, define, and catalog publicly disclosed cybersecurity vulnerabilities.
cve.mitre.org
July 1, 2025 at 7:13 PM
I've just published something: Slice.spoon. It's a Pomodoro timer for Hammerspoon that's minimal, configurable, and persistent in asking you to use it 😁

It's a newborn, so no README, but the code is clear.

github.com/gregnavis/Sl...
GitHub - gregnavis/Slice.spoon: A Pomodoro timer for Hammerspoon
A Pomodoro timer for Hammerspoon. Contribute to gregnavis/Slice.spoon development by creating an account on GitHub.
github.com
May 19, 2025 at 7:53 AM
I've told you it's coming!
April 28, 2025 at 6:28 AM
I'm working on something ...

Do you like it?
January 11, 2025 at 5:22 PM
I've just released transient_record 3.0 which adds support for arbitrary query execution. I had to bump the major version due to dropping support for older Rubies and Active Record.

github.com/gregnavis/tr...
GitHub - gregnavis/transient_record: Transient Record helps define transient tables and Active Record models for testing purposes
Transient Record helps define transient tables and Active Record models for testing purposes - gregnavis/transient_record
github.com
January 11, 2025 at 2:36 PM
I FINALLY found some time to work on active_record_doctor. I added support for multiple databases to three detectors.

I hope I'll be able to finish that next week, as it's a frequently requested feature.
November 30, 2024 at 1:43 PM
Exciting update for whoishiring.jobs! I split the job filters into tabs:

👉 Switching tabs is 1 line of JS + some CSS
👉 Tabs are scrollable left and right on mobile - 95-line long (incl. whitespace) Stimulus controller
👉 Tab highlights - pure CSS

🤩

Not in production, yet!
November 23, 2024 at 5:26 PM