Starting a new blog

I have finally updated my blog! Here are some thoughts on the build pipeline, publishing to P2P services, and ideas on content.

Gatsby JS

This is the first time I am not using Jekyll for static sites, opting for Gatsby. I have grown more familiar with Javascript over the past few years, and I was not particularly proficient with Ruby in the first place. The idea of using Javascript and React to write the components, generate a static site, and optionally hydrate once on the client is one that appeals to me.

Asset pipeline

I also feel more confident playing with the asset pipeline in JS, and have already done that with the font loading. In the (not-so-much) background, Gatsby uses webpack to handle much of the bundling and asset loading. This is cool because webpack can lift things into its own representation of the world, and Gatsby can use that. Whether all that is needed is debatable, but I like the plugin system that Gatsby offers on top. In fact, I think that the plugin system is one of the big benefits. I would like to write more about this in the future; I tried my hand at an early Gatsby plugin for loading fonts in multiple stages, inspired by Zach Leatherman’s writing on the topic.

Styling

I am a big fan of Tachyons by Adam Morse. I have been using it in most of my projects, especially when I have access to a component system. To spice things up a bit I am using styled-system. Styled-system keeps the mathematical nature and atomic composition of Tachyons, and makes it available as styling props on React components. The workflow is similar to working with Tachyons, but with the added benefit of defining the styling API and composing with it. Pairing it with emotion gives me easy access to inlined “critical” CSS for each page.

I am not hugely sold on css-in-js as an authoring format, but I think it works well with higher-level tools that keep things consistent, such as styled-system. Giving JS access to CSS means that you have more information to do interesting things with it. Styled-system is one of those things.

Publishing on Dat

This blog is also published on Dat, under ­dat://fpapado.com.

I would defer to Tara Vancil’s great post on publishing on Dat for this. Having done the initial setup, I have two amusing commands to publish in my package.json.

"release:dat": 
  "npm run build && npm run deploy:dat",

"deploy:dat": 
  "rimraf ~/Sites/lightbulb && cp -r public/ ~/Sites/lightbulb"

Next Steps

I already have a couple of post ideas in the pipeline. I am also excited about using GraphQL to link various topics and sources of inspiration together.

Code

The source for the website is available on Github:

https://github.com/fpapado/lightbulb


Written by Fotis Papadogeorgopoulos.