DEV Community

John Luke Garofalo
John Luke Garofalo

Posted on • Updated on

What's the most pragmatic way to start a self-hosted blog?

Hey DT community, I need your help and expertise.

My Background

I'm an experienced full-stack software engineer, with a strong background in React, React Native, & Ruby on Rails.

My Problem

I've been having trouble figuring out a good service, library, or template to use to create a self-hosted blog for my business. I'm imagining something similar to the Auth0 Blog.

Other Thoughts

  • I haven't seen an easy way to create this type of thing in React without building it from scratch, which I'd rather not spend a lot of my time doing.
  • My customers aren't necessarily developers and I'm not a big fan of Medium, so I'd like it to be hosted along with the business site.
  • I'm not opposed to a hosted service, but I would need it to look professional since it's for my business.
  • I know Wordpress is a popular choice but I’ve never used it so I hesitate to pick it for the time it may take to learn it and have it integrate into my react app.
  • I've heard others mention Gatsby, but from what I could tell, my non-engineer partners couldn't write posts without me translating it into code. (I could be wrong about this. I don't know much about Gatsby).

Thank you in advance!

Edit: An earlier version of this question mentioned WordPress in passing without elaboration. I’ve updated it to clarify my thoughts.

Latest comments (24)

Collapse
 
styxlab profile image
Joost Jansky

I recommend you to look into the Jamify open-source tools which uses Ghost for your headless CMS and Gatsby for your frontend builder (I am the author of Jamify). This modern Jamstack setup gives you a fast and professional looking site at zero costs where every piece can be exchanged with something else later, so no vendor lock-in.

Collapse
 
tiguchi profile image
Thomas Werner

Another option is Grav. It uses Markdown files for blog posts and pages, so it doesn't require a database. It's possible to store a Grav project in a Git repository and basically keep the live version up to date by simply doing a git pull on the server if you want. It also provides an optional admin module that allows you to manage content in the browser

Collapse
 
ulitroyo profile image
Uli Troyo • Edited

My favorite blog engine is Ghost. It's a lightweight Worpress-like engine built on the Node stack. It has a lovely CMS-style interface for your non-engineer partners to write their posts. It's open source, of course, and has fantastic documentation. You can either host it yourself, or have it hosted by them for $29/mo.

And recently, they finished an absolutely impressive set of integrations with other services... over 70, in fact, from obvious stuff like Facebook and Twitter, to business stuff like Shopify and Adsense, to content-oriented stuff like the great Cloudinary for image management and Google AMP for search engine visibility, to more offbeat neat stuff like the Ulysses writing app and Giphy for.. gifs?

As if that wasn't enough, though by default the front end is built with handlebars.js templates, you can also make Gatsby your front end engine on Ghost, so if you've been wanting to mess around with Gatsby (and it really is great) but are afraid that your non-techy partners will have a hard time, you can just use Ghost as your CMS and use Gatsby as your front end. How cool is that?

Very cool, let's be honest. Do this. I guarantee you'll love it.

Collapse
 
oscherler profile image
Olivier “Ölbaum” Scherler

Jekyll is easy to get started with, and generates a static site from Markdown files. You can have blog posts and regular pages. If your non-engineer partners can write Markdown (for example using stackedit.io, then it might be a simple solution, but the question of file management with several authors must be addressed.

I’m looking for a headless CMS to make it easier to edit a Jekyll site, but I haven’t found one that I can self-host. forestry.io is a hosted solution (the editor is hosted by them) that connects toa GitHub/BitBucket/GitLab repository to give you an editor for a Jekyll, Hugo, VuePress or Gatsby site. It’s worth a try: it’s really nice and they have demo projects that you can quickly get started with.

I still haven’t understood the point of Gatsby of JAMStack in general. Having the browser connect to an API to build the web site using client-side code: I don’t get it. You don’t have the benefit of a static site generator, not of a CMS.

Collapse
 
firozansari profile image
Firoz Ansari

My customers aren't necessarily developers

All static site generators Gatsby, Jekyll, Hugo, etc. do require some technical involvement to publish and manage posts. For your customers (especially paying customers) with no development background, I will surely stick with existing blogging engines like WordPress or Ghost. Learning to host and manage WordPress or Ghost instances is not that difficult.

Collapse
 
iam_timsmith profile image
Tim Smith

Gatsby can take markdown files and they live in the repo. You would tell gatsby where to look for them and it would do the rest. That means they’d only have to learn markdown to write posts.

Collapse
 
quii profile image
Chris James

If you want to cheapest, simplest, easiest and most robust way; write some HTML.

Collapse
 
krnsk0 profile image
Jon Kurinsky

Gatsby’s plug-in ecosystem has some great tools for ingesting markdown, to add to what people are saying above about support for lots of different data sources. There’s even a plug-in that wraps Prism for syntax highlighting. And the md files can include raw html and style blocks, so guest authors can get as sophisticated as they want to. I did the blog on my portfolio site this way and I love it.

Collapse
 
haidv profile image
HaiDV

If it just a blog and it 's a static site, there is a bunch of hosting static site like Surge.sh, Netlify... and S3. I recommend S3 for your business because of stability, security, and integration with other services in AWS

Collapse
 
victorhazbun profile image
Victor Hazbun

Dev.to is open source.. So, you can use it for your own purposes.

Collapse
 
johnlukeg profile image
John Luke Garofalo

That’s an interesting thought, Victor. I hadn’t thought of that. Since it’s a blog for a business, there are probably a lot of features that I would have to take out. Like I don’t necessarily want customers posting articles. You know? I’m gonna think on this more. Thank you for posting!

Collapse
 
victorhazbun profile image
Victor Hazbun

Well, in that case Gatsby is the way to go, I guess.

Collapse
 
allison profile image
Allison Walker

Sorry, what's wrong with WordPress?

Collapse
 
johnlukeg profile image
John Luke Garofalo

That’s a great question, Allison. Thank you for asking for that clarification. I didn’t intend to imply there’s anything wrong with WordPress. I just don’t have any experience using it. I was hoping to find something closer to the React ecosystem since I’m already familiar with that. I’ll edit my question to clarify this.

Collapse
 
allison profile image
Allison Walker

Ok. I'm not familiar with the React ecosystem so I can't say whether it's similar to WordPress or not. But for a professional, pragmatic, and robust solution, there's a reason it's so popular. It's easy to set up; depending on your web host it could be as simple as a few clicks. It's not hard to learn at all and probably has more support than most competitors. There are tons of templates as well, so there might be an option for what you're looking for.

Having said all that, there are plenty of other CMS tools out there, but they're usually built on like Python, PHP, Ruby, JavaScript, etc. Here's one: Gatsby.js

And regardless of what you choose, I recommend using Medium as a place to repost whatever you write, with an "Originally posted...." at the end. Medium is popular and can help you get more traffic.

Collapse
 
stereobooster profile image
stereobooster

I've heard others mention Gatsby, but from what I could tell, my non-engineer partners couldn't write posts without me translating it into code.

you can connect it to headless CMS or you can use Netlify CMS

Collapse
 
alexluong profile image
Alex Luong

You can use Gatsby with the data coming from any CMS you like (Contentful, WordPress, Drupal, Firebase, etc). For a small blog, you should be fine with a free tier for most of them.

Once you have set up the site, your partner can interact with the CMS directly without relying on you.

Collapse
 
zeke profile image
Zeke Hernandez

Yes, I recently did this with NetlifyCMS

Collapse
 
camerenisonfire profile image
Cameren Dolecheck

As someone who has recently started a blog with Gatsby, I would definitely recommend this option.

Collapse
 
johnlukeg profile image
John Luke Garofalo

I didn't realize one might use Firebase to host the blog content. Do you have to define the data structure is that handle by the Gatsby template?

Thank you for your help, Alex! It's super helpful.

Collapse
 
alexluong profile image
Alex Luong

There are plugins call gatsby-source-firebase and gatsby-source-firestore that let you query data from firebase.

You’d have to define the data structure. You’d have to do that for other CMS too (except for WordPress or Drupal).

I’d be happy to dive deeper if you wanna learn more about Gatsby. Big fan and would love to spread the word. Feel free to reach out!

Collapse
 
ben profile image
Ben Halpern

Keep an eye on everything Stackbit is doing, I think they're looking to solve for a lot of what you're specifically describing. They're a newish service, but definitely have the right idea about how to make this stuff easier while also not tying you in to anything proprietary longterm in case things change.

stackbit image

We'll be integrating with them as much as we can

Collapse
 
johnlukeg profile image
John Luke Garofalo

You are a beautiful human being, Ben. I love their value prop. I think they are solving exactly what I'm describing. This looks like a dope service. Thank you good sir!

Collapse
 
ben profile image
Ben Halpern

🤗