Recent posts
-
I canceled my AI Subscriptions (in favor of Open WebUI)While I primarily used ChatGPT for day-to-day personal tasks, I switched between ChatGPT, Gemini, Grok, and C…
-
Image hashing, indexing, and analysisThis post is part of a multi-part series documenting the architecture, design decisions, and trade-offs behin…
-
Automating Cloudflare IP Range Assignments to AWS Lightsail FirewallI prefer using Cloudflare for its ease of use and super generous free tier offering. I like AWS Lightsail for…
-
Building John539.com - the architecture and design decisionsJohn539.com was built to be reliable, understandable, inexpensive, and easy to evolve/iterate upon. This post…
-
Cutting Costs and Boosting Speed for Yaldi Emotes with Cloudflare R2 vs AWS S3Building Yaldi.chat: Why Cloudflare R2 + CDN Beat S3 + CloudFront Images are deceptively expensive. The…
-
Choosing the Right Database for Yaldi.chat: PostgreSQL, RDS, or SupabaseBuilding Yaldi.chat: Why PostgreSQL on Neon Beat Supabase and Traditional RDS Databases tend to lock in arch…
-
Yaldi’s Backend: Heavy on AWS Lambda and API GatewayBuilding Yaldi: Why AWS Lambda + API Gateway Was the Right Call The easy part of building Yaldi was storing …
-
Building Yaldi.chat Emote ServiceIn this first part of my series on building Yaldi.chat, I dive into the architectural decisions and constrain…
-
Building an Automated Coinbase Crytpo Trading BotMy Problem While there's a slew of automated trading solutions for both stocks and crypto, I wanted to try b…
-
Voice AI assistant using javascript, PHP, and Chat GPTMy disappointment with my Amazon Echo/Alexa device doubled every time I tried to use it and, after some recen…