Blog Posts
Mastering Communication with AI: A Guide to Effective Prompt Engineering
Introduction Interacting with AI tools like this requires a specific skill set often referred to as prompt engineering. This involves learning the nuances, constraints, and effective strategies for framing requests to get reliable, complete outputs. Our journey through creating a blog post about Syncthing synchronization highlighted several key lessons in...
Migrating to a Modern Django Workflow: UV, Ruff, and CD
Introduction We recently undertook a significant migration across our five Django projects to streamline development, improve code quality, and automate deployments. This process involved adopting several modern Python tools and updating our operational practices. Key Migrations & Best Practices Implemented 1. From Pip to UV (The Speed Upgrade) We replaced...
Choosing the Right Tools: A Modern Django Stack for CMS, E-commerce, and CRM
Choosing the Right Tools: A Modern Django Stack for CMS, E-commerce, and CRM Building a suite of five interconnected, monetized websites requires a careful selection of robust, complementary tools. We’ve consolidated our technology preferences—focusing on avoiding manual JavaScript, leveraging utility-first CSS, and ensuring reliable backend automation—into a single, powerful architecture....
Debugging the GitHub Feed: Celery, Redis, and the Elusive 401 Error
Debugging the GitHub Feed: Celery, Redis, and the Elusive 401 Error When setting up the github_feed application locally for the first time, several friction points emerged related to environment configuration, pathing, and authentication. The primary issue preventing the feed from working was a consistent 401 Client Error: Unauthorized. Here are...
Streamlining Django Deployments: Building a Reusable Project Manager Script
Automating Django Deployments: A Reusable Shell Script Managing multiple Django projects on a single server can quickly become complex, especially when coordinating code pulls, migrations, static file collection, and service restarts (like uWSGI, Celery, and Apache/Nginx). Manual execution is error-prone and time-consuming. The solution is a robust, reusable shell script...
Bringing Dev Activity to Life: Building a Dynamic GitHub Feed in Django with Celery
Introduction Every developer wants to show off their recent work, but manually updating a "recent projects" list is tedious. We wanted a live feed of our GitHub commits directly on makeitexist.net. The challenge? Fetching data from an external API (like GitHub's) live on every page load can slow down your...