I have recently received some requests to design business websites. When I started asking some questions on what I would be working with, I invariably received the response that the prospective client would have to get back to me after further research. In light of this, I came up with a series of questions that I would be asking of any client, and ones they should prepare answers for when we sit down and discuss plans. The answers to these will determine not just my fees, but the ongoing expenses that the client will have to be responsible for after my work is complete.
Every client will be asked the following questions:
- What sort of computer/system will the website be hosted on?
- How will the website handle data storage?
- Where will the website keep its important files?
- What provider is handling billing and advertisement revenue?
- What other tools will be integrated with the website?
- What will the website look like?
Hosting
What sort of computer/system will the website run on?
At the very basis, a website works by one computer (the server) sending documents to customer computers (the clients). As a web developer, the most important piece of information I would need to know is how the server hosting the website is set up. Most options fall under the following categories:
Shared Hosting
Shared hosting works by one machine hosting several websites from one setup. Each client business gets their own program instance, but all the routing is handled by the host's main hosting program.
Advantages
- Cheap: The host can handle a large amount of websites from a single setup. From a hosting perspective, it is simple and does not require many resources, and those savings are usually passed on to their client businesses. These plans usually fall under $200/year for one to three websites per business.
- Easy: A lot of the difficult parts of web hosting is handled by the hosting vendor, so the businesses spend a lot less time on the low-level technology and more time on content.
Disadvantages
- Shared Resources: In shared hosting, all the computer resources are shared among all the websites. If one website suddenly receives a high amount of traffic and consumes a lot of computer resources, all websites hosted on that machine will slow down. Businesses are beholden to other businesses that they do not necessarily have control over or contracts with.
- Rigidity: Any time that a vendor handles the website infrastructure, businesses are limited in the tools they can publish. In a shared hosting setup, server-side tools are limited by whatever the vendor host has provided (usually WordPress). If most of a website's creativity can be expressed on the client side (i.e. client-side web apps), then this may not be a problem. Server-heavy applications may be constrained by shared hosting.
Best for
Shared hosting may be ideal for businesses that only require simple websites or ones that require very little server-side processing, or can fit their websites in with standard templates. It is also best for smaller businesses that do not expect much traffic, and can tolerate unexpected resource constraints.
Unmanaged VPS
A virtual private machine, or VPS, is set up by a vendor taking their machine and dividing up the resources among its client businesses using Virtual Machine technology (i.e. a computer simulating another computer). Every business gets a specific amount of computer resources, and cannot exceed it. This solves the shared resources problem of shared hosting, since one website cannot infringe upon the resources of another. In an unmanaged VPS, the business is given the raw virtual machine, and are expected to handle the web server infrastructure themselves. This gives businesses incredible freedom in what they make.
Advantages
- Reliability: The resources a business website has is always available to that business (contracts and usual internet hiccups aside). A business using a VPS does not have to develop contingency plans that revolve around unrelated businesses.
- Cheaper: While using a VPS is certainly more expensive than shared hosting, it can still be affordable depending on what resources you purchase. Depending upon what is needed, businesses can get a decent VPS for anything from $200/year to $700/year.
- Flexible: In an unmanaged VPS, you have raw access to the machine itself. As such, you can deploy whatever program you want on your server, from websites with custom server code to game servers and everything in between.
Disadvantages
- Hidden Costs: While the base cost of a VPS may seem affordable, there are a lot of considerations to take in with the final costs. Adding extra computing resources and increase the cost of the desired machine. Furthermore, attempting to add on management tools like the popular cPanel often further increase the price.
- Maintenance: In an unmanaged VPS, the business is responsible for almost everything. This comes with a great deal of responsibility, and often requires that the business hires a full-time IT specialist to maintain the machine.
Best for
An unmanaged VPS will be best for businesses that demand a lot of flexibility and customization in their servers, but do not wish to pay the full price of managing their own machines.
Side Note
At the time of this writing, the SinglePilot website is running on an unmanaged VPS (although I have plans to move to self hosting in the future).
Managed VPS
A managed VPS serves as a combination of the flexibility and reliability of the usual VPS, while still maintaining the ease of vendor management that shared hosting is known for. Client businesses still have a great deal of control over what they add to their server machine, but can rest easy knowing that the core infrastructure is handled by experts.
Advantages
- Reliability: Managed VPS machines have all the reliability of an unmanaged VPS, bolstered by the assistance of the vendor ensuring that everything is functional.
- Easier: Having the vendor provide support takes a lot of the burden of IT management off the shoulders of businesses, allowing for the business to devote more resources to the content.
Disadvantages
- Flexibility: While any VPS has far more flexibility than shared hosting, having the vendor handle maintenance will come with some constraints on what you do with the machine.
- Expensive: A managed VPS has extra fees for the privilege of having a vendor maintain parts of it. While there is a great deal of variation in final costs, businesses can expect to pay anywhere from $800/year to $1,800/year for this type of hosting.
Best for
Businesses that need a more reliable and advanced website, but are not prepared to maintain everything themselves.
Dedicated Hosting
While a VPS involves the vendor dividing up resources among all its clients, dedicated hosting has the vendor provide an entire server machine exclusively to a client. Most dedicated hosting is unmanaged, although some vendors provide plans for managed dedicated hosting.
Advantages
- Reliability: Like a VPS, the business server is not beholden to anyone besides the vendor.
- Flexibility: Again, client businesses have access to everything the server machine has to offer, allowing for any custom applications required.
- Power: The full power of a server machine is made available to the business, allowing for the most complex and resource-intensive of applications to run without a problem.
Disadvantages
- Cost: Dedicated hosting is by far the most expensive route, with plans for unmanaged hosting easily costing upwards of $2,000/year for even the cheapest plans. Managed plans are even more expensive.
- Maintenance: As with the VPS, much of the machine maintenance falls upon the business.
Best for
Businesses that have potentially millions of customers will often require dedicated hosting plans. Most of the businesses that I work with will not need this plan.
Self Hosting
One rarely-discussed option is for a business to use computers that they keep on their own premise. This gives the business ultimate flexibility in both their hardware and software, and removes a lot of the running expenses of relying on third parties.
Advantages
- Control: By keeping the machine on-premise, businesses can make all the decisions on hardware, upgrades, operating system choices, network configurations, and more. No third party host provides this much decision power to its clients.
- Lower Subscriptions: By purchasing the machine themselves, businesses only pay for the machine once. All further costs go to internet, energy, cooling, and usual IT maintenance.
Disadvantages
- Hidden Costs: While businesses no longer have to pay fees to rent the machine, they are still responsible for internet, energy, and potentially cooling. The prices of these can often exceed that of most residential homes.
- Maintenance: Even in unmanaged hosting plans, the vendor will handle the work in keeping the machine online and the data safe from deletions and physical thieves. In self-hosted setups, all this is handled by the business. This can include replacing hardware, handling backups, and ensuring that outsiders cannot break in to steal the device.
Best for
Self hosting is usually the choice for hobbyists and house businesses that are not ready to rent, as well as large businesses that already have extensive building infrastructure to utilize. It can also be useful for clients that do not wish to entrust their data to third parties.
Databases
How will the website handle data storage?
Any website that is more than a collection of static pages needs some ways to store new data. Even simple websites often need to store accounts and billing records. Most of the time, this is done with a database. Whether the database is stored on the hosting machine or is provided by a third party for a fee, a decision will have to be made on which one to use.
As far as my services go, I do not care much which database my clients choose. Different databases systems are certainly good at different things, and I can assist clients in choosing one if needed. At the end of the day, though, I am proficient enough to use whatever the client requires.
If we want to get into detail here, the most important distinction in databases would be relational vs non-relational databases. Relational databases like MySQL, PostgreSQL, and Snowflake are good for highly-structured, table-based data (think of Excel spreadsheets). Non-relational databases like MongoDB and LDAP are better for storing and looking up arbitrary binary data. Some businesses may utilize both. However, for those that have the resources for or the desire to maintain only one, I can adapt any of them to any purpose. This decision mostly boils down to what the business wants to be responsible for maintaining, and the rates of any vendors who will take up that responsibility for the business.
File Hosting
Where will the website keep its important files?
A lot of businesses need to store arbitrary files, both for internal use and for customers to download. The main question is where they will be stored.
On the Host Machine
Depending on the nature of the website host and the files themselves, the files can very easily be stored on the hard drive of the host machine itself. A VPS or a dedicated host will most certainly have extra space on their drive that businesses may utilize.
Advantages
- Simple: The hard drive is already there without any setup being required. Storing to and pulling from this source is incredibly simple.
- Fast (Read/Write Speed) Most servers use NVME Solid State Drives for storage, so systems that use the system drive will almost never be limited by drive read/write speed.
- Free: As long as the drive space you already have is adequate, businesses do not have to pay any extra fees to utilize what the server machine already has.
Disadvantages
- Small: Hosted servers in particular are usually not equipped to handle large files, and few plans provide for more than a terabyte of storage (with most falling under either 256GB or 512GB of storage). Attempting to expand upon the server drives can get very expensive per GB.
- Slow (Transfer Speed) Unless you have a large fleet of server machines that each have copies of the file (i.e. a CDN), the speed at which your files will be transferred is limited by the bandwidth of your machine as well as the geographical distance between the customer and the server machine. While these limitations are not especially problematic for small website files and network packets that power the main website, larger file transfers may be more problematic.
Third-Party Cloud Storage
Businesses that have to handle larger files may choose to have a third party to hold onto the files. This can include services like Google Cloud Bucket and Amazon Warehouse.
Advantages
- Large Capacity: Most industrial cloud storage services sell plans measured in terabytes.
- Fast (Transfer Speed) Depending upon how you integrate the cloud service with your business, and what geographical configurations you set your bucket to utilize (which may have additional fees), you may be able to relieve your server of the duty of transferring files to your customers and let the cloud service handle that.
Disadvantages
- Expensive: Cloud storage services must be rented.
Databases
Most databases are capable of handling arbitrary binary data. Some database systems will handle it better than others (non-relational databases are often more efficient for data of arbitrary sizes ranging from a few kilobytes to tens of gigabytes), but even standard databases like MySQL can still handle most arbitrary file data.
Advantages
- Already Available: Many businesses will already have a database to utilize. They can quickly add new tables to hold their files without setting up any additional infrastructure.
Disadvantages
- Limited by Host: Unlike dedicated cloud storage, file transfers and storage size is still limited by both the website hosting machine and whatever machine is hosting the database (which may be one in the same).
Billing and Advertising
What provider is handling billing and advertisement revenue?
Most websites will either be selling products or providing content in exchange for advertisement revenue. Any time that money is involved, the businesses will need to partner with third parties that have the trust of banks and advertisers. The business will need to create accounts with an established billing provider (like Stripe) and/or an advertisement network (like Google or Bing). I will then need to integrate the service with the website systems in the background. In any case, fees and stipulates from these providers will need to be considered.
Infrastructure Partner
What other tools will be integrated with the website?
As we have come to better understand the nuances of creating the internet, more and more tools have come up to solve various problems we have come up with. Content Delivery Networks (CDNs) like Cloudflare increase website speeds for customers far away from the business servers. CAPTCHA services like hCaptcha and Anubis prevent automated tools (bots) from robbing customers of server resources. Other partners can provide website utilities ranging from chatbots to newsletter handling. In any case, I will need to know what third-party partners I need to integrate the website with.
The Design Itself
What will the website look like?
This is the fun bit. I am fully capable of building a website from scratch (see: the website this blog post is hosted on), but most clients will have ideas on what their website will contain. When I meet with a client, I will want them to have a general outline the different pages, the layout of said pages, the features the website provides, and at least some of the branding (logos, images, color schemes, etc.) ready. There is going to be some back-and-forth on what is possible and practical, but I want clients to at least have a general idea of what they want. These products serve primarily as their voice, not mine, and I cannot talk on their behalf.
On a more practical note, this is what takes up most of the fees to me. Almost everything else above is ongoing expenses to third parties.
In Conclusion
The decisions made to these questions will vary depending upon the financial resources of the client business, the features their website will need, and how much IT responsibility the business is willing to shoulder after I complete the job (or how willing they are to continuously hire me for further work). If my clients are still unsure even after research, I am quite willing to explore and advise them. However, all of these questions will need to be answered before I can begin work.
If you are interested in hiring me to make your website (or any other piece of software, or to work on your computer systems), you can contact me at https://singlepilot.net/contact.