Often when I develop websites, I am faced with the task of adding functionality to existing sites. This requires deploying a copy of the site and making necessary changes there. However, the question arises of where and how to best deploy test sites so that clients can view the results without being on a local server.
Currently, I use a subdomain on my personal website for this purpose but it has its drawbacks. For example, I need multiple subdomains simultaneously, and having many copies of client websites can be detrimental to search engine optimization.
Moreover, I don't want to clutter my personal hosting space with test websites. Do you have any suggestions or experiences on where and how to showcase website development and improvements to clients?
When dealing with vds, there are two options available.
The first option involves configuring domains in the web server without making any changes to dns. Instead, the customer should be provided with entries for /etc/hosts. By doing this, it will be difficult for outsiders to locate your test site, and you won't have to enter your username and password at the root.
The second option is to register subdomains on dns and in the web server settings. To do this, you can register an entry * on your test domain with an indication of the test server and create subdomains only from the side of the web server. This is ideal when you need to quickly deploy a new test server, without having to wait for a dns update. Using the * entry, subdomains are also hard to find and will not get into dns databases that are later used by various crawlers and parsers.
In conclusion, it's important to consider both options carefully before deciding which one suits your needs and preferences.
Beget and other hosting companies offer free hosting for random subdomains, while there are easier options available if you have a GitHub account and don't mind it being open source for a period. One such option is HyperDev, which is ideal for backends on the node, while GitHub Pages is perfect for creating pages quickly.
Free hosting of random subdomains is available from certain hosting companies, including Beget. However, if you have a GitHub account and don't mind making it open source for some time, there are much simpler alternatives to consider, such as GitHub Pages for quickly creating pages or HyperDev for backends on the node.
You can access a free VPS with OpenShift, which may be slightly limited, however, compatible cartridges for all popular server software are available, or you have the option to build your own.
In addition, OpenShift also provides a customized git out of the box, as well as a deployment through it.
To prevent the virtual machine from sleeping, you can use external crown services, such as https://cron-job.org/en/, to periodically request the site.
One suggestion is to explore using cloud-based hosting services specifically designed for testing and development purposes. These services often provide a dedicated environment where you can deploy and showcase websites without interfering with your personal hosting space or affecting search engine optimization.
An option could be to consider using platforms like Heroku, AWS Elastic Beanstalk, or Microsoft Azure to create separate instances for each test website. These platforms offer scalability, reliability, and flexibility, allowing you to easily deploy and manage multiple copies of client websites. Additionally, they often provide subdomain or custom domain support, allowing you to showcase the websites to clients without cluttering your personal domain.
Another alternative is to utilize staging environments offered by content management systems (CMS) or website builders. Systems like WordPress, Joomla, or Shopify often have staging features that allow you to make changes and preview them before pushing them live. This way, you can showcase the improvements to clients without having to create separate instances for each test site.
suggestions and considerations for showcasing website development and improvements to clients:
1. Local Development Environment: You can consider setting up a local development environment using tools like XAMPP or WAMP, which allow you to run websites on your local machine without the need for an internet connection. This way, you can make changes and showcase them to clients without deploying them to a server. However, keep in mind that this method may not be suitable if you need clients to access the websites remotely.
2. Development Subdomains: Instead of using your personal website subdomain, you can create separate subdomains specifically for development purposes. This can help keep your personal website separate from the test sites and avoid any potential impact on SEO. Many domain registrars and hosting providers offer options to manage subdomains easily, allowing you to create and remove them as needed.
3. Virtual Private Server (VPS): If you have more extensive development and testing needs, you might consider renting a VPS from a hosting provider. A VPS provides you with dedicated server resources and allows you to set up multiple websites with individual domain names or subdomains. This option offers more flexibility and control compared to shared hosting or cloud-based services.
4. Version Control Systems: Utilizing version control systems like Git can help manage your codebase and streamline the deployment process. You can host your code repositories on platforms like GitHub or Bitbucket, and easily clone or deploy the websites to various environments when needed. This approach helps maintain a clean and organized workflow without cluttering your hosting space.
5. Collaboration Tools: Consider using collaboration tools specifically designed for web development projects. Platforms like Basecamp, Trello, or Jira enable you to communicate with clients, share files, track progress, and showcase updates in a structured and organized manner. This ensures clear communication and transparency throughout the development process.
tips for showcasing website development and improvements to clients:
1. Password-Protected Previews: Instead of deploying test sites publicly, you can create password-protected previews for clients. This way, only those with the password can access and review the websites. Tools like HTAccess or WordPress plugins can help you set up password protection for specific directories or pages.
2. Temporary URL Services: Consider using temporary URL services that allow you to generate unique URLs for your test sites. These URLs can be shared with clients for reviewing the changes without affecting search engine visibility or cluttering your personal hosting space. Services like ngrok or localtunnel provide this functionality.
3. Virtualization Tools: Another option is to use virtualization tools like VirtualBox or Docker to create isolated environments for each test website. This way, you can run multiple instances of websites on your local machine or a dedicated server without interference. These tools offer flexibility and ease of deployment, allowing you to showcase websites to clients quickly.
4. Client-Specific Hosting: If security and data privacy are of utmost importance, consider setting up separate hosting accounts or servers for each client. This approach ensures complete isolation of client websites and offers more control over security protocols. However, keep in mind that managing multiple hosting accounts might require more administrative effort.
5. Collaborative Prototyping Tools: Consider using collaborative prototyping tools like Figma or InVision, which allow you to design and showcase website mockups, interactive prototypes, and usability testing. These tools facilitate remote collaboration, feedback collection, and presenting design iterations to clients without the need for actual deployment.
6. Development Staging Environments: Many hosting providers offer staging environments as part of their hosting packages. Staging environments are separate copies of the live website where you can test and showcase changes before pushing them to production. This enables clients to review and approve updates without affecting the live website.