feross.org

feross.org

Pure concentrated awesome (a.k.a. my blog)

Home of Feross Aboukhadijeh

Copyright (c) Feross Aboukhadijeh

Hi, I'm Feross Aboukhadijeh and this is the source code for my blog, https://feross.org. Feel free to browse the source and ask me questions.

Blog design

If you fork this, please create your own blog design. Don't use mine! I don't want to see fifty other blogs that look the same as mine. Thanks for understanding!

How it's built

All my posts are written in Markdown. The blog is powered by Jekyll, a static site generator that takes Markdown blog posts and converts them into HTML files. The benefit of this approach are many:

  • The blog can be served with almost any web server, since the output of Jekyll is just flat HTML files.
  • The whole blog can easily be version controlled.
  • The blog requires less maintainance (goodbye out-of-date Wordpress installations!)

I also wrote a simple Node.js/MySQL app to track the number of page views on each blog post. It's pretty straightforward.

I host the actual site on my own server, since I have a Jekyll plugin (and GitHub Pages doesn't support Jekyll plugins). Also, GitHub isn't going to run that Node.js app for me. Also, I like being in control of my website hosting (seriously, being a sharecropper sucks).

Run it

Install dependencies

npm install
npm run install-system-deps # macOS only

Build site

npm run build

Start server

npm start

Start development server

npm run watch

Run tests

npm test

Publish site

npm run publish

On the server, I serve the generated files with nginx and run the Node.js app using Supervisord (to restart the app if it crashes).

That's pretty much it.

License

Copyright (c) Feross Aboukhadijeh