sethserver.com

All Posts

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 »

Startups

Startup Momentum: Building Stable Systems That Don't Rely on Motivation | Startup Strategy & Product Development

Updated: September 17, 2026

Startups don’t fail because the team "lost motivation." They fail because there’s no stable system holding the work in orbit. This post is about building momentum the boring way: repeatable outreach, predictable communication, real feedback loops, and a product center strong enough to say "no" without spiraling into a death flail. read on »

AI

The SEO Paradox: How AI Ended the SEO Arms Race

Updated: September 17, 2026

You know what's ironic about the most recent AI revolution? It's actually pushing us to be more... human. I've spent decades watching the SEO world evolve from keyword stuffing to content farms to whatever the next "guaranteed page one ranking" trick happened to be. More recently, with AI churning out content faster than a caffeinated squirrel hoarding nuts, something unexpected has happened: authentic human expertise has become more valuable than ever. 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 »

Security

Discord Password Generator [Updated 2026]

Updated: September 17, 2026

Create secure, Discord-compliant passwords instantly with my Discord Password Generator. Follows Discord-specific security best practices. Generate strong passwords that meet all Discord requirements while protecting your account from common Discord-based threats. read on »

Startups

Startup Smoke and Mirrors: Exposing AI Hype, Corporate Vampires, and Pre-IPO Promises

Updated: September 17, 2026

In this installment of "Flashes & Failures," we pull back the curtain on startup theatrics, exposing the reality behind dazzling promises. From "AI-powered automation" that's really just glorified spreadsheets, to corporate vampires draining companies of assets, to pre-IPO paradises that turn into support floor nightmares, we explore the smoke and mirrors of the startup world. Learn to develop a healthy skepticism and ask the right questions to separate genuine innovation from elaborate theater. read on »

Newsletter

One email, once a week.

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