sethserver.com

Programming

Programming

Connect Replit to GCP Cloud SQL MySQL: Public IP vs Auth Proxy Setup Guide

Updated: March 22, 2026

Replit moved onto GCP in December 2025, and that makes database tutorials a lot less fake. In this guide, you'll connect a Replit Python app to a real GCP Cloud SQL MySQL instance, with two clear paths: Public IP + Authorized Networks (fast, annoying) or Cloud SQL Auth Proxy (cleaner, more secure). You'll also set up Replit Secrets, test with `pymysql`, and fix the usual "can't connect" and "why is this slow" problems without turning your app into a security incident. read on »

Programming

How to Connect Replit to Supabase Postgres Database (Node.js & Python Guide)

Updated: September 17, 2026

Supabase isn't a mysterious new database. It's Postgres with helpful extras. This post shows how to connect a Replit app to Supabase the clean way: grab the right connection string, put it in Replit Secrets (not your repo), and verify SSL instead of turning it off. Includes working Node (pg) and Python (psycopg v3) examples, plus the gotchas that waste the most time. read on »

Programming

Replit + Cloudflare Workers: Deploy Python to the Edge

Updated: September 17, 2026

Cloudflare Workers can now run Python (beta), which means you can ship a real Python endpoint to "the edge" without adopting Kubernetes as a lifestyle. The workflow is simple: prototype fast in Replit, move the working code into a Worker, and deploy globally with Wrangler. The big gotcha is cold starts-Python will happily import half the internet before serving one byte-so keep dependencies lean and avoid heavy work at import time. Use Workers for the fast front door (auth, routing, lightweight APIs), and keep the heavy lifting on traditional servers where it belongs. read on »

Programming

The Power of Simplicity: How to Use S3 for Better Unstructured Data Storage

Updated: September 17, 2026

I once replaced an S3-backed CSV store with a relational database for wearable sensor dumps. It felt "more serious." It was also one of my dumber architectural choices. In this post, I'll make the case for the boring option: S3 + a clean key structure. It's cheap, durable, hard to mess up, and it keeps you from spending weeks designing a perfect schema for data nobody has even looked at yet. The database didn't fail. The calendar did. read on »

Programming

Pushing a Replit App to GitHub

Updated: September 17, 2026

If you build quick projects in Replit, you'll eventually want them in GitHub-because servers hiccup, laptops die, and "what did this look like last Tuesday?" is a real question. Here's the simple, repeatable workflow I use: init Git (if needed), add a sane `.gitignore`, connect a GitHub remote, and push to `main` without Git throwing a tantrum over authentication. read on »

Programming

Connect Your Replit App to a GCP PostgreSQL Cloud Database

Updated: September 17, 2026

Replit is great for shipping fast... right up until your "database" is a lonely SQLite file living beside your code. If you want something that won't fall over at the worst possible time, Google Cloud SQL for PostgreSQL is a solid upgrade-especially since Replit runs on GCP (as of Dec 2025), which usually means lower latency and fewer surprise bills. In this post, I'll walk you through creating your Cloud SQL database, choosing a connection method (public IP vs. Cloud SQL Auth Proxy), storing credentials safely in Replit Secrets, and testing the connection in Python. read on »

Programming

How to Send Email from Replit with AWS SES: DNS, DKIM & IAM Setup Guide

Updated: September 17, 2026

Sending one email from your shiny new Replit app can turn into a late-night DNS fight. This post walks through AWS SES setup the fast way: verify your domain, enable DKIM, add the right CNAME records (without pasting your whole domain into "Name"), escape the sandbox, and create tight IAM keys for Replit secrets. Includes working Python (boto3) and TypeScript (AWS SDK v3) examples, plus the real errors you'll hit first. read on »

Programming

How to Connect Replit to AWS RDS SQL Server: Ports, Drivers, and Connection Strings

Updated: September 17, 2026

If you're trying to connect from Replit to AWS RDS SQL Server and you keep timing out, it's probably not your code. It's the boring stuff: port **1433**, a security group that actually allows inbound traffic, and a connection string format that refuses to be normal. This post walks through the setup, shows working Python (`pyodbc` or `pymssql`) and Node (`mssql`) examples, and lists the common errors that waste the most time. read on »

Programming

How to Connect Replit to AWS RDS MariaDB in 20 Minutes | Step-by-Step Guide

Updated: September 17, 2026

Connecting Replit to AWS RDS MariaDB is fast once you stop fighting the real problem: networking. This post walks through the exact settings AWS loves to "ignore" (security groups, public accessibility, and that tempting 0.0.0.0/0 rule), plus clean secrets setup in Replit and working connection code for Python and Node. Also: use MariaDB. Same MySQL protocol, fewer auth headaches, and no Oracle baggage. read on »

Programming

How to Connect Replit to AWS RDS PostgreSQL (Without the 3-Hour Timeout Hell)

Updated: September 17, 2026

Connecting Replit to AWS RDS PostgreSQL is "simple" until it isn't. If you're stuck, it's usually one of three things: the endpoint is wrong, the security group is blocking port 5432, or your connection string is busted (often due to special characters in the password). This post walks through the exact settings to flip, how to store DATABASE_URL in Replit Secrets, working code for Python and TypeScript, and the quickest way to map timeouts vs auth vs SSL errors. read on »

Programming

Seth's Super Awesome Secret Santa Gift Exchange People Picker – A Privacy-First Secret Santa Generator That Runs in Your Browser

Updated: September 17, 2026

A decade ago I wrote a tiny Python script to stop Secret Santa chaos. It turned into a popular repo, but the bigger lesson was this: most Secret Santa sites demand emails, accounts, and trust they haven't earned. So I built a browser-only picker that runs locally, uses zero personal data, and still handles real constraints like "no spouses" and "don't make dinner weird." Simple input, sensible restrictions, one click, and the surprise stays intact. read on »

Programming

Excel Serial Date Converter and the 1900 Leap Year Bug

Updated: September 17, 2026

Excel dates are a quiet mess: a fake 1900 leap day that shifts serial numbers, "helpful" auto-conversions that turn gene names into dates, two‑digit year guesses, and locale traps like 03/04/2023. This post breaks down the weird history behind it, why it still breaks real pipelines, and the boring Python approach I trust instead: force types, pick a format, and fail loudly. read on »

Programming

How to Refactor Legacy Python Code Without Breaking Everything | Python Refactoring Guide

Updated: March 18, 2026

If you can read the manual, you can refactor legacy code without turning it into a crime scene. This post lays out how I assess a codebase, why tests come first, and six refactors that actually pay rent: modularize the blob, remove duplication, modernize syntax, add type hints, and fix logging so failures stop hiding. Small changes. One sentence per PR. Ship, repeat. read on »

Programming

Python Asyncio Tutorial: Async/Await, Tasks & Concurrency Guide

Updated: March 18, 2026

Asyncio is what you reach for when your code is "working" but mostly just waiting: network calls, disk reads, slow database queries. This post shows the core mental model (coroutines, tasks, event loop), the common `await` vs `create_task()` trap, and a few practical patterns-from `gather()` fan-out to an async chat server and `async with` cleanup. If you expected three seconds and got one, you're already learning. read on »

Programming

Design Patterns in Python: Singleton, Factory, and Observer Explained with Examples

Updated: March 18, 2026

Design patterns show up right after your codebase grows a second "event system" and a third "config loader." They aren't magic. They're just names for common shapes that help you manage state, creation, and notifications. This post walks through three patterns that actually ship in Python-Singleton, Factory, and Observer-plus a small example that combines all three (and a few warnings so you don't pattern-collect your way into a mess). read on »

Newsletter

One email, once a week.

Notes on databases, systems, and the occasional strong opinion about Python. No spam, unsubscribe anytime.