Posts

Showing posts from October, 2025
OT OneTechly Plan accordingly  •  Build confidently DATABASE_URL on Render: Internal vs External and Why It Matters More Than You Think When I set up the PostgreSQL database for PixelPerfect Screenshot API on Render, the database dashboard showed me two connection strings. They looked almost identical. I picked the wrong one. The one I chose worked — which made it worse, because the problem wasn't a connection failure I could debug. It was a slower, less secure, more fragile connection routing my database traffic over the public internet when it didn't need to. I only discovered this later when I was digging into Render's networking documentation for a different reason and realized that the "External Database URL" I'd been using was meant for connecting from my laptop, not from my backend service running on the same platform. This article covers what the two URLs actually are, which one belongs i...
OT OneTechly Plan accordingly  •  Build confidently Operating Systems Fundamentals: The Layer That Shapes Every Decision Your Code Makes When I deployed PixelPerfect Screenshot API to Render.com, the backend ran on Ubuntu Linux — a UNIX/Linux-based environment I'd written about separately. My development machine was macOS. The behavior was nearly identical across both, because both are UNIX-based systems that share the same underlying model of how processes, memory, and files work. But I've worked on projects that weren't that clean. File paths that broke when code moved from Windows development to Linux production. Threading behavior that changed between macOS and Ubuntu in ways nobody expected. Memory usage that spiked in containers for reasons that only made sense once I understood how the OS manages virtual memory and what happens when physical RAM fills up. None of those problems were bugs in the appli...
OT OneTechly Plan accordingly  •  Build confidently Production Security Headers: The Three Shields Every Web Application Needs You've built your application. The features work beautifully in development. The UI is polished. You're ready to deploy to production. You flip the ENVIRONMENT variable to production , and suddenly your application breaks in unexpected ways. Stripe checkout won't load. Your API calls return CORS errors. The browser console is filled with cryptic security warnings. Welcome to the world of production security headers. But beyond the immediate frustration of troubleshooting these issues, there's a fundamental principle at work here — one that separates hobbyist projects from production-grade applications: security by design through layered defense . The Security Paradox of Modern Web Development Modern web applications are inherently vulnerable. By their very nature, they execu...
Image
OT OneTechly Plan accordingly  •  Build confidently SPA Rewrites on Render: Why Single Source of Truth Matters (CRA vs Custom Build) When deploying Single-Page Applications (SPAs) to platforms like Render, you'll inevitably encounter the concept of "SPA rewrites." But beyond the mechanics of making your routes work, there's a deeper lesson here about configuration management that every developer should internalize: the principle of single source of truth . What Are SPA Rewrites and Why Do They Matter? Single-Page Applications built with React, Vue, or similar frameworks have a unique characteristic: they only have one real HTML file, typically index.html . Everything else—routing, page transitions, dynamic content—is handled by JavaScript on the client side. Here's the problem: When a user visits https://yourapp.com/app/history directly (perhaps they bookmarked it, or clicked a shared link), the ...