
Ask HN: What's a good static site generator to use for a blog in 2018? - artemis73
Hello HN community,<p>I&#x27;ve been meaning to start blogging for a while now but I never got around to it. I do have some time this weekend and I thought I&#x27;ll give it a whirl then.<p>I recently read about Hugo and I was wondering if it&#x27;s good enough for me to start with? Has anyone used it? How has your experience been so far?<p>My posts will mainly focus on little programming tidbits that I learn while I&#x27;m working so yes, it will involve code snippets. Markdown support is a huge pro for me as well. I am aware of Jekyll as it&#x27;s one of the biggest players in this segment but everyone&#x27;s been complaining about its speed which is why I&#x27;m not leaning towards it.<p>If anyone&#x27;s got some advice on what SSG I can use, fire away. If you can, highlight both the pros and cons so I can make an informed decision on this.<p>Thank you for your time! Cheers!
======
maxk42
This is likely to be an unpopular answer, but the best choice is probably
WordPress. I just used it to generate a network of about 40 static sites
because (1) it has literally thousands of beautiful, professionally-developed
themes for free; (2) same goes for plugins; (3) it's easy to hack if need be;
and (4) it probably has one of the easiest-to-use and most-complete content
editors, capable of creating both pages and blog entries, upload media,
cropping images, etc.; (5) it has a variety of static site generation plugins
to choose from; and (6) I spent hours looking at hugo, pelican, etc. and
realized that any minor qualm I had with any of these common solutions was
more or less addressed by the large and robust community of WordPress
developers and enthusiasts.

It's not a sexy answer, but it's practical. Just make sure you don't leave the
WordPress site you use to generate static content open to the public.

~~~
TickleSteve
its not static tho, which invalidates it from this list.

The fact that you mention it has a content-editor indicates you're not using
it in a static fashion.

(Correction, I hadn't realised you could use it in a static way... I last
touched WordPress back in the dark ages!)

~~~
detaro
The output is static HTML files uploaded to S3, that makes it a static site
generator in such a setup. That it has a dynamic component for the editing
process only doesn't change that.

------
rwieruch
I use Hugo [0] as a static website generator. They have plenty of themes [1]
to choose from. You can still adjust it with basic knowledge in HTML/CSS.
Afterward you can chose where to host it. You can use Github Pages [2] for
free or pay for a service like DigitalOcean (starting with 5€ a month which
scales well) [3]. I wrote a technical cheatsheet [4] on how to setup your own
website with these ingredients.

\- [0] [https://gohugo.io/](https://gohugo.io/)

\- [1] [http://themes.gohugo.io/](http://themes.gohugo.io/)

\- [2] [https://pages.github.com/](https://pages.github.com/)

\- [3] [https://www.digitalocean.com/](https://www.digitalocean.com/)

\- [4] [https://www.robinwieruch.de/own-website-in-five-
days/](https://www.robinwieruch.de/own-website-in-five-days/)

~~~
artemis73
Thanks for the last link. It will surely be helpful :D Hugo seems to be the
winner for now.

------
dhruvkar
Hugo is, IMHO, one of the best, most versatile options out there for an SSG.
I've been using it since v0.15 (now at 0.37).

I use it for a simple, mostly text, blog ([https://kar.ai](https://kar.ai)).

I also use it for an image-heavy company site
([https://www.stonelandinc.com](https://www.stonelandinc.com)).

I also use it for 20+ other sites for clients.

It's undergoing heavy development, so that may be a pro or con, depending.

e.g. Recently they added image processing [0]. This eliminates a python script
I was using for the same purpose. It's much faster as well, which matters when
regenerating ~1k images.

Down side, documentation & community is still catching up on the newer
features.

0: [https://gohugo.io/content-management/image-
processing/](https://gohugo.io/content-management/image-processing/)

~~~
slazaro
You have been using it for a long time, right? Have you found any issues in
the case when you previously successfully generated a site using an older
version, but then install a newer version in a different machine, and you try
to generate the site with the "old" source?

That unfortunately has happened to me with other static site generators
(breaking changes between versions with no automatic way to resolve them or
thorough documentation on the changes to make to the source).

~~~
dhruvkar
Yes, a couple issues along the way.

Honestly, they were minor enough that I don't remember the specifics, and it
didn't take me long to fix.

Since they're not at v1.0 yet, this is to be expected somewhat.

------
kaushalmodi
Like many others said, Hugo ([https://gohugo.io](https://gohugo.io)) is super-
awesome.

\- Single static binary for any platform for a static site generator; couldn't
get better. \- The fastest too! \- The Go templating is great! It should be
fairly easy to pick up by anyone knowing any programming language. I love it
especially because it reminds me of Lisp. Example: {{ or (and $a $b) $c }}.
(For the folks that are not a fan of Lisp, you can right the same as {{ and $a
$b | or $c }}.)

Hugo has inbuilt support for Org mode. But I use more Org syntax than the
inbuilt version can support. So I came up with an Emacs package that's an Org
exporter backend that exports to Hugo/Blackfriday Markdown + front-matter --
ox-hugo. Folks appreciative of Emacs Org mode might want to check out the
homepage [https://ox-hugo.scripter.co/](https://ox-hugo.scripter.co/) "dog-
fooded" by the package itself :)

~~~
artemis73
Everone seems to be raving about Hugo so I'll give it a chance. Let's see how
it goes. I did give a quick glance at the templating syntax and it certainly
was easy to grasp.

I haven't used Lisp so I'm not sure of how similar they are.

Org mode support seems to be interesting. I've always wanted to pick that up
as well. Could you share some good resources you might be aware of? A quick
Google search led me to some really old articles. Thank you for bringing this
up! I appreciate it :)

~~~
kaushalmodi
> I haven't used Lisp so I'm not sure of how similar they are.

As I said, I can see the syntax to be easy to grasp for anyone knowing any
coding language. But Lisp fans would be in for a treat.

In very simple terms, a list function always had the function symbol or
identifier as the first element of a list (everything is a list in Lisp), and
any number of arguments have to follow after that.

Example of an add function in Lisp:

    
    
        (add 1 2)
    

The same thing in Go templates:

    
    
        {{ add 1 2 }}
    

> Org mode support seems to be interesting. I've always wanted to pick that up
> as well. Could you share some good resources you might be aware of?

If you use Emacs, the best Org reference is the Org Info manual. Do `C-h i` to
open info within Emacs and jump to the Org manual. (You probably aren't using
Emacs as you mentioned that you are not familiar with Lisp. So may be this
tidbit helps someone else).

If not using Emacs,

\- Check out the section on Markup[1] in the official Org manual in HTML. \-
My blog source in Org[2] \- Source of ox-hugo.scripter.co website (100% of the
content) from this one Org file [3]

If you don't want to get into too much detail:

    
    
        * Heading level 1
        ** Heading level 2, and so on
        *bold* /italics/ _underline_ +strikethrough+
        - list item 1
        - list item 2
    
    
        1. ordered list item 1
        2. ordered list item 2
    

But if you are really getting into Org syntax, here's the mega test file[4]
for ox-hugo package that exports to 100's (literally) of Hugo content posts
here[5] and gets rendered to HTML by Hugo on [https://ox-
hugo.scripter.co/test/](https://ox-hugo.scripter.co/test/).

The good news is that you don't have to use Emacs for Org mode, if you plan to
use Org mode just like Markdown (and may be a little bit more). If you do use
or end up using Emacs, then Org mode is like 1000x Markdown (or may be more :)
).

> Thank you for bringing this up! I appreciate it :)

You are welcome.

Hopefully this response wasn't too much of an information overload.

[1]:
[https://orgmode.org/manual/Markup.html](https://orgmode.org/manual/Markup.html)

[2]:
[https://gitlab.com/kaushalmodi/kaushalmodi.gitlab.io/raw/mas...](https://gitlab.com/kaushalmodi/kaushalmodi.gitlab.io/raw/master/content-
org/scripter-posts.org)

[3]: [https://raw.githubusercontent.com/kaushalmodi/ox-
hugo/master...](https://raw.githubusercontent.com/kaushalmodi/ox-
hugo/master/doc/ox-hugo-manual.org)

[4]: [https://raw.githubusercontent.com/kaushalmodi/ox-
hugo/master...](https://raw.githubusercontent.com/kaushalmodi/ox-
hugo/master/test/site/content-org/all-posts.org)

[5]: [https://github.com/kaushalmodi/ox-
hugo/tree/master/test/site...](https://github.com/kaushalmodi/ox-
hugo/tree/master/test/site/content/posts)

~~~
artemis73
That's pretty good. Can comprehend the syntax pretty easily. It also seems to
be a tad bit similar to Jinja's syntax which I'm familiar with so this
shouldn't be a problem at all.

Thank you for the detailed explanation though. I appreciate it!

I wasn't even aware that Emacs has a detailed reference built in for Org. Oh
well! I should start using Emacs more I guess.

And once again, thank you for all the links. The information dump is great,
actually. I've got enough material to put things in place and start working
with Org mode.

------
yakshaving_jgt
What counts as "good enough" is such a subjective thing. What works for you
will be some function of your needs and technical proficiency. It seems as
though you don't have any specific needs, so any of the popular SSGs will be
good enough for you. Pick one written in a language you already know, or pick
one in a language you would like to learn. Some of the first Ruby code I wrote
was a Jekyll plugin that I crudely hacked together. It worked fine. Jekyll is
fast enough. Otherwise, there are plenty to choose from[0].

[0]: [https://www.staticgen.com/](https://www.staticgen.com/)

~~~
artemis73
You're right about the subjectivity. Mainly why I asked everyone about their
opinions and experiences so that I could make a decision based on that.

I'm not familiar with Ruby at all as I primarily work on Django. Go has always
been on my todo list so I'm mostly leaning towards that for now.

Thank you for the link! I can have a good look at all the available options :D

------
Fletch137
IMO, just about any will do, but the simplest thing that'll get the job done
is probably the best choice - less inertia.

If all you need is a markdown-powered blog, then choose something that does
_only_ that. I use Gatsby because I'm familiar with React and it does what I
need it to do.

I provide a few small businesses with simple websites to advertise their
services (opening times and the like) where wordpress would have been the
"traditional" choice, and the main thing I've learned from this is to stay
away from loads of plugins or extra functionality until you absolutely need it
- it's just more maintenance overhead and things to mess about with/configure.
When I update a client site, I simply edit some text and regenerate the site -
no plugins to update or config files to edit.

~~~
Fletch137
Reply to a deleted comment, mentioning that once the client wants to make
edits themselves you end up back at wordpress:

Absolutely correct. Unfortunately, I wouldn't trust most of my clients with a
wordpress login so that's never been an option. Coming from wordpress sites
that clients have installed all manner of plugins on and I have to fix every
two weeks, updating some text files manually is a minor issue. I will never go
back to wordpress hell.

I am looking into online editing of the content files to address this issue,
but I would rather stick with making the edits myself than see a client site
with 5 H1s in a page.

------
fpadilha
If you are still undecided to go static or not, I would recommend checking out
Grav. We were almost going for a static generator for our blog (we were
between Hugo and Jekyll) when I stumbled into Grav. It's not static but it is
flat-file based, which as it turns out gave to us exactly what we needed, a
serverless solution (all your posts are just markdown files and all your
settings are yaml files) with powerful templating options.

[https://getgrav.org/](https://getgrav.org/)

EDIT: typos

~~~
artemis73
WOW! This piqued my interest. I've downloaded it and I'll be giving this a
whirl for the next few days. Thank you so much! :)

------
brador
Better to take action now and fix it up later.

MVP: You need a domain name, some hosting, 1 index.html at root for the main
menu of links and 1 new file for each blog post. Make the title of each file
the same as the title of your post like "Whats-a-good-static-site-
generator.html" and dump the files in root as you go, link them from the main
menu. You can write your posts and make the files using any text editor.

Worry about the stack later once you have a few posts under your belt and
understand your mid-term use case.

But start now.

~~~
artemis73
You're right about that. Also, it looks like I'm not necessarily locked to any
particular system since most of them use the same underlying structure. I can
easily move to something else when I need to.

I've got the domain, gonna end up hosting it on either Firebase, Netlify or GH
Pages and I think I'm settling for Hugo since everyone here has spoken
positively about it.

Thank you for your suggestions! :)

------
pchal
The best choices currently I think are:

\-- Ghost (expensive but dead simple to apply themes) or

\-- Hugo + Netflify (for hosting and automatically publishing your site when
you push to your repo) + Forestry.io (for a nice front end to edit your posts
if you want to avoid the command line)

I care about Markdown plus MathJax support (for math notation) and both these
options support that.

~~~
philfrasty
Do you know who Ghost's intended target audience is? Their pricing at $29
(monthly) for hosting a simple blog seems bizarre when a DO droplet with pre-
configured Wordpress is $5 (lots of other simpler WP hosting services out
there).

Edit: ok, pricing page says „For professional bloggers“

~~~
johnonolan
Our customers are predominantly businesses and professional users who are
quite happy to pay for a fully managed service and automation to save
themselves time and energy. It's exactly the same as how you can self-host
WordPress or Discourse for $5 on DigitalOcean, or you can find managed
services at Discourse.org and WPEngine.com for $29-$99

If you're a developer and you want to just DIY - then you can. If you'd rather
just pay someone else to manage the entire thing for you - then you can.

------
okket
Previous discussion about almost exactly the same topic from 17 days ago:

[https://news.ycombinator.com/item?id=16346187](https://news.ycombinator.com/item?id=16346187)
(89 comments)

~~~
artemis73
Sorry about that. Doesn't seem like Hn has an option to search, or does it? I
don't really frequent the Ask HN section so I wasn't aware. Thank you for the
link though. Found some interesting info there :)

------
Hates_
Hugo seems quite popular these days, especially if you like Go
[https://github.com/gohugoio/hugo](https://github.com/gohugoio/hugo)

~~~
petepete
Even if you don't like Go, Hugo is super-easy to install and get up and
running.

~~~
artemis73
Yep, already have it running locally and exploring what it's capable of!

------
wireblitz
I love Jekyll and GitHub pages for free hosting. Here’s a few clean templates
I like:

[https://bvallieres.com/resource/2015/07/29/jekyll.html](https://bvallieres.com/resource/2015/07/29/jekyll.html)

~~~
artemis73
The templated do look slick! I'll see if I can find any counterparts for Hugo
or rebuild any of them as I currently leaning towards that. Thank you very
much!

------
amrrs
Not sure if `blogdown` is known among wider audience. `blogdown` is an R
package to generate static websites based on R Markdown and Hugo. So it
couples the ease of using R markdown and speed/simplicity of HuGO.
[https://github.com/rstudio/blogdown](https://github.com/rstudio/blogdown) But
I'm not sure if a non-programmer would be interested in this just for
blogging.

~~~
artemis73
I've never used R myself. Will try to set it up and see how different this is
from plain Hugo. Thank you!

~~~
amrrs
Great! You can refer this one if you need any tech support
[https://bookdown.org/yihui/blogdown/](https://bookdown.org/yihui/blogdown/)

~~~
artemis73
Thank you! :)

------
sachleen
I was looking for one a while back and ended up making my own in PHP. I know
it's not a popular language anymore but I have a PHP host where I put my
websites and it's the quickest to get up and running for me. Anyway, it's on
github
[https://github.com/sachleen/Steady](https://github.com/sachleen/Steady) and a
website I made using it:
[https://github.com/sachleen/SacSciOly](https://github.com/sachleen/SacSciOly)
| [http://sacramentoscienceolympiad.com](http://sacramentoscienceolympiad.com)

I tried all the others and none worked for me. Had to install all these new
development environments, lots of issues setting up the local servers and
building sites, etc. It's not perfect and I probably would not recommend it to
anyone else (no docs yet, after all), but it works for me and doesn't take too
much time to throw something together if you want simplicity.

~~~
artemis73
I've done a tiny bit of PHP in my life and I was never good at it so I'm going
to shy away from your suggestion. But, this will definitely put a smile on my
friend's face. He just loves PHP. So, thank you for this!

------
zie
I would argue, unless you specifically _NEED_ the blog format for some reason,
to use whatever you use for your project documentation.

i.e. if you program mostly with python then use Restructured Text and sphinx,
etc.

Why? because then you can't say you are unfamiliar with the tools when it
comes time to writing docs for your project, something we all suck at doing.

------
a-saleh
I am using nikola: [https://getnikola.com/](https://getnikola.com/)

The main reason is, that I really like jupyter notebooks and my blog began as
experiments in Jupyter that I wanted to somehow preserve, i.e.
[http://notes.asaleh.net/posts/monoid-pattern-in-
python/](http://notes.asaleh.net/posts/monoid-pattern-in-python/)

Second reason is, that I like to experiment with format of my posts quite
often (several were made in org-mode, i.e:
[http://notes.asaleh.net/posts/experimenting-with-
purescripts...](http://notes.asaleh.net/posts/experimenting-with-purescripts-
rowtolist-metaprogramming/))

But it depends on what you want. I decided I want to write. So I focused on on
writing and experimenting and try not to spend too much time on setup :-)

Good luck with your blog!

~~~
artemis73
That's interesting! A good alternative to Pelican and Lektor. I'll consider
this since I'm already comfortable with Jinja. Thank you very much :)

------
manojlds
I hope 2018 here means cool and new solution that's different from previous
ones in many ways - GatsbyJS

~~~
artemis73
Yep! I'd love to give Gatsby a shot but I have no knowledge about React. Will
try it out once I learn a thing or two about it. Nevertheless, thank you very
much for your suggestion :)

------
smcl
This might be an unpopular opinion, but really wouldn’t sweat all the details
just yet. I’d just start with something simple, free and widely used just so
you get into the rhythm of blogging. An existing service probably, Wordpress
would even suffice - I use Posthaven but it’s $5/month. You can focus on
getting the perfect backend later, but I’d focus on writing the posts
themselves and getting into the rhythm of writing to a schedule. Many well-
intentioned blogs fall into disuse long before they outgrow their tech stack.

After you’ve put a dozen or so posts together you’ll have a better feel for
what your needs are and you can then migrate your posts to the new platform of
your choice - you can even write a blog post about it :-)

~~~
artemis73
Posthaven is interesting! I'll have a look at it once I'm a bit more serious
about blogging. Either this or something like Ghost.

You're right though. From what I can tell, most of these alternatives seem to
be interoperable and I can jump around easily if need be. I'll start with hugo
and see where that leads me. And I'll blog about that as well :) Great idea :D
Thank you!

------
turbinerneiter
* Makefile * Pandoc * git

You push to a remote on your server, it runs the Makefile via post-receive
hook and builds a single, static html file from your Markdown with Pandoc
(inlineing everything, images even fonts if you want to) and copies it to the
folder served by your nginx.

~~~
err4nt
Hey! This really piqued my interest, could you explain more about the makefile
part of this? I currently use Pandoc to convert a folder of .MD files into
.HTML files with the same name, and have begun modifying the templates and
making use of the YAML metadata you can add. I really like working with
markdown like this, and it's perfect for Git.

Here's an example of the kind of build script I use currently:
[https://github.com/tomhodgins/responsive.style/blob/master/s...](https://github.com/tomhodgins/responsive.style/blob/master/src/build-
prod.sh)

How would you build the contents of the /src folder with pandoc and your
makefile?

Edit: for those looking for an example of the result of one of my Markdown ->
Pandoc -> Git -> Static Hosting workflows, check out this page:

\- Static HTML: [https://responsive.style/techniques/child-
element](https://responsive.style/techniques/child-element)

\- Markdown Source:
[https://raw.githubusercontent.com/tomhodgins/responsive.styl...](https://raw.githubusercontent.com/tomhodgins/responsive.style/master/src/techniques/child-
element.md)

~~~
flukus
Here is a post I made (and generated) about my generator:
[http://flukus.github.io/building-a-blog-
engine.html](http://flukus.github.io/building-a-blog-engine.html)

It's pretty similar to your shell script but builds are incremental with no
extra work. I went with awk for index generation and metadata. There's still
plenty of room for improvement but it does most of what I want.

------
geekodour
I built a JavaScript static site generator last year, works good for me. It
uses github issues but makes it static.

[https://github.com/geekodour/gitpushblog](https://github.com/geekodour/gitpushblog)

~~~
artemis73
Checking it out now! Seems to do quite a lot, actually. Great job!

------
zapperdapper
Hugo is good, but you will need some technical expertise to customize it,
unless you use a stock theme/template.

GitHub pages is also a great way to get started quickly - Markdown is easy to
learn and there are several cheat sheets out there.

What I did in the end is created my own very simple site generator (calling it
that is probably being over generous) - it lacks many features of a full-blown
generator like Hugo, but it suits me down to the ground. I then host (for
free) on GitHub and publish also to neocities.org (for free). See my HN
profile for link to website - from there you can pick up the source code if
you're interested.

Good luck with your blogging!

~~~
artemis73
Hugo seems okay to me. Not that complicated so far. Yeah, it's a bit
opinionated which kinda irks me sometimes coming from something like Jinja
templating.

Do you have your SSG up somewhere on GitHub? I'd like to give it a look. Seems
to be a cool idea. Thank you for telling me about neocities. Wasn't aware of
that!

~~~
zapperdapper
Check my HN profile. From there you can find my GitHub (see the repo Website-
Test that has everything), feel free to use my code if you so wish!

Oh I really like neocities. You can sign up for pro membership and have custom
domains and so on but I've not needed that so far - I may do at some point
though.

All the best!

------
rayalez
I'm very happy with using pelican for my blog:

[https://startuplab.io/blog](https://startuplab.io/blog)

It's very flexible, written in python, easy to customize, has plugins for any
purpose. It supports markdown, latex, code snippets (with syntax
highlighting). It's very simple to set up and you can use it for any purpose.

I've made a custom theme, configured it a bit, and served it with nginx on
digital ocean(but you could also host it for free on github pages).

You can see the code and my custom theme here:

[https://github.com/raymestalez/startuplab](https://github.com/raymestalez/startuplab)

\----

Here's a few simple things I want to recommend, based on my experience:

\- Immediately setup a mailchimp account and an RSS feed. Add a link in the
header, and under each post (you can see how it works on my blog), you want to
start build a list of followers right away.

\- Ideally, write a short ebook or a guide to give people extra incentive to
subscribe. The sooner you do this - the better. Here's a sexy landing page
I've made for my blog to use as an example:

[https://startuplab.io/free-guide](https://startuplab.io/free-guide)

\- Keep the design elegant and simple, nobody needs distracting sidebars or
popups, avoid them unless absolutely necessary.

\- Underneath my posts, I have 3 boxes recommending my other articles (or
promoting my projects), it's a really neat way to keep people on your site.

\- Don't forget to set up metadata and social images for good SEO and sharing.
You can see how I did it in my template here:

[https://github.com/raymestalez/startuplab/blob/master/themes...](https://github.com/raymestalez/startuplab/blob/master/themes/startuplab/templates/base.html)

\- For a very simple commenting system I highly recommend isso:

[https://posativ.org/isso/](https://posativ.org/isso/)

It's really easy to setup and a pleasure to use. Although personally, I share
my posts on HN/reddit, and have a link to the discussion thread automatically
embedded in the post footer. That way you don't need any complex setup, and
it's better for the exposure.

~~~
artemis73
Thank you so much! I'll keep these points in mind while settings things up. I
almost forgot about commenting. isso will need a server component to do what
it does and I'm planning on hosting it on something like github pages.

But then, I don't like Disqus myself. Can't imagine forcing someone else to
use it. I'll think about it. Thanks for bringing this up and for everything as
well!

~~~
KajMagnus
Maybe you'd like to have a look at Talkyard's embedded comments:
[https://www.talkyard.io/blog-comments](https://www.talkyard.io/blog-comments)
— it doesn't require a server, if you use the hosted version. It's also open
source like Isso, no ads or tracking. (I'm developing it.)

------
noelwelsh
I'm using Hakyll, simply because I want a bit more exposure to Haskell. I've
used Jekyll and Hugo in the past. Jekyll has lots of support but is slow for
large sites. Hugo was alright. Only used it for a small project.

~~~
0xmohit
Here is a tutorial on creating a static site with Hakyll and Github:

[https://begriffs.com/posts/2014-08-12-create-static-site-
wit...](https://begriffs.com/posts/2014-08-12-create-static-site-with-hakyll-
github.html)

EDIT:

Tutorials about Hakyll:
[https://jaspervdj.be/hakyll/tutorials.html](https://jaspervdj.be/hakyll/tutorials.html)

~~~
artemis73
Thank you! :)

------
BjoernKW
Git and GitHub Pages: Simple to set up and use, supports Markdown and code
snippets.

Other than that I've never really understood the appeal of static site
generators for normal websites or blogs that don't have millions of monthly
page views.

Tools like Hugo for many common use cases (like ordinary websites with
ordinary scalability requirements) often come across as a solution desperately
looking for a problem while at the same time creating a few new problems:
Compared with dynamic website software like WordPress they can be difficult to
set up and they tend to be more difficult to use, especially for non-technical
users.

------
cyphar
Hugo is pretty good. I've started using it for some project websites[1,2],
though I don't use it for blogging. For my own website/blog, I wrote it from
scratch using Flask[3].

[1]: [https://rootlesscontaine.rs/](https://rootlesscontaine.rs/) [2]:
[https://umo.ci/](https://umo.ci/) [3]:
[https://www.cyphar.com/](https://www.cyphar.com/)

~~~
artemis73
You're using the base16 theme for the first one, correct? Looks nice. I liked
the second one as well. What theme is that?

Also, you've mentioned in the sidebar that you've built it using Grav and
Hugo. Would you mind explaining how you've used both? And why perhaps? Just
curious because someone here suggested Grav over Hugo and you seem to be using
both.

I could make one with Django (overkill, I know) as I primarily work with it
but I don't have a VPS set up yet and I don't think I'm going to attempt to
get one anytime soon. The main reason why I wanted a static site is to not
deal with configuring and maintaining the server. Thank you!

~~~
cyphar
> You're using the base16 theme for the first one, correct?

Yup.

> I liked the second one as well. What theme is that? [...] Also, you've
> mentioned in the sidebar that you've built it using Grav and Hugo.

The theme is a Grav theme, ported to Hugo[1] (hence the "made with Grav and
Hugo" \-- the actual site is made with just Hugo). The source for the site is
[2]. And the source for my other sites are here[3,4].

[1]: [https://github.com/matcornic/hugo-theme-
learn](https://github.com/matcornic/hugo-theme-learn) [2]:
[https://github.com/openSUSE/umoci/tree/b9e256550d732c14beeab...](https://github.com/openSUSE/umoci/tree/b9e256550d732c14beeab301ef1e3c2d825e6c07/.site)
[3]:
[https://github.com/cyphar/rootlesscontaine.rs](https://github.com/cyphar/rootlesscontaine.rs)
[4]:
[https://github.com/cyphar/cyphar.com](https://github.com/cyphar/cyphar.com)

~~~
artemis73
That's awesome, thank you very much! Checking those links out now. How
difficult is it to port a Grav theme over to Hugo?

~~~
cyphar
I have no idea (someone else did the port), but after looking at the two theme
sources[1,2] I'm pretty sure it's non-trivial but not nearly as bad as writing
a new one. They both have the same concepts (partials, templates) but the
languages are quite different.

[1]: [https://github.com/matcornic/hugo-theme-
learn](https://github.com/matcornic/hugo-theme-learn) [2]:
[https://github.com/getgrav/grav-learn](https://github.com/getgrav/grav-learn)

------
apm84
Pelican (python) and Hugo were the ones I looked at before I decided to write
my own toy SSG (python) for the heck of it. If you’re looking for something
simple that you can build on, with support for Markdown, Jinja2 and static
pages, take a look at
[https://github.com/amithmathew/pyjello](https://github.com/amithmathew/pyjello)
If somebody wants to contribute, I’m happy to accept pull requests.

~~~
artemis73
Any particular reasons why you chose to do this? I'm just curious on what the
shortcomings of both these SSGs are that was off-putting to you.

I'll check it out. Seems to be mature enough to give it a try. Thank you!

------
dmytrish
In my experience, static site generators are not a complete solution. Unless
you are satisfied with the default look and feel of generated pages (or a
theme available), even Jekyll needs some tinkering, debugging and diving into
the code.

So, in case you need customizaton: just stick with any static site generator
written in a familiar language and don't be afraid to fiddle with generation
process.

~~~
artemis73
Yeah, I'll have to do that since I'm rarely happy with a default theme. Will
need to modify it to suit my taste. Thank you!

------
campers
I use Hugo too for [https://apporchestra.com](https://apporchestra.com) I have
it in a GitLab repository with the continuous integration script configured to
build and deploy it to Google app engine (configured as a static content so no
paid instances are running) each time I push a commit.

~~~
srik
Out of curiosity, may I ask why Google App Engine if the content is purely
static. Surely there are better and simpler options like Github Pages.
Wondering if there is a benefit to App Engine here that isn't quite obvious to
me.

------
4lun
I've personally been meaning to rebuild my personal site with Next.js:
[https://github.com/zeit/next.js/](https://github.com/zeit/next.js/)

Used it to build a few static sites at work and have quite enjoyed it as you
get to use React.

~~~
artemis73
I've never worked with React myself. I primarily work on Django right now and
do very little frontend work. Although, I've been meaning to pick up React so
I shall try this once I do. Thank you very much :)

------
StavrosK
I use (and like) Lektor. It's very flexible and easy to get started with. Hugo
was another contender, but I found it very hard to understand and work with,
and it took some hacks to do a very simple thing I wanted, so I abandoned it
quickly.

~~~
artemis73
I'll be giving both Lektor and Pelican a shot since they both use Python and
Jinja and I'm familiar with them coming from Django. Thank you!

------
luch
I used Github Pages which are Jekyll sites hosted by Github, which is
sufficient for my needs and has a wealth of online documentation.

If it's for blogging, you can also take a look at Blogger, half the
programming & security blogs I follow are on it.

~~~
artemis73
Not a huge fan of Blogger. There have been quite a few instances that I've
linked to below where Google has taken down blogs for no apparent reason. I
don't want to give someone else control over my content.

[https://www.vox.com/2016/7/30/12303070/dennis-cooper-blog-
de...](https://www.vox.com/2016/7/30/12303070/dennis-cooper-blog-deleted-
google)

[https://www.theguardian.com/music/2010/feb/11/google-
deletes...](https://www.theguardian.com/music/2010/feb/11/google-deletes-
music-blogs)

[http://www.nydailynews.com/news/national/artist-
loses-14-yea...](http://www.nydailynews.com/news/national/artist-
loses-14-years-worth-work-google-shuts-blog-article-1.2713462)

------
wilkowskidom
Have a look at [https://cuttlebelle.com](https://cuttlebelle.com)

It was specifically built to help non technical people edit and compose pages.
(which is not you :) )

~~~
artemis73
Looks pretty slick! Unfortunately, I'm unfamiliar with React. Nevertheless,
I'll definitely consider trying it out once I give React a shot. Thank you!

------
Maro
How I did mine with Github Pages and Pelican:

[http://bytepawn.com/how-to-make-a-blog-like-
this.html](http://bytepawn.com/how-to-make-a-blog-like-this.html)

~~~
artemis73
You https certificate has expired? I can't access your blog for some reason.
Also, it looks like it's blocked by the Government of India. I wonder why?

------
softwarerero
If you prefer Vue over React there is also
[https://nuxtjs.org/](https://nuxtjs.org/) which I found nice to work with.

~~~
artemis73
This is pretty cool! I've just started picking up the basics of Vue. I'll give
this a shot once I'm more familiar with it. Thank you! :)

------
projectramo
I don’t know the right answer for you (probably depends on the language you
know best or want to learn) but the “standard” is Jekyll in terms of maturity
and acceptance.

~~~
artemis73
Yeah, that's the thing. I primarily work on Django so Hugo or Pelican make
sense to me. I did give Jekyll a whirl but I wasn't overly fond of it. I'll
have to read through the docs and then decide if it's right for me. Thank you!
:)

------
jperry
I quite like Metalsmith
([http://www.metalsmith.io/](http://www.metalsmith.io/)

~~~
artemis73
Looks good! I'll test it out today and see how it goes. Thank you!

------
romanovcode
\- Hugo

\- Travis CI

\- Cloudflare

\- GitHub Pages

This is how I host my website completely for free with SSL. Whenever I commit
it to GitHub it will build and deploy it for me.

~~~
artemis73
Interesting. I've always wanted to give CI a shot. This could be a good start
to explore it.

What role does cloudflare play here? Just curious as I don't know what it's
capable of doing.

I might end up adopting the same system as well since everyone here has been
raving about Hugo. Thank you for the suggestions!

~~~
romanovcode
Cloudflare provides free SSL because the github pages are directing to a
custom domain therefore there github cannot provide with SSL.

~~~
artemis73
Ah! Right. That's on the todo list as well. Thank you very much!

------
codegladiator
What is all the recent trend for static site generators about ? What happened
non-static sites ?

~~~
maxk42
Security is a lot easier to reason about on a static site. Especially if
you're leaving the server security up to, say Amazon and hosting off of S3 or
a CDN.

~~~
codegladiator
Was security a huge problem in Wordpress ? I work in the tech industry too,
but never came across security as an issue. Or is it about the plugins
bringing in the unreliability ?

~~~
cddotdotslash
Plugins. The plugins are a never ending stream of XSS, SQLi, and other
vulnerabilities. I used to intern on a web security team at Mozilla that
hunted down these kinds of things and the entire experience revealed how easy
it was to compromise your entire site because of a single plugin. During my
six months there, I think I discovered 30+ plugins with issues. Most
developers were responsive but some ignored us and the issues were never
fixed.

------
lukehaas
Gatsby is worth taking a look at.

~~~
artemis73
Gatsby seems to be pretty slick but sadly, I'm unfamiliar with React. I
primarily work on Django these days. I certainly will give Gatsby once I give
React a shot. It's on the list of things I want to learn. Thank you very much!

------
derekperkins
If you like React, you should check out [https://github.com/nozzle/react-
static](https://github.com/nozzle/react-static)

~~~
artemis73
Not familiar with React so I'm going to give this a pass (for now). Will pick
it up once I'm familiar with it. Thank you!

------
brudgers
To me, fretting frameworks is a form of writer's block.

~~~
artemis73
Right? This has been a huge problem for anyone whos's considering starting
anything these days. Variety is good, but sometimes I feel that we've just got
too many choices and I find them to be exhausting sometimes. Or maybe it's
just me? Not sure.

I'm settling with Hugo as it seems to make sense for me. Thank you!

------
dageshi
Well, this thread got nuked didn't it? From first page to page 5 in under a
few hours...

~~~
artemis73
Right? I didn't expect it at all. It's my first (maybe?) post here and it just
blew up. Love all the suggestions though. Quite a lot of them were immensely
useful! :)

------
oaf357
Hugo. And done!

------
fche
ikiwiki

~~~
artemis73
A little too simple for my taste but an interesting suggestion nonetheless.
Will come in handy someday. Thank you!

------
RobGav
Just use Getpublii [https://getpublii.com](https://getpublii.com)

Its really different than other generators - it's a static CMS with GUI and
themes. Comes with WP migrator, GitHub pages, Netlify, S3, Google cloud or
sftp.

~~~
artemis73
Looks great but sadly, they don't have Linux support (yet). Will check them
once they start supporting Linux. Thank you :)

