Switch branches/tags
Nothing to show
Clone or download
rauchg Dockerize (#22)
* pkg

* upgrade next / react

* fix location of `gpg.asc`

* remove unneeded env

* add graceful shutdown

* remove pkg

* use base node docker image
Latest commit 271acb0 Jul 7, 2018

Readme.md

blog

This is the blog that powers rauchg.com, built on next.js and deployed to the cloud via now.

Depends on the blog-views microservice for the realtime views display.

How to run

Development

All that's needed to run this blog is:

npm install
npm run dev

Then head to http://localhost:3000. Changes you make to components will henceforth be reflected there in realtime.

Deployment

All that's needed to deploy this blog to the cloud is to execute a single command (install it here)

now

When I deploy, I get a new instance of the blog at a new, immutable URL. When I browse to it and verify it looks ok, I set up an alias targetting the production URL rauchg.com.

now alias <url> rauchg.com

Architecture

Pure components

Every stateless pure component is found under ./components.

Every component that has to do with styling the post's markup is found under ./components/post/

These components make up the style guide of the application.

Blog posts

Every blog post is a static page hosted under pages/$year/.

This allows every post to load arbitrary modules, have custom layouts and take advantage of automatic code splitting and lazy loading.

This means that the bloat of a single post doesn't "rub off on" the rest of the site.

An index of all posts is maintained in JSON format as ./posts.json for practical reasons.

Custom server

I set up a server.js that boots up Next.js programatically. This gives me complete control over the HTTP request and response cycle.

In this case, the routes structured under pages/ are sufficient, but I set up a few redirections to retain compatibility with my previous WordPress based setup.

To start the custom server, I run node server.js upon deployment.