Parking for Pennies (or less) — Part 1
This is the sixth and final article in a series about my attempt to find a domain parking solution that allowed custom content while still maintaining a low cost for each domain. I was hoping to keep cost per domain to pennies a month, across hundreds of domains that still adds up.
In the end I was able to come up with a hosting solution that has zero costs, subject to bandwidth limits. Having no fixed costs outside of the domain registration fee makes parking a questionable name more palatable.
Parts to the Puzzle
The TachyonCMS project provides the free tools to create, manage and serve TachyonCMS content. These tools provide the content management part of the solution.
Existing cloud services are used to provide the content delivery side of things. I’ll be using GitHub and Netlify in this example. As long as you stay within the free tier of your cloud providers service there isn’t any charge to get your content out there. The added benefit is that all of these pieces scale easily using well proven network technologies.
None of these pieces take more than 15 minutes to complete from scratch. If you already have some of the providers setup the whole process should take less than 30 minutes.
- TachyonCMS Multi-Site App
- TachyonCMS Editor
- Git Provider — GitHub
- Cloud CDN Provider — Netlify
- DNS Provider — Domain registrar
TachyonCMS Multi-Site App
The multi-site app is a basic Quasar 2 framework application using Vue3. It has all the power and potential of the Quasar framework, with a little code added to fetch and understand TachyonCMS data.
- Supports unlimited domains from one deployed site, this is great for domainers needing to park their domains easily.
- Serves static or semi-static content. For entirely static content each page gets compiled into an a physical HTML page. For semi-static content a static site is created routing calls to a single page that dynamically loads the content from static JSON files. Those JSON files can be updated without recompiling or rebuilding the app.
- Full Quasar support, anything you could do with a normal Quasar app can be done with this app. It also means you have access to the multimedia tools developed for the TachyonCMS Editor.
Fork the Multi Site App Repo
There is an option to Fork in the upper right corner, use that to fork the repo to one of your own. This will allow you to customize the site as much as you’d like and manage those changes in your own repo. You could clone the code as well but wouldn’t be able to save your change back to GitHub as quickly.
Clone Your Repo
By doing the work in a fork you can easily style and modify the Quasar app to your hearts content, while also being able to cherry pick new render components from our parent repo.
git clone git@github.com:bwinkers/multi-site-app.git
Install NPM Modules
cd multi-site-app/app
yarn install
Start the Multi-Site App
This starts the Quasar Multi-Site App in hot reload mode. Since the TachyonCMS files reside within the project,changes to the CMS files result in a reload of the site. No preview site or configuration needed.
quasar dev
TachyonCMS Editor
TachyonCMS maintains a free CMS web-application at TachyonCMS.org. Anyone can to use this app to manage as many local projects as they’d like. The content data never gets transmitted to the server.
The user simply visits the site and selects a local directory they would like to use for content.
If the directory hasn’t been used by TachyonCMS before the app will create three new folders named flows, nuggets and tags. If the app finds existing directories with those names it uses them.
If you wanted to, you could clone the TachyonCMS monorepo and run the editor-ui code locally. Unless you plan on also modifying the editor code there is no reason to checkout the much larger project.
Even as the primary developer I seldom use the local version, the hosted version is just too convenient.
Content Directories for Multi-Site App
When the editor being is used with the TachyonCMS Multi-Site App there are three directories you will be working with, you can have all open in different windows or tabs.
app/public/tcms
app/src/tcms
app/src/tcms-config
The semi-static flows go in app/public/tcms, the JSON files then get served as-is through the deployed app as static content. If your are hosting that data someplace like AWS S3 you can update or add to the data without recompiling the application. Netlify doesn’t provide direct access to the files so you must use build minutes to deploy each change.
The flows for precompiled static HTML pages go in app/src/tcms. These JSON files are not directly accessible once deployed. Fully static pages are best for SEO.
The app/src/tcms-config contains a special Flow used to configure the Multi-Site app. We currently use the JSON editor to modify the config object as its a pretty simple format. As it becomes more complex we’ll create a custom editor module.
Additional Parts of this Article
Medium was having problems with a large story so I had to break it up.
Part 2 — Creating Site Flows
Part 3 — Publishing to a CDN with GitHub and Netlify
Part 4 — DNS Configuration
Previous Articles in the Series
Part 1 — Parking for Pennies
Part 2 — AWS SSL Certificates
Part 3 — Mass Hosting Paradigm
Part 4 — Not Content with Contentful
Part 5 — Introducing TachyonCMS