Hey folks! I've just joined a new team as the sole developer, and I'm diving into a project that heavily relies on a bunch of external SaaS services like Stripe, Sanity, and Mailgun. With around 10 integrations, I'm facing a challenge: I believe we should be able to run our local development setup without needing an internet connection or anything beyond the code itself. This is more of a gut feeling than a well-thought-out principle.
I'm wondering what the best practices are for this kind of situation. I was contemplating creating an abstraction layer around these external services to return mock responses. That way, we can run the frontend and backend locally, and then handle real integrations on a staging server for testing. I'm not focused on automated testing here, just getting everything up and running locally without internet.
What's the general consensus in the industry on this? As someone with limited experience working with others, I'd love to hear your insights!
5 Answers
I’m on the same page! The idea of running a local dev environment without internet is definitely about having more control. When I work with external services, the reliability of those dependencies matters. I usually recommend:
A) Using dependency injection for easy integration testing with lightweight mocks.
B) Setting up mock HTTP servers to simulate those external service endpoints.
Depending on the complexity, I’d use one or both approaches to balance risk and time investment.
I totally agree about creating an abstraction! I tend to use the inversion of control pattern so my app communicates with a middleman that then interacts with the external services. This setup makes it super easy to mock responses based on the environment you're in. Also, swapping out services can be a hassle with the direct integrations they currently have, so this can save a lot of trouble.
While aiming for an offline development environment is great, it often doesn't scale with larger architectures. At the bigger companies I've worked with, we just accepted that some internet access was necessary, especially since much of our work was done on cloud VMs. But hey, mocking can definitely help with flaky services or those that don’t play well locally, just be cautious—it could introduce bugs.
Have you tried using Wiremock? It allows you to create mock responses easily that can integrate well in your dev environment.
Honestly, I usually just hardcode expected responses directly in my tests when necessary. I know this isn’t the most ideal practice, but it works for me in a pinch!
Related Questions
Set Wordpress Featured Image Using Javascript
How To Fix PHP Random Being The Same
Why no WebP Support with Wordpress
Replace Wordpress Cron With Linux Cron
Customize Yoast Canonical URL Programmatically
[Centos] Delete All Files And Folders That Contain a String