
Free static page hosting on Google App Engine in minutes - fizerkhan
http://www.fizerkhan.com/blog/posts/Free-Static-Page-Hosting-on-Google-App-Engine-in-a-5-minutes.html
======
rza
I host my personal website GAE. One thing to be aware of is when moving to a
personal domain, you need to map to a subdomain so you can't use a naked
domain[1] (e.g. '[http://github.com'](http://github.com')). You have to map to
something like 'www.'

[1]
[https://developers.google.com/appengine/kb/general#naked_dom...](https://developers.google.com/appengine/kb/general#naked_domain)

~~~
sxp
This is the main reason why I haven't bothered switching to GAE for my static
website. AWS + S3 + Route 53 allows hosting naked domains:
[http://aws.amazon.com/about-aws/whats-new/2012/12/27/root-
do...](http://aws.amazon.com/about-aws/whats-new/2012/12/27/root-domain-
support-on-amazon-s3-hosted-websites/)

~~~
zhuzhuor
CloudFront allows naked domains, so you can use naked domains for almost
anything if you place a layer of CF before it.

For example, for this case of GAE, you can use

    
    
      Naked domains <=> CloudFront <=> GAE

------
bobfunk
Did a quick comparison with my own service, BitBalloon.

On appengine you're just deploying a dynamic app that just routes everything
to a static folder, but since Google doesn't know this is a static site, it's
pretty limited what they can do to set good cache headers and optimize stuff
for performance. So even if they have an awesome infrastructure, BitBalloon
will make your site perform better.

Here's the quick test result from the same site uploaded to AppEngine and
BitBalloon:

[http://tools.pingdom.com/fpt/#!/vLi9d/http://teststaticsite....](http://tools.pingdom.com/fpt/#!/vLi9d/http://teststaticsite.appspot.com/)
[http://tools.pingdom.com/fpt/#!/dwqwvX/http://speedtest.bitb...](http://tools.pingdom.com/fpt/#!/dwqwvX/http://speedtest.bitballoon.com)

~~~
adam74
The speed difference is negligible. The price difference for a custom domain
is not.

~~~
bobfunk
Peoples definition of negligible probably varies.

Half a second is definitively enough that plenty of large scale tests have
shown differences in conversion rate.

That difference gets much bigger for people with more than 1 page view due to
perfect caching headers.

------
praseodym
GitHub Pages is even easier to set up, and does support naked domains
(although to use their CDN it is limited to DNS providers that support ALIAS
records) -- [https://github.com/blog/1715-faster-more-awesome-github-
page...](https://github.com/blog/1715-faster-more-awesome-github-pages)

~~~
Andrex
Yeah, I'd personally rather have naked domains than a couple hundred
milliseconds better performance for my static sites (which are basic and small
pretty much by definition.)

------
ethikal
"Moreover it is faster than other static hosting services. Because it runs on
Google infrastructure."

Um, wow.

~~~
thenomad
I actually benchmarked this a while ago. I use a lot of static pages that need
to be absurdly fast.

I can definitively say that unless Google App Engine has substantially changed
in architecture over the last 12 months, it is definitely __not __faster to
host your static site there rather than on an nginx-based VPS with someone
like Digital Ocean.

My tests showed load times on GAE-hosted static sites to be around 200ms -
300ms slower than a reasonably-optimised DO VPS.

It's possible, of course, that GAE would pick up some speed if you're loading
the page from somewhere a long way away from the equivalent VPS, as GAE
essentially comes with a built-in CDN (to the best of my understanding).

~~~
declan
Elie Bursztein leads Google's anti-abuse research, and recently mentioned on
Google+ that he moved his personal web site to GAE:
[http://www.elie.net/](http://www.elie.net/)

I can load his GAE-hosted web site in ~300ms, and there's a useful performance
box on the right sidebar of his site that breaks down how long each component
takes to load on GAE:

$ time curl [http://www.elie.net/](http://www.elie.net/) > /dev/null % Total %
Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent
Left Speed 100 36146 0 36146 0 0 113k 0 --:--:-- --:--:-- --:--:-- 114k real
0m0.316s user 0m0.005s sys 0m0.005s

I've been thinking of doing the same with my personal web site but haven't
yet.

~~~
thenomad
Interesting - that's 100ms faster than the test sites I was using.

Do you know what language he used to implement the base setup? I had a
suspicion that implementing in Go might end up being faster than Python.

~~~
declan
From some of his other posts I'm 99% sure that he used Python.

------
mehulkar
Is there a way to redirect all[1] requests to index.html? The use case is an
Ember app that uses history location and is deployed as a static website. In
this case, requests to `/whatever` still need to serve index.html and let
Ember handle the routing. Can GAE app.yaml specify rules like this?

I ran into this problem with S3 and ended up writing a simple server to handle
it and deploying to Heroku.

[1] By all, I mean all except the ones to /assets or something similar.

~~~
toomuchtodo
Did you try using Cloudfront with S3? I believe it solves the problem you
detailed with regards to redirects.

~~~
mehulkar
Nope, didn't try Cloudfront. I'll look into it, thanks!

~~~
toomuchtodo
If you still run into problems, reply back to this and I can get in touch to
help (no cost).

------
tapsboy
How is it better than just using Dropbox or S3 or even Google Drive to host
static content?

------
drakaal
If you want mostly free hosting I built this a long time ago.
[http://www.cdninabox.com/](http://www.cdninabox.com/) it mirrors any site
with caching using Google Edge cache.

Because it will handle URL Re-Writes you can host on any host in a
subdirectory and still have it be your root for the customer.

I mostly abandoned this when Google Launched "PageSpeed" for appengine which
was too much a direct competitor. Also when they moved to AppsForDomains you
could no longer have a naked domain, and that was annoying. I don't like www.
having to be on the front of my URL.

------
mountaineer
From years back, there was a tool created called DryDrop[1] that allows you to
publish static GAE sites via GitHub push.

[1] [http://drydrop.binaryage.com/](http://drydrop.binaryage.com/)

~~~
westurner
[https://developers.google.com/appengine/docs/push-to-
deploy](https://developers.google.com/appengine/docs/push-to-deploy) (Git +
.netrc)

------
fuzzythinker
Somewhat related, I've recently found and evaluated nodejs static site
generators (including ghost which I find vastly overhyped and still too stuck
in wordpress way of doing things). And the relatively unknown wintersmith [1]
is just so awesome that it really needs some mention. It's easy to get
started, relatively well documented compared to others, and you have full
control to extend it should you need to.

[1] [http://wintersmith.io](http://wintersmith.io)

------
bhartzer
Putting up a landing page for a 'parked' domain name would be a great use of
this. Rather than letting your registrar put up a page where they make money
off of the clicks.

------
aritraghosh007
I have my personal site hosted on Google App Engine too. Must say its sleek
and simple. I had evaluated a lot of other (typical) options like EC2,
Dropbox(S3) and even Github pages. Nothing came close to the ease and the
performance that GAE gives. Benchmarking about 10 URLs on my site, returned an
a.r.t of 3.5ms aggregate on GAE vs 5.6 ms on EC2.

------
contacternst
"All the services has its advantages and disadvantages over other."

What's wrong with this sentence?

~~~
lutusp
Congratulations -- you've just joined the club of people who've learned that
programmers, extraordinarily aware of computer program syntax and having a
desire to tune code endlessly, are almost all paradoxically hostile toward any
attention paid to their broken English prose.

~~~
ithkuil
No, they are just lazy, let the compiler do the checking, a compiler known as
HN.

~~~
toomuchtodo
I would love if when I typed a post into a text box such as this one or on
Reddit, when I hit reply/submit spelling and grammar mistakes were
autocorrected immediately before the post.

A wise man once said: If you want something done, ask the laziest person in
the room how to do it.

~~~
ithkuil
Another wise man once said: If you want something done, ask the busiest person
in the room, and it will be done :-)

A team made by the right combination of those two types will kick asses.

------
rikkus
Seems you can set up custom DNS for your site too, with wildcards even. Pretty
nifty.

------
herokusaki
Any limitations on traffic?

~~~
chrisfarms
Free quota limitations are listed here:

[https://developers.google.com/appengine/docs/quotas](https://developers.google.com/appengine/docs/quotas)

------
Kiro
Seems nice! How do you set up a custom domain name for it?

~~~
westurner
[https://developers.google.com/appengine/docs/domain](https://developers.google.com/appengine/docs/domain)

------
WhitneyLand
What service allows full SSL use without paying big bucks?

~~~
blackdogie
I quite like [https://www.startssl.com](https://www.startssl.com) , they are
pretty cheap and even free in some cases. I still don't know why companies go
for expensive certs.

------
donniezazen
Can you use one of the static site generators and git to publish your posts?

~~~
skj
Yes, you can use push-to-deploy on a Google-hosted repo.

[https://developers.google.com/appengine/docs/push-to-
deploy](https://developers.google.com/appengine/docs/push-to-deploy)

------
donniezazen
Since it's Google, I am sure one is allowed to use Adsense.

------
tuananh
What are the advantages of using GAE over Github Pages?

------
babyturtle
To have your own domain running on GAE is not free anymore... and it is a
ridiculous process to set it up.

------
notastartup
I'm glad I stumbled onto the second page of hacker news, this is an absolute
gem!

