Title: Navigating the Challenges of Freelance Web Development: A Personal Reflection
As a freelance web developer with over five years of experience, I often find myself contemplating the intricacies—and frustrations—that come with building websites for clients. Despite having completed numerous projects primarily focused on marketing and informational sites, I frequently feel that I haven’t yet attained a satisfying or streamlined development process.
The rapidly evolving landscape of web development can sometimes feel overwhelming, especially when managing multiple responsibilities as a solo freelancer. Rising hosting costs, unexpected tier upgrades, overage fees, and the complexities of DevOps practices all contribute to an ongoing battle to maintain efficiency and quality.
To shed light on some of the recurring issues I’ve encountered, here is a snapshot of my recent experiences:
Exploring Alternative Content Management Systems
I experimented with Sanity as my CMS of choice. Initially, it served well, but as clients’ user bases expanded, the escalating costs became noticeable. My initial approach was to charge clients a flat annual fee for hosting, but cost spikes related to bandwidth and additional users made this model less sustainable, requiring difficult conversations around billing adjustments.
Self-Hosting and Custom CMS Solutions
In an effort to dodge SaaS pricing, I turned to Payload CMS, deploying it alongside Astro. I dedicated weeks to configuring a seamless local development environment and deploying to providers like Digital Ocean. While I now have a functioning setup on multiple domains (example.com and admin.example.com), I encountered hurdles during front-end development—particularly regarding image delivery without a CDN, rendering content from Lexical to HTML, and managing data types without full access to Payload’s type definitions. Fetching data without a Local API also posed challenges, leaving me in a constant struggle to streamline workflows.
Tooling and Framework Landscape
The web development ecosystem is in a state of flux. I initially appreciated Gatsby, but shifting needs and community support steered me toward Next.js—which now feels increasingly complex and bloated with caching and optimization concerns. Currently, I’ve been exploring Astro, and I genuinely like it; however, I worry about jumping between frameworks too frequently, which slows down progress and introduces additional complexity.
Hosting Difficulties
While platforms like Vercel and Netlify are convenient, their pricing structures can be tricky to explain to clients, especially as project scale increases. I’ve also d

