I'm looking for ways to show a demo site to a client who's not able to be in the same room as me, without using a public server.

For this particular situation, I've been fixing up an old site I had laying around for a friend, but the free server it used to be hosted on is no longer available, and I still don't have a new server for my own testing site, so I've just been using a computer on my local network as a server to run the PHP with.

Now they have asked to see the site, but they are unable to come see it, and I won't be fiddling with port forwarding, etc... on my local network for this. Also I can't organize a specific time for them to view it, so sending them a copy would allow them to view (and review) it on their own time without any inconvenience to me.

While this site does include some server-side PHP, in this instance I don't need something that will execute that for the client, but it would be nice if possible, not to mention my curiosity and the potential for future projects that require that capability. But it's important to not have to require the client to install an entire webserver, or fiddle around executing from the command-line before viewing, etc... Preferably it would be something I can package into a single zip file and give them everything they need.

Options I've looked into:

  • Providing screenshots: This is an obvious and simple option, but misses the interactivity and the implicit feeling of it being a real website. (I'll also mention video conferencing and TeamViewer/remote access, neither of which fits the criteria though, primarily due to having to coordinate times.)

  • MHTML: Seems like an excellent choice for a single page, but I can't find anything regarding using these for multiple pages, whether that would be packaging them into a single file or linking between files (though that would require putting shared assets in each, kinda defeating the purpose).

Are there any other strategies or techniques that I could use based on your experience?

  • 1
    Screen sharing would be the least labor-intensive option, though you said you can't set a specific time for viewing, which rules that out. If you want them to see how it works interactively, I don't see how you can get around running it on some web server somewhere - whether that's your own computer, a new free hosting account, or the client installing xampp.
    – WebElaine
    Commented Apr 27, 2018 at 15:52
  • "without a live server" Do you mean no production server or is the client offline? How about a virtual server in the cloud like AWS EC2 (or similar) with access only for you and your client?
    – user84582
    Commented Apr 27, 2018 at 16:12
  • @Fabian I mean that the only server that's available to me at present is my personal computer on my local network, there used to be a production server, and I used to have a development server where I would temporarily dump this, but neither exist right now. The AWS EC2 free tier looks like it might be handy as a temporary development server while I'm between though. Commented Apr 27, 2018 at 16:23
  • 1
    @SlipperyPete As per the related Meta discussion, I removed what might be construed as asking for recommendations for tools and software. WebElaine provided a commonly used strategy above, and one below as well. Perhaps there are others...though sharing your local server is probably the most commonly used one, and doesn't require much "fiddling" to forward a port in your router - we already have quite a few related questions on that here, and there's more on Super User.
    – dan
    Commented Apr 28, 2018 at 5:16

6 Answers 6


Sounds like you have a dynamic PHP site that you need to render a static copy of, to a locally browsable folder with relative links, correct? Then you can share that folder with the client so they can browse a static copy on their desktop. If I'm understanding your use case, there are plenty of ways to achieve this.

The CLI way

Try wget to download a local copy of the rendered site. This example command will do, though here I'm using a localhost IP address and you will have to change that to match the IP address for the dev machine on your LAN:

wget -mpck

The GUI way

Try HTTrack Website Copier, or any other website copying tool. HTTrack is free and open-source, and I've tested it before and found it to work well.

A word of warning though, you mention you are "fixing up an old site I had laying around for a friend". You probably trust your friend not to take the files and refuse to pay you, so the above methods should be fine. However for any use-case involving a paying client, this might not be a smart move. You are delivering a complete static copy of the site, which might be 'good enough' for an unethical client to keep without paying you for the final (PHP) site. Just something to consider...

  • Thankyou for providing the only actually relevant answer thus far, this is something I had looked into already but was edited out of my question and I hadn't had a chance to put it back yet. It looks like software to download a static version is my only real option, thankyou for providing some examples of the type of software that would be required. I actually haven't been able to make HTTrack work right just yet, but I this is clearly not the place to ask about that. Considering the trouble though, it may well be easier to boot up a different computer and use wget instead. Commented May 1, 2018 at 1:14
  • also the PHP in this instance is rather fundamental, and this is a freebie, so no worries about that. Commented May 1, 2018 at 1:18

Why not just make a difficult (impossible?) to guess subdomain e.g. g8aduc3s.example.com and put basic authentication (assuming Apache server, https://wiki.apache.org/httpd/PasswordBasicAuth) in front of it so a username and password is required to access the site?

You will then be able to show the person on the actual server and while it is facing the web, it won't be accessible to the public.

Not only does it satisfy the client who is remote, but then if the site is suitable, it is already in place on the server and can be made the production site with minimal work.


We use Adobe XD for prototyping. Or you can look at prerender.io to create a static, navigable version.

  • The site already exists, so it's more than a little late for XD, not to mention it doesn't actually solve this problem. From a quick browse of prerender.io's homepage, while certainly useful and I'll be making a note of it for future reference, I'm unsure how it's relevant. Commented Apr 27, 2018 at 15:12
  • 2
    Like Adobe XD, InVision and Axure allow you to import screen shots of a page, then make "hotspots" clickable, so users can click through as if it were a real website. This is about your only option if you don't want to put the site on a server somewhere or screenshare.
    – WebElaine
    Commented Apr 27, 2018 at 15:54

You could use 000webhost.com to host it (they allow PHP), but I dont recommend this host for any serious website, but it should be good enough just to show the client your demo.

You can also use PHP to make some kind of password protection if you want to make sure no one else will be able to see the website.

  • Using 000webhost would most definitely be using a public webserver, which is what they don't want to do. Commented Apr 28, 2018 at 23:12
  • You appear to be assuming that the "cost" of hosting on a public server is the main reason for not using a public server and the reason for mentioning 000webhost is that they offer a "free" option. Whilst this might be a reasonable assumption, the OP does not actually state this in the question... except that in comments they are willing to entertain "AWS EC2 free tier" (an external host) as a viable option - so "cost" may well be the deciding factor after all? @StephenOstermiller
    – MrWhite
    Commented Apr 28, 2018 at 23:40

If the website is made up entirely of static files, Fenix Web Server fits this requirement.

It's free and easy to use, and allows you to share your site publicly via a service called localtunnel.

Link: https://fenixwebserver.com/


If you are using XAMPP you can start up apache and mysql service then find your private ip address(lunch cmd and type "ipconfig") and give it to your client. When you client type the ip address on his/her browser he can access your local sever remotely. Note: your public ip address will not work.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.