Done is Better Than Perfect

I tend to ship things that are not perfect for a reason … Shipping something that works and solves the problem is often better than waiting until said thing is perfect. In other words … Done is better than perfect. How many times have you (or someone you know) worked on something … | Continue reading


@donnfelker.com | 3 days ago

Invisible Mentors

Have you ever wanted a specific mentor in a particular area of your life? I’m sure you have. We all have. Maybe you want a mentor for … However, most of the time you can’t find a mentor because you dont know anyone who has those skills or you simply are in an area in […] | Continue reading


@donnfelker.com | 16 days ago

I Removed JetPack Compose from My App

Ok, I admit, this is a clickbait title, but you’re here, right? So let’s keep going. Thanks for joining me. Here’s the TLDR … I removed an AppBar that was in a ComposeView from my app because using an XML Toolbar is far simpler and required less code. Pragmatism 101. Read on for … | Continue reading


@donnfelker.com | 1 month ago

Why Grandparents Spoil Grandchildren

… and why it’s OK. Have you ever wondered why grandparents spoil their grandchildren? As a parent yourself, you might be wondering “Why didn’t I get this kind of treatment from my parents? Why do they give it to my child but I didn’t get it?” 🤔 I have a theory on this, an … | Continue reading


@donnfelker.com | 4 months ago

Make Every Second Count: Strategies to Unleash Creativity and Success at Any Time

If you’re reading this, you’re probably wondering how you can make the time to to do something. Maybe its … I’m sure you’ve heard this, but its worth repeating here … we all get the same 86,400 seconds in a day, but its what you do with them that counts. Saying you don’t have tim … | Continue reading


@donnfelker.com | 5 months ago

Bootstrapping to 7k MRR with WordPress and No Code

This is the story of how I bootstrapped Caster.IO to $7,500 MRR with WordPress and without writing any code. At the peak of Caster.IO it was pulling in 16K MRR with profit margins in the 60-70% range. The site is now defunct and shut down (shut down in 2021). The domain was sold … | Continue reading


@donnfelker.com | 6 months ago

Why Kotlin Multiplatform Won’t Succeed

Kotlin Multiplatform (KMP) is destined for mediocrity. KMP never gain mass adoption and will it remain in obscurity; only to be used by a small subset of the software world, regardless how much it is promoted and touted as the next best thing. Why? Human nature and scarcity. Ego … | Continue reading


@donnfelker.com | 6 months ago

Listomo – A New Cheaper and Easier Way To Build Your Email Lists

I built a new software as a service (SaaS) tool to manage email lists – Listomo. It’s out now. Check it out here. If you’re a creator, builder, maker, marketer, or developer who builds multiple things you’ll probably find it useful. What is Listomo? Listomo allows you to manage m … | Continue reading


@donnfelker.com | 6 months ago

Native Where You Need It (Hybrid Mobile Apps)

What Does “Native Where You Need It” (NWYNI) Mean? NWYNI refers to the practice of using native mobile components only in areas of your app where they’re essential and optimal. In all other instances, web components (web views) are utilized. AKA: Hybrid Mobile Apps. Part of the a … | Continue reading


@donnfelker.com | 6 months ago

The Power of the Clarity Doc: Your Tool for Clearer Thoughts

A clarity doc is a purposeful piece of writing that you craft to help you distill your thoughts, opinions, and emotions on a subject you're grappling with. It’s meant to force you out of analysis paralysis and into decision making mode. | Continue reading


@donnfelker.com | 7 months ago

Bootstrapped vs. Self-Funded

In the startup community you’ll hear these two terms used when folks talk about building a product (SaaS, App, etc). You’ll hear things like … “I bootstrapped myself to profitability …” and “I self funded the app and found product market fit…” They sound very similar. These two t … | Continue reading


@donnfelker.com | 8 months ago

Deploying Middleman Sites on Hatchbox

I recently migrated the majority of a lot of my Rails applications over to Hatchbox from Heroku. It’s far cheaper and the speed of the sites has drastically improved. The speed of the sites is orders of magnitude faster (I’m hosting with Digital Ocean via Hatchbox). Furthermore, … | Continue reading


@donnfelker.com | 8 months ago

The Life Changing Magic of Doing Things For Free

When I tell people that I speak at most events for FREE, they often are baffled. Free?! Why free!?! You should be getting paid to speak. They are even more baffled when I tell them that I will often spend my own money to travel to events to speak for free. It’s usually around tha … | Continue reading


@donnfelker.com | 9 months ago

Disable Attachments in the Trix Editor

Use this stimulus controller to quickly disable attachments in the Trix Editor. When you need to disable attachments in the Trix editor you’ll need to make sure you do three things: You can do this with the following stimulus controller: Save this as disable_uploads_controller.rb … | Continue reading


@donnfelker.com | 10 months ago

Opportunity Cost and Letting Go: How to Profit from Your Stalled Projects

You want your time back so you can focus on other things. How do you do it though? Learn how in this article | Continue reading


@donnfelker.com | 10 months ago

The 15-Minute Meeting: Change Your Workday, Change Your Life

If you approach meetings with the end in mind, you can do almost any meeting in 15 minutes. I changed the default meeting length in Google calendar to 15 minutes (here’s now). This has given me much more time back in my life. In other words, most meeting’s don’t need to be 1 hour … | Continue reading


@donnfelker.com | 1 year ago

How to Migrate to Rails Encrypted Attributes

This post will show you how to migrate an existing attribute to a Rails 7 encrypted attribute. Rails 7 has shipped with encrypted attributes, so its no longer necessary to use something like attr_encrypted to encrypt a field. Once set up, using it is easy: This works great if you … | Continue reading


@donnfelker.com | 1 year ago

Status Updates Should Be 60-90 Seconds

Daily and weekly standup status updates should only be 60-90 seconds long per team member. Anything longer than necessary is likely to waste everyone else’s time. If people are interested in learning more or discussing a related topic to your status update, they should stay after … | Continue reading


@donnfelker.com | 1 year ago

Building a Stronger Mind and Body: Reflections on 1000 Days of Working Out

I worked out for 1000 days straight, this is what I learned about myself mentally, physically and more ... | Continue reading


@donnfelker.com | 1 year ago

HowTo: Setup Tailwind CSS 3 with Middleman

This post explains how I created the Tailwind CSS 3 + Middleman integration that is available on GitHub. Download the source or fork the repository here. Middleman is a Ruby static site generator that makes it easy to create custom static sites with the Ruby language (as well as … | Continue reading


@donnfelker.com | 1 year ago

MultiTenant PgSearch: A How To

In my previous post I showed you how to set up pg_search to search against ActionText::RichText fields for multisearch. This post takes it a step further and add’s the ability to scope your PgSearch multisearch calls to a tenant in a multitenant based Rails application. Problem Y … | Continue reading


@donnfelker.com | 2 years ago

PgSearch multisearch with ActionText::RichText

If your Rails model has an ActionText rich text field, and you want to make it searchable with PgSearch (pg_search) you’ll need a way to index those records. This post will show you how to do that. Since ActionText::RichText objects are stored in the database you can access them … | Continue reading


@donnfelker.com | 2 years ago

How to Fix – NameError: uninitialized constant Vips on Heroku

Stoa is a Rails 7 application that currently runs on Heroku. During a recent deployment of my upgrade to Rails 7  Sidekiq started failing numerous background jobs around some image processing I had. The error message in Sidekiq was: NameError: uninitialized constant Vips Here’s h … | Continue reading


@donnfelker.com | 2 years ago

Master the Essentials of Git in Under 2 Hours

Learn the 20% of Git that will give you over 80% the benefit of Git. All in under two hours. This is the ONLY Git course you need to get started with Git. After watching this course you’ll have everything you need to use Git to do your day to day job as a developer, […] | Continue reading


@donnfelker.com | 2 years ago

How Often You Should Visit Your Clients

In freelancing, it’s pretty rare that you’ll go visit your client. However, there are times in your career when visiting your client is the sensible thing to do. There are three parts to this: Why you want to visit your client What clients you should visit How often should you vi … | Continue reading


@donnfelker.com | 2 years ago

How to Ship Side Projects

In this post, I’m going to teach you how to ship your side projects. How to turn them into a potential business. Keyword: potential. There are no promises here. I can’t turn water into wine, people. Now, back to shipping side projects … It’s easy once you realize how difficult i … | Continue reading


@donnfelker.com | 2 years ago

How to increase your productivity with outsourcing and SOPs

When you run a freelancing business (or any business for that matter), you’ll eventually need to outsource some things.  When you outsource tasks, you need to make sure that the person executing the job is fully equipped with all the tools, instructions, and knowledge to perform … | Continue reading


@donnfelker.com | 2 years ago

How to Start Freelancing If You Have Existing Responsibilities

How do you start freelancing or consulting if you have kids and a family, and a job? This also applies if you have a full-time demanding job. Or maybe you just have a very active personal life with family. Any of these situations can make it challenging to get going. I know, I’ve … | Continue reading


@donnfelker.com | 2 years ago

Never Quit Too Early

About 8 years ago this month I quit too early. If I had stayed with the business and rode through the storm, I’d be very well off right now. I wouldn’t be writing this newsletter to you about this story. I can’t say that I regret giving in at the time, but as always … … | Continue reading


@donnfelker.com | 3 years ago

Flutter Just May Work

I’ve been posting on twitter about how mobile developers should not ignore the Flutter technology and in response I received a lot of questions to why I’m stating this. I hope this post clarifies why I’m bullish on Flutter. Build the iOS and Android App at the Same Time There are … | Continue reading


@donnfelker.com | 4 years ago

Learning to Program Sucks

I bumped into an article that reads like an article that I would have written back in the late nineties when I was learning to program. Heck, to this day I’m still learning how to program. In software, the day you stop learning is the day you become obsolete. It was late 1998 and … | Continue reading


@donnfelker.com | 5 years ago