Getting a "free" ghost.io custom domain

Ghost is a great platform for domains, with much more honorable prices than other sites like Medium or WordPress. All of these sites provide free subdomains for your blog so people who want to view it can go to YourName.[site]. This is great for most people, as they can link to it on their social media, however in order to get a custom domain you must give up some money.

image

Sites like WordPress allow you to register a domain through them for a reasonable price, however, you're stuck to using WordPress as your blog platform, which is not everybody's choice. Medium and Ghost don't offer domain registration, however, offer plans where you set up a cname in your domain's DNS.

These options come with some downsides, such as not being able to host files in subdirectories of your root domain if you so choose to set up your blog at the root. throughout the past few years, I have left links to certain files in Youtube videos and programs that hard link to subdirectories of judge2020.com.

Since that is not an option, I had to look into other options. Ghost offers a 15 day free trial for ghost pro including the custom domain. Since this blog likely won't generate much traffic, upgrading to pro for too long would be wasting money on my part. Instead of letting the trial expire, I had to think of a solution.

The answer: what you see now.

In order to allow the root of the domain to display my blog while not breaking links to subdirectories, I consulted google for a way to iFrame the entire page and have the source be the ghost blog. The top result is this stack overflow answer.

<style type="text/css">
            body, Html
            {
                margin: 0; padding: 0; height: 100%; overflow: hidden;
            }

            #content
            {
                position:absolute; left: 0; right: 0; bottom: 0; top: 0px; 
            }
        </style>

<div id="content">
<iframe src="https://judge2020.ghost.io" width="100%" height="100%" frameborder="0" />
</div>

With this workaround, there still is a problem. Clicking on links. Since this is a single Html page that's requesting the browser to load an external resource, it's completely up to the browser to handle links within the iframe.

Links to my social media won't work as the hosts don't allow iframes. Back to google! I need to only open certain links in new tabs (in this case, the social media links) while keeping blog links within the iFrame.

That brings me to this answer. I can edit the theme to make the social links open in _parent rather than the current window, which is the iFrame in this case.

And that's where this blog is at now. Technically this isn't good for Ghost, if enough people use this workaround they might implement security walls that prevent iframe loading, such as Paypal and Stack overflow do. I intent to purchase the personal package once I obtain a steady stream of income, but for now this works.

My changes can be found in This fork of the the-shell repo.