RSSAmplifier

Blog

Josh Karamuth's Blog

My professional home online where I showcase my work as a freelance developer and write about the intersection of technology, product development, and the philosophies that guide my work.

joshkaramuth.comRSS feed ↗54 posts

Latest posts

Manual Code Review is Dead

How explicit prompting replaced manual code reviews for me

How to Fix Permission Issues with Docker Volumes

Learn about the simplest way to solve permission issues with Docker volumes when running as a non-root user.

Simplicity Doesn't Sell (And I'm Tired of Being Called Lazy For It)

Most clients don't want the right solution, they want the impressive one, and suggesting anything simpler will just get you ghosted.

I Used AWS Cognito for a Startup. I Wouldn't Do It Again.

I let AWS Cognito gaslight me for three weeks so you don't have to. Here's the unfiltered autopsy.

How I Deploy Web Apps With a Single Command

Discover how Uncloud simplifies Django deployments by letting you manage containers, logs, and services on any server with a single command, no container registry or manual SSH required.

How I Fixed Frontend-Backend Desync with Hey API and FastAPI

Learn how I fixed the problem of keeping a backend API in sync with a front-end application

Boto3 Is Gaslighting Me About My Athena Query Parameters

If you're fighting a TYPE_MISMATCH error in Athena even when your types are correct, you're not crazy. Read this.

Wireguard Locked Me Out of My Own Server, and I'm Not Even Mad

So you spun up a shiny new server, slapped Wireguard on it for ALL the privacy, and then... silence. Yeah. Let's talk about that.

Python and Typescript for Life

After years of language-hopping, I found my flow state with Python and TypeScript—here’s why I'm never leaving.

Stop Putting JWTs in LocalStorage. Seriously. Here's How to Do It Right.

If you're building a web app and dropping JWTs into localStorage, you might be creating a massive security hole without even realizing it.

Why I Stick With HTMX Even If It Sucks

While HTMX sucks, it's still the best option when it comes to building reactive web UIs in 2025

Level Up Your Django Views with the ViewModel Pattern

Here's how to supercharge your Django templates and make your views squeaky clean with a pattern you'll wish you'd known about sooner.

The Ghost in the Migration: Why Your Model's Methods Disappear

Ever had your Django data migration mysteriously fail on a model property that you know exists? Here’s why.

How I deploy Python/Django Apps as a Solo Dev

Stop wrestling with complex deployments and learn how I use Ansible, Docker, and Litestream to run Django apps on a secure, self-updating, and ridiculously resilient setup.

Stop Trusting Your API: How to Build a Bulletproof Frontend with Zod and React Query

If you're only using TypeScript interfaces to model API responses, you're one backend change away from a runtime crash—here's how to build a truly resilient app with Zod.

On the Fence: My Affair with HTMX and the Enduring Allure of React

After building with React for years, my recent dive into HTMX and AlpineJS has been a masterclass in the trade-offs between radical simplicity and creative freedom.

I Used DynamoDB for 2 Years. Here’s Why I recommend SQL.

After two years using DynamoDB, I’ve concluded that the best database for a million users is often the wrong choice for your first ten.

Nvidia, Kubuntu, and My Reluctant Return to Windows 11

My latest attempt to make Linux work on a modern Nvidia laptop ended, predictably, with a return to Windows 11.

Web Components: Powerful, Yes. A Joy to Write? Not Quite (Coming from React)

Coming from years of React development, I find Web Components incredibly powerful and standards-based, but writing them can feel surprisingly tedious.

Break django-admin commands into subcommands

Learn how to organize Django management commands into intuitive subcommand namespaces, making your CLI cleaner and more developer-friendly!

Redundant Linux backups with a single command

Set up military-grade, cost-effective backups with Borgmatic—combining local USB and Hetzner cloud storage—in just 15 minutes, ensuring your data is safe even if your laptop takes a coffee bath.

A Battle-Tested Way to Structure React Projects

Learn how to structure your React projects with a focus on scalability, maintainability, and team collaboration.

How to handle 404 errors with htmx in Django

Enhance user experience by gracefully handling 404 errors with htmx in Django

Why the HTML dialog element sucks

Learn why you should implement custom modals instead of relying on dialog

Build a Reusable Component with Django Cotton and AlpineJS

Learn how to build a reusable component with simple tools

Show Django forms inside a modal using HTMX

Learn how to create and edit models using Django forms inside a modal using HTMX

How to show a modal in Django + HTMX

Learn how to show a modal with minimal Javascript in Django + HTMX

How and why to run your Docker apps without root

Understand the importance of running your apps without root privileges inside your Docker container

Automated container deployment without a registry

Learn how to automate deployment of a containerized Django app without a registry

Docker is better than Podman

I experimented with Podman and realized that Docker is still better

Understanding Python Decorators thanks to Django

Master Python decorators by dissecting ones provided by Django

A script to "Modernize" your Linux CLI

Use this script to install modern CLI tools for Linux

I moved my blog from Ghost to Astro

Learn about the benefits of publishing with Astro instead of Ghost

Show Django flash messages as toasts with Htmx

Learn how to display Django messages as user friendly toasts with Htmx

Build an intuitive CLI app with Python argparse

Learn how to use Python's built-in argparse library to build an intuitive CLI app

Forward SSH Agent Requests From WSL to Windows

Learn how to use the built-in Windows ssh-agent from inside your WSL instance

How to implement RESTful routing in Django

Learn to leverage the REST archicture in a Django app.

Generate DKIM key pairs in Python

DKIM key pairs are simply RSA key pairs and you can easily generate them in Python.

Robust Full-Stack Authentication with Django Allauth, React, and React Router

Learn how to integrate django-allauth with React for a powerful and easy authentication system.

Using Django Allauth without Username Field

Learn how to use Django Allauth without a username field in your User model.

How to Remove Username from Django's Default User model

Learn how to allow users to authenticate with your app without a username.

Why CSRF token cookies don't need to be httpOnly

CSRF token cookies are typically sent without httpOnly set to true. But is that a secure practice?

Send Templated Emails in NodeJS

Learn how to use NodeMailer, Handlebars, and juice to send emails effortlessly in NodeJS.

Populate Custom User Attributes When Signing Up Using Django Allauth

Learn how to set custom attributes to your User model when signing up users with Django Allauth.

Track Hubspot Events in a React SPA

Learn how to use Hubspot to track user activity when using client side routing in React.

How to upload files to S3 using a Presigned Upload URL

Learn how to upload files directly to S3 from a front-end client to avoid API Gateway time-out issues.

Identify Individual Requests in ExpressJS

Learn how to debug user errors more easily by tagging each request.

How to Store Passwords Securely in NodeJS

Learn how to use built-in tools in NodeJS to store user passwords securely.

Verify Paddle Billing Webhook Signatures in Python

Learn how to verify that webhooks hitting your back-end are from Paddle and not anyone else.

Generate good looking PDFs with WeasyPrint and Jinja2

Learn how to easily generate beautiful PDFs in Python