A separate environment
Per application, on different hardware from the one your business runs on.
Infrastructure and deployment
Every application I build gets its own environment where the work happens and where you approve it, separate from the server your business runs on. What goes live has already been used, by you, on a real address.
Development
Production
Separate machines. A build that goes wrong in development cannot reach the server your business depends on.
Part of What keeps it all running
Recognise this
What this covers
This is not sold separately from the system it carries. It is how anything I build gets onto a server and stays reachable.
Per application, on different hardware from the one your business runs on.
Set up once, deliberately: firewall, key access only, automatic security updates.
The same steps every time, in one go, instead of a sequence someone remembers.
The previous version stays on the server, so undoing a release takes seconds.
HTTPS renewed on its own. Passwords and keys kept out of the source code.
Off site and encrypted, with a restore actually tried, not assumed to work.
How a change reaches you
While a system is being built or extended, you have a working copy at your own address. You open it, use it, and tell me what is wrong, before anything touches the system your business runs on.
From an idea to your users
Releases
Each release is kept on the server as its own version, and the live one is a pointer to it. Going back to yesterday is a matter of moving that pointer, not of rebuilding anything under pressure.
Releases on the server
To go back
Illustration. Version names are examples. What matters is the shape: the old version is still there when the new one is not right.
Your data
The common shortcut is to copy the live database somewhere convenient so it can be tested on. From that moment your customers' data sits on a machine nobody protects. I do not work that way.
The server
A server that was configured by clicking around is a server nobody can rebuild. Yours is set up the same way every time, and the setup is documented well enough that another developer could repeat it.
Ownership
The server, the domain, the email service and any external account are opened in your name, with your billing. You pay the providers directly, at their price. I do not resell hosting and I do not put a margin on it.
Who holds what
Held by me
Access, while we work together
The setup documentation
Nothing you cannot revoke
In your name
Server and hosting
Domain and DNS
Email service
External accounts
Source code
How it runs
Accounts opened in your name, server set up, domain and certificates in place.
Work happens in your development environment, on generated data, at your own address.
Once you have approved it, the same version goes to production in one repeatable step.
The first period after a launch is watched closely, on real usage and real data.
A change reaches production only after you have used it
What it costs
Keeping it running afterwards is a separate, optional monthly service. See managed hosting and security
Questions
On a server rented in your name, from a provider you can see and pay directly. Which provider and how large depends on what the system does. If you already have hosting, I will tell you honestly whether it is suitable.
No. The development environment is provided as part of the work, at no separate cost to you, and it does not run on your production server.
To operate the system, I need access to the server. To develop on it, I do not need your data, and I do not take copies of it. If a problem can only be reproduced with real structure, values are replaced first, and the extract is deleted once the fix is done.
Yes, unless you ask for something else. Providers and locations are chosen with you and written into the setup documentation.
The previous version stays on the server, so the system goes back to the state it was in before, and we look at what failed afterwards rather than under pressure.
Yes, and nothing has to be unwound first. The accounts are already yours, the source code is yours, and how it is deployed is documented rather than improvised.
It depends on the project, and I use both. Containers earn their place when a system has several parts that have to run in known versions, or when the same setup has to be reproduced somewhere else. A single application on a server of its own often does not need that extra layer, and running it under its own restricted account gives the same isolation with less to maintain. I will tell you which one your case is, and why. Either way the setup is written down, so it can be rebuilt rather than remembered.
Yes, and it is work I do on its own rather than only as part of a build. Deliverability, meaning whether your message lands in the inbox or in spam, comes down to the records behind your domain, SPF, DKIM and DMARC, and to the reputation that domain has built up. I set those records and repair a reputation that has already been damaged. I also run my own mail server, and client domains send their mail through it.
Monitoring, backups and updates after launch are a separate monthly service. If you would rather run it yourself or hand it to your own team, everything is documented for that.
Tell me what you have today, and I will tell you what it would take to run it properly.