Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Excluding WordPress, what is your favorite for blogs or small stores?
339 points by travisby on Jan 2, 2017 | hide | past | favorite | 192 comments

Jekyll or Hugo, hosted for free on Netlify and using Forestry.io or Cloudcannon as the CMS.

Jekyll is great for blogs and simple brochure sites, go Hugo (heh) if you need something more complex. Hugo is much faster than Jekyll when running builds on larger sites.

I'd recommend Snipcart for e-commerce. Recently built a shop with it, using Jekyll as the framework. I've made a number of online stores with a variety of platforms and this was the easiest - took about 15 mins. Cheaper than Shopify too.

Edit: Here's a guide from Snipcart on how to do it - https://snipcart.com/blog/static-site-e-commerce-part-2-inte...

(I have nothing to do with Snipcart, just like the service)

I'd like to second Hugo. Static sites with Netlify are a joy, since they can handle however much traffic you want, there are no scaling headaches or updates or stuff for bots to randomly hack.

I'm currently trying to decide between Lektor and Hugo, Lektor's data model seems more powerful, Hugo seems harder to learn (worse-quality docs) but Lektor doesn't seem very actively maintained, and Hugo has a larger community around it.

Co-founder of https://forestry.io here.

As an interesting speed comparison, one of our users has a site with 2,000 blog posts that takes Jekyll 10 mins to build. We migrated it to Hugo and the build time went down to 900 ms.

We're big fans of Jekyll, but Hugo certainly beats it when it comes to speed.

That's awesome. I'll have to check this out. I wonder what type of speed improvements one could get rewriting this with crystal-lang (https://crystal-lang.org).

I'm also trying to decide between Hugo and Lektor (Note: I'm having some flask experience). At first view Hugo seemed superior but I looked at some important specifics for me like e.g. thumbnail generation, Plugin System (important for developers) or CMS like editing. All this stuff is not available in Hugo core but it's already built into Lektor. It seems the biggest weakness of Hugo is that it is statically built and not easy to extend (only easier to deploy). If you build your own Makefile/gulp etc. around it it may also work for you but Lektor is more flexible when looking at this. From a developers perspective Lektor seems more customizable... unless you are a die hard Go developer. I think Lektor community can outgrow Hugo's one because of the plugin system. Building a toolset around a binary to extend a page generator does not seem the right way @hugo team. But at the end it all depends on your requirements. Hugo is much much easier to deploy and many people do not want to extend their page generator.

I agree, but someone on the Hugo forums pointed me to this issue:


The fact that it's such an egregious issue (85 minutes for 2000 posts?!) that has been open for 9 months doesn't give me much hope in the development speed of Lektor. This also matches my experience, as I see trivial issues and PRs open for months in Lektor's repo...

The Lektor dev (it wasn't Armin) told me on Gitter that development has stalled a bit, but will hopefully pick up in 2017. I certainly hope so, becaue it's a well-designed site generator.

maybe when community and development speed and extensibility are the main requirements it all leads back to Jekyll :/ if I would be a ruby guy it would be definitely my first choice. Hugo is the speedy gonzales with easy deployment but lacks good extensibility when you want to go into the code level :(

I think you're right... Bah, just when I was convinced by Hugo, you convinced me to use Lektor again :P

sorry :D it really depends on your requirements. If Hugo in its current state covers you or if you can live with a light toolchain around Hugo go Hugo (I think many people do not need to touch the go code). There is nobody saying that you cannot write a little python code which is run before/after hugo (actually some people are doing that!). But if you want total control/extensibility with your python code in the page generator the Lektor plugin system will give you more power.

I decided to go with Lektor in the end, since it's much easier to work with and good enough for my purposes for now. Plus, since I'm a Python dev, I can extend it much more easily.

I am bep, the lead maintainer of Hugo. A plugin system will happen in Hugo, and I don't think it will take too long to get there -- we have been thinking about it for some time, and it feels natural to have that before we call it 1.0. CMS like editing is something that could live well outside of Hugo, me thinks.

Thanks bep. I'm really looking forward to that. With a plugin system the Hugo community will also grow IMHO. Looking forward to it. I agree that CMS like editing should not necessarily be inside of Hugo.

Oh that's exciting. Will be a great addition to a really good system.

Looking forward to it!

Yeah, the lack of thumbnail generation is an issue. It's definitely something which should be built in.


bep (Hugo maintainer)

I looked into snipcart however the admin was slow, and the pricing was much more expensive then Shopify when at scale (revenues in the millions).

Over the holidays I spent the time to write a Sinatra based replacement for the Shopify Checkout. There is a big opportunity for someone to do with ecommerce what Discorse did for forum software.

Wouldn't revenues in the millions justify in not having Shopify but some custom integration with whatever payment processor you are using?

Yup, it's absolutely getting to that point, but not for $$$ reasons. Shopify Plus, their enterprise plan is fixed price. This is why I spent much of the holidays writing our own custom cart.

When was the last time you tried Snipcart? We (Snipcart team) noticed a few hiccups with dashboard perf and made some improvements a short while back. If you give it another go for another project, don’t hesitate to let tell us if you think it’s still lacking. Also, we do monthly fixed fees for merchants with >20K/monthly sales.

Working on that since 2015 ... written in Go. Lots of work to do.

Slightly offtopic: I'm very interested in trying Snipcart, again. Back when we had to decide between Snipcart and Shopify's SDK for a static site, Snipcart's lack of product management was a dealbreaker.

Shopify's administration interface, in contrast, is fantastic. However there are some issues which Shopify doesn't intend to fix at all, like their handling of EU vat calculation or the fact that refunds aren't enough to get Shopify's transaction fee back (like it is the case for Paypal, Stripe and others) - with Shopify you have to cancel the order, which in my opinion, is a misleading order status. A refunded/exchanged order is not a canceled order.

While products and variants are still defined on-site (unless you’re using a CMS plugin), we—Snipcart—did ship out-of-the-box inventory management in the dashboard a few months ago. Keep us in the loop about that feature next time you try out the product. Feedback always goes a long way for us!

I know. I actually talked to you guys and you were quite helpful. Unfortunately the product management wasn't ready back then. And, frankly, inventory management alone isn't enough in our case. Our shop system is used by non-tech savvy people and they still need to be able to create products, variants, etc. in a user friendly way.

Shopify's biggest issue is the fact that you can't edit the line items for an order, or the billing information. This is a monumental flaw, which has been round since day 1.

To get round this Shopify's sale people recommend hacks like 3rd party app that delete the original order and create a new order. This actually has a whole heap of unintended consequences. I'd say this is the biggest reason for us looking for an alternative.

The best ecommerce backend I've seen is Neto.com.au however their performance (front end site latency) is shockingly terrible.

Well, thanks to you I'm now a netlify/jekyll user.

Appreciate the recommendation, really (I’m one of the devs at Snipcart). We’re actually going to publish a piece on how static & JAMstack set ups affect clients in modern projects real soon—we have a strong dev shop/agency background so that aspect’s always been interesting to us. Would love to hear your thoughts on it so we’ll try to share on HN too; we’ll be focusing a lot on both “static” CMS & headless/API-first CMS like Prismic & Contentful. Have you tried these BTW, or do you find them overkill for small-scale projects?

I like the idea of services like Prismic and Contentful, but yes I find them overkill for smaller projects.

For larger ones I'd be worried about being tied too closely to a company which may or may not be around in a few years - I'd probably look to open source project instead.

For example Drupal has good user and content management features, and with D8 there's more interest in 'headless' Drupal, where it becomes an API backend to custom front-ends.

Another note is that there are very few good (or cheap) solutions for selling digital downloads in Europe due to the VAT regs. Gumroad is the main one, followed by Etsy - though it's a very different beast.

Any other suggestions would be welcome...

Sadly, two years on now, EU VAT is still utterly crazy. It's like they don't even realise how much of a burden that system is for small businesses selling online. :-(

The businesses I have that have to deal with it all use some sort of custom integration, because we never found any service that could do what we needed and didn't involve some unacceptable level of risk (like our entire business becoming unable to operate if the service went under suddenly, for example).

Even with a lot of automation and a system designed for exactly what we do, complying with the EU VAT rules still takes an absurd proportion of the time we spend on administrative overheads.

Selz has good support for European tax regulations. Besides that the admin interface is pretty good.

Another good solution is the Shopify Buy Button combined with SendOwl for digital goods delivery.

A number of our portfolio sites (including http://piaustralia.com.au ) are static html hosted on AWS S3 + Cloudfront.

The sites are created using Middleman[1], a ruby static site generator which I've found to be a little bit more flexible than Jekyll.

On our static sites, we grab inventory information as JSONP from a small Sinatra based service on Elastic Beanstalk with read only access to the DB. Other than this and the checkout (we'll get to that in a bit), everything is client side Javascript utilising local storage for the cart state.

We do not host our own checkout. Instead we use Shopify's ancient and way under-publicised "Cart Links"[2] feature. Cart Links let you pre-populate a cart and send the user to the checkout if you so wish.

To upload the static files to S3 we use an awesome program called S3_website which knows how to look for the rendered html from a number of static site generators, and sync it to S3. It's also smart enough to setup redirects, invalidate CDN caches and even gzipping content. It's freaking amazing[3].

[1] Middleman - https://middlemanapp.com

[2] Shopify Cart Links - https://help.shopify.com/themes/customization/cart/use-perma...

[3] S3_website - https://github.com/laurilehmijoki/s3_website

All my small sites are hosted on S3. It's perfect for them! They are all built on Jekyll but I'll check Middleman out

Any good recommendations on setting S3 links for public access? (permissions wise)

I'd just use Netlify. Ever since they've changed their pricing to have basic static sites for free, I'm sold on them and like them a lot.

If you want to go the Google route instead, you can do the same thing with them: https://cloud.google.com/storage/docs/hosting-static-website

I setup a Hugo site using that exact guide.

Had a conversation with a potential client about this the other day:

For a small store I wouldn't recommend anything other than Shopify or Squarespace as they're cheap, nicely designed [0], secure enough and will meet 90% of anyone's needs out of the box.

Once the client is up and running and have figured things out a bit, something more custom may be appropriate - perhaps a static site with an e-commerce provider such as Snipcart or Gumroad (as I've mentioned in another comment).

Only when a client has serious cash to spend and serious requirements, such as integrating with CRMs and fulfilment systems or complex user roles and permissions should they even begin to consider something like Wordpress or Drupal - or even Magento (shudder).

[0] My main gripe with Squarespace is that their templates are optimised for looking fantastic in demos over being usable for more mundane content. Very few clients are able to produce the quality of photography demanded by the designs.

Good comment. Whole heartedly agree. Our job is to give them what they need, not what we think is cool. I hate it when developers over-engineer their client's needs. It becomes a costly maintenance nightmare down the road for everyone.

Absolutely. I see it a lot, especially in charities and non-profits, and it makes me angry.

They're sold on platforms which are too complex and expensive, just because they don't know (or are not informed) how much things should cost or what the alternatives are.

Like you say, it's our job to provide what people need, and trustworthy relationships over short-term gain are always more valuable in the long run.

Things I hear CMS developers talking about: Constantly applying security updates. The lack of maintenance on their favourite plugins. Which caching plugins works the best. How important a CDN is. The need for security plugins, which themselves are often exploited. The HN/Reddit hug of death. Whether a host has suitable versions of PHP. "Webscale" being ten users a minute.

I don't get it. I've been using a static site built in Jekyll, which just works(tm). I recently rebuilt my blog with AMP compliance, and it still looks the way I want it to.

If you're not Ruby person, there's Hugo as a Go alternative. For blogs, we really should be seeing the end of maintenance, vulnerabilities, and static pages are cheaper to host.

Edit: of course, I answered the blog question, but not the ecommerce one.

I understand most people's enthusiasm with static site generators. But either they are only building sites for themselves or their clients are very different than mines. How do your clients edit the site? How do they do simple things like cropping images for example? And what about forms, newsletter subscribe forms or contact forms? Do you use a third party service for everything? I can't see how that is simpler or more reliable.

The omnipresent pitfall of engineers: Assuming that all end users share your knowledge and skills.

I look at it the other way around.

The assumption that Wordpress means a client can edit their own site has been very wrong, for many users. Unless the site is built in Microsoft Word (and I've seen that done..) they are going to be using a professional for edits, and hence I refer back to static builders.

That's why we are developing Strattic, which is a static publishing sites for the popular CMSs like WordPress. This way end-users who aren't techy can continue to manage their sites in our secure staging area, and the site is then published live as static. Our company site is running on our platform - the origin site is WordPress: https://strattic.com. I'd love to hear feedback, and we're also looking for beta testers.

Co-founder of https://forestry.io here (a Jekyll and Hugo CMS).

We're solving the CMS issue for our users. Just import your Jekyll/Hugo repo. Forestry will automatically generate an index.html file (it's a CMS in a React.js file) and deploys it to your static site. Now, non-technical users can log into your static site at site.com/admin/ and see a powerful CMS.

While it's obviously not the best solution, and not something that everyone would want to do, I started creating an application just so that other people could edit a static site. It gives them a basic editor, abstracts away frontmatter, and can generate the new site from updated content.

I definitely have some regrets from this approach instead of just picking a CMS that already exists, and if I were in a similar situation in the future I'd probably start comparing preexisting CMS options.

The solution here is to use a cloud based CMS (we use Contentful ourselves) and then just import the content during the build process of the static site. The client gets the CMS, you control the site. Best of both worlds.

That's what I thought. I like Jekyll fine for my personal blog, but I don't see how you could ever set up a non-technical client with it.

The nice thing about things like WordPress is that "non-tech" people can be using it as well.

Jekyll can easily be broken, and suddenly someone who just wanted to write a new blog post for your company's marketing site accidentally removed all analytics cookies.

That's why WordPress is still growing, and isn't going anywhere anytime soon. The problem is that while non-tech users like it, tech users increasingly don't. That's what we're hoping to solve with Strattic: https://strattic.com.

One of my old employers has a monolithic Rails app for their backed, and that includes the company's corporate website. Kind of crazy to think that the marketing people and the application developers are both making commits to the same code base. Awesome, but also crazy.

Worth noting that you don't have to be a Ruby person to effectively use Jekyll. Most of the dynamic features are implemented in the Liquid templating language -- I hardly ever touched any Ruby when dealing with Jekyll, especially if I were using it in conjunction with (typical) Github Pages, which whitelists Jekyll plugins and thus incentivizes sticking with the simple vanilla setup.

I'm not a ruby person but I use Jekyll for a lot of projects. What I can't do is write plugins, but you should really have strong custom requirements to need a plugin.

I know Ruby, and was recently a business "can't write my own plug-ins" person. If you have a plug-in need that would be handy for you, feel free to ping me. For fun, I'll craft you a demo that incorporates what you'd need to know to write that plug-in yourself, with source code and a how-to Youtube video!

You don't have to be a Ruby person but it helps when your Ruby dependencies break, then your Jekyll blog won't build and you have no idea why!

I tend to blow it all away and start again in this situation, when I've got time I intend to move away from Jekyll

After having to "blow it all away and start again" a few times myself, I now use Jekyll via Docker. Jekyll themselves take care of all the dependencies and my machine can stay clean.


That's true, but if you're a relatively seasoned developer, the ecosystem is stable enough that you can manage. By "stable", I mean, being able to run homebrew and install something like rbenv. I can't remember the last time Jekyll up and failed on me, but for other projects, it's straightforward to blow away a Ruby install and start clean.

Admittedly, I'm not sure how easy it is to find canonical Ruby management tutorials when starting out. I think Ruby's system is somewhat simpler than npm, but only because I don't do too much with Ruby and don't often need to change things around.

I'd take a look at https://forestry.io as a good crossroads between static sites and a full-fledged CMS

I run Jekyll as well. It's alright for developers. Liquid templates are terrible (you can have invalid filters, use tags that aren't defined and it's all arbitrary on which one of those things will cause an error and which won't).

I had to write a plug-in to be able to get it to support multiple sites:


(I'm working on getting tests setup in containers so I can support multiple Jekyll versions and accept pull requests).

If you're starting from scratch, I'm not sure if I'd suggest Jekyll today. I mean it still works for me, but the path has been frustrating and I've found a lot of limitations with it. I wrote a lot of custom ruby plugins to get what I wanted out of it.

I've used Middleman on another project, which was decent, but at the time it lacks some of the more complicated templating Jekyll has. It may have improved since then.

I briefly looked at Hugo. It looks interesting and is worth checking out as well.

agreed about Liquid templates, it's extremely limiting after working with Jinja/Nunjucks/Twig.

Add one or two requirements: Multi-User Blogposting for non tech aware people.

In that case Jekyll or Middleman are not the implementations you want, but static site generators still work. There are various solutions with WordPress-like admin backends that produce static pages for the frontend.

Is there any that is decent yet cheap? I've trying to find one for the small non-profit I help, but the open source implementations I found were at the toy stage (couldn't even embed a video) or Movable Type, which sounds great but at a price of $999, it's about $969 above what they can afford.

We're working on Strattic, which we are beta testing right now. It publishes CMSs as static sites. You can check it out here: https://strattic.com.

Embedding video should be at that price level something like: Upload to Youtube, copy embed code into your YourPageGeneratorNameHere nearly all open source page generators I know support this. You maybe want to look into known very easy solutions like wordpress.com blogger etc. ?!

Having to mess directly with HTML is too risky. Maybe it could work if it had a really easy to use version control, but I've never seen that either.

Wordpress.com is expensive if you want "advanced" features like editing the CSS(!). As for Blogger, I don't want to tie them to a proprietary solution.

Thanks for the suggestions, but it requires them to edit Markdown, which is a no-go. I need a GUI. Is there an Hugo or Jekyll frontend that provides a GUI and supports those tags? I couldn't find one.

You want a WYSIWYG editor which understands videos on the one side and a light blog posting engine on the other. I think something like this is not existing. Choose your devil: Go WordPress, go to a free service (like blogger) and put a custom domain in front, or accept that markdown can be used. A full featured blog editor which produces light static output is like a hybrid... it sounds to be heavy on the editor and transform part and light on the output... I think nobody is really targeting that on OSS.

Update: Maybe take a closer look to OctoberCMS. It seems to go into your direction.

It does exists, it's called Movable Type, it's just expensive :)

Thanks for the suggestion, but it doesn't seem like it generates static pages...? I'm keen on that because I really don't want to have to babysit the server and apply security fixes (I trust nginx to auto-update without breaking the site).

I actually disagree that Middleman isn't the right tool here - you're just relegating the content ownership to the wrong place. We run a number of multi user blogs in Middleman, but permissions and post ownership lives one level up on a cloud based CMS.

Could you, please, provide more details on this? I'm searching for the same solution. I'm planning a blogger-like static site generator. All media will be on external resources, and I want to keep maintenance price to a minimum (preferably zero) cost. Thanks.

Sure - we use Contentful as our cloud based CMS offering. There are a few other players here - but the only ones I can speak to would be Prismic and Siteleaf, both of which are really solid.

Once you've got your content CMS-side, you can then pull that content into your SSG during the build process. All of those offerings I mentioned also have webhook support, so on publish of any content you can refire the build (to then pull down the new content).

We are loving this setup. There are really very few downsides.

Feel free to hit me up if you want to dig in more - m AT coldandgoji.com

I use https://getgrav.org/ and this is why:

- No DB. Use a flat file layout similar to Jekyll or static site generators.

- Offers dynamic features like redirecting and custom routing when you need it. This isn't possible with a pure static site generator.

- Decent optional panel to write, edit and manage almost all aspects of your site.

- Quite fast once you set it up with good caching.

+1, I use Grav too for my blog. Admin panel is really light, there's a lot of skeletons based on modern templates and they are a much smaller number which can be bad but also good so that you don't get overwhelmed by crappy stuff like it happens with Wordpress.

Grav looks promising, thanks for the heads up.

This one is amazing, thank you!

+1 for Grav

I first thought cool. On second look I see it is based on PHP. I'm sure newest PHP is really fast and advanced but I don't want to invest any of my time on that language (just my personal opinion). Update: OK, it also runs on nginx. Made a wrong claim it does not run on it. Sorry.

Grav has samples for many different web servers, including nginx: https://github.com/getgrav/grav/tree/develop/webserver-confi...

It is classified as a "flat-file CMS", explained here: https://github.com/getgrav/grav/issues/516

It does not require a database.

Well that shouldn't be true. Firstly there is no good reason why any PHP framework would ever require a specific web server, so the claim seems dubious. A little reading in their installation guide confirms Grav should work with any web server: https://learn.getgrav.org/basics/installation

Yes, you are right! Corrected it.

What is wrong with PHP?

I think the canonical reason is that it is a fractal of bad design: https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/

I made an over-engineered, intricate snowflake for it, for fun: https://github.com/wincent/masochist

Markdown content stored in Git, custom indexes in Redis/memcached, data fetched via GraphQL, rendered with React, published with`git push`.

Not at all the right tool for the job, but I had a lot of fun building it.

Maybe over-engineered, but I really like the result in both the codebase and UI. I'm just curious about your terminology--how do you distinguish what is a 'snippet', 'wiki', or 'blog' post?

Wiki for "reference" material, blog for mostly "long form" writing, and snippets as a random grab bag of unorganized content (analagous to gists).

Cool, this is exactly the idea I was starting to build from scratch with almost the same stack. I might substitute "Library" where you use the term "Wiki". I think wiki is supposed to mean collaborative editing, but I will be the only one posting/editing (initially at least).

Do you have a mechanism for controlling publish state (like draft, published, archive)?

Other than honoring the CC license you have for that project, are there any other concerns you have about using it as a boilerplate? This project will be focused on sustainable food systems just fyi.

Also--do you have a way to search more than one tag at a time? If you don't currently, is that something you might consider?

I generate static webpages from markdown in a < 100 lines bash script. It's just a for loop using sed, pygments and markdown, hosted on github.

It has a local webserver, spell check, optional image compression, and minimal dependencies.

I don't get the need of Jekyll or Hugo. They're bloated and it's a pain to customize so called "themes". I'm OK with 'boring' HTML and CSS.

It's great you built your own tool and workflow that suits you, but there's no need to declare things 'bloated', just because they include things you don't want to use. That's your opinion. Its defaults suit me pretty well, and it's really well documented.

Bad wording on my side, sorry. My grief is mostly against some prominent themes that weight 5 MB a page, and feature jQuery to animate the menu.

Cool, I hear you but Jekyll actually comes with a very minimal theme (when you 'jekyll new my-site'). Heavy 3rd party themes aren't really the fault of Jekyll.

What do you use for the local webserver, spell check and image image compression?

`python -m SimpleHTTPServer` for the local server (or if you prefer the python3 variant, `python3 -m http.server`), aspell for the spell check, and OptiPNG for PNG compression.

I didn't found something (yet) for JPEG.

> I didn't found something (yet) for JPEG.

jpegoptim --strip-all

Thanks, exactly what I was looking for!

+1 for Hugo.

Ghost + Gumroad (selling products) would be a decent alternative.

Other options are to go with static site generators like Middleman or Hugo for your blog and setting up a shop on Shopify or Sellfy.

As a side note, I have open sourced the code [1] for my shop/blog that is running at https://www.authenticpixels.com. It is written in Elixir/Phoenix.

[1] https://github.com/authentic-pixels/ex-shop

Site runs very fast. Congratulations


I have tried to reduce the JS & CSS being used on the page. I've only included the grid and navbar components from Bootstrap's CSS framework and there is pretty minimal JS involved.

I have used Turbolinks to replace the <body> tag on each request via ajax.

Ghost runs on express for those interested, so its very easy to extend if need be

If you already think we're going to say WordPress, what do you want to do that WordPress doesn't do?

I don't like WordPress for eCommerce, but I think it's great for blogs and content sites.

For eCommerce... just too many variables. Who you want to use for fulfillment, what other systems you want to integrate with, if you need a staging instance or customer loyalty software or any of the 50 other things you can integrate.

For content... Ghost is OK. Just... WordPress has thought of everything already. Plugins, solid UX, extra features you didn't know to ask for... it's hard for other platforms to catch up.

For me, it is quite a shallow reason. I just don't enjoy developing in PHP.

Wordpress is amazing at what it does, but I always dread having to touch it. There is nothing else that gets close to it (that I have found) in terms of ease of use for the users, which is why I keep having to return to it. I long for the day when someone writes something just as good in Haskell (hey, I can dream..).

In regards to WordPress in haskell, I wish for the same! I've been following clckwrks off and on for a few years, I wonder if it's secure plugin API was ever finished...


Edit: https://github.com/clckwrks/web-plugins

You code so little with Word Press, there's an extension for like everything you own or do you already. It's more just configuration stuff, right? What are you trying to do with your new site?

I like to really understand what is going on under the hood. If I don't quite understand how something works I like to read the source code. Also sometimes a plugin doesn't quite do exactly what I want, or is so large and complex due to trying to cater for everyone that I just feel uneasy about using it and so for simple things I prefer to just write a little code that does exactly what I need and no more.

Plus, I am a coder. And coders code so that's what I do. It's just a psychological thing...

Craft CMS. It allows you to define a meta model in a convenient editor, and lets you render out data with a template engine (HTML/JSON/...). The meta-meta-model consists of a few sensible objects, so it's not just UML rendered down. It has fine grained access control, so you can define which user can access what data.

Things like image uploads in the backend (admin) area are solved. E.g you can setup an S3 bucket that is used for your site's dynamic assets.

Security updates are one-click-installs and I'd say there is at least one per week.

There are plenty of plugins available, too.

It's a bit pricey (compared to FOSS) if you use it for clients, but you can develop for free or even host your own website for free with it.

I've used it twice so far, and I enjoyed it very much.

https://ghost.org/ blogs are really awesome. It's Node.js based, simple to install. I don't like static generators, that authoring experience is just not for me.

I use Ghost for my site http://tedium.co, and I've been able to do some interesting things with it. I like the flexibility it offers without the cruft of WordPress.

That said, I do sometimes look longingly at static site generators and wonder what's on the other side.

Ghost for me as well [1]. I like the UI and how lightweight it is vs something like WordPress. I also like being able to make quick content tweaks without redeploying like with a static site generator.

[1]: http://blog.tedmiston.com/

I see static site tools are still trending. I've used a variety of static site tools for play but never had a client opt for it. Probably the only static site I'm currently running is for my local Auckland CSS meetup and that's just plain ol' hard coded HTML.

For those clients that require a CMS and not specifically a blog, I use http://processwire.com

The plugin ecosystem is lacking but I've always been impressed with its performance and intuitive API. I don't currently run e-commerce on it but Gumroad would be my first choice if I had to.

I always push Processwire for questions like this. It is very versatile and makes for a capable CMS / blog / whatever.

I'm planning on using processwire to build a webstore with either Foxycart or Snipcart.

Just as a starter I will be moving my personal blog over to it just so I can have one processwire app in production.

After testing some static site generators I've settled with Hugo and never looked back. I like especially the fact that I only have a single static file with no further dependencies. And the speed is fantastic. Hot reloading is very useful.

Prefer my own hacked-together static site generator. First iteration [1] was a mess, next (more-robust cleaner and faster) one is coming along nicely [2] and should replace [1] "any-day-now"..

(nb. If you need Markdown or restructuredText, this isn't for you for the time being, writing a few <p> or <h2> tags and the rare occasional <a> link never much bothered me since ~1998, images/nav have some Haskell-coded "Xtender-renderers" (simplified and no-recompile-needed custom html 'subtemplates' aka 'controls' coming in [2] though), and for more verbose text-content-only tags such `code` or `blockquote` it's easy to set up self-expanding short-tags such as `{X{c:code goes here}}` and `{X{bq:blockquote text here}}` etc.. ;)

[1] https://github.com/metaleap/HaXtatic/

[2] https://github.com/metaleap/HaXtatic/tree/master/__tmp_nu_

If you're able to pull it off (i.e. have the time to iterate until it works) this is probably the best solution for the blogging part. Highest level of flexibility, a lot to learn, not too hard startegic-wise.

Heh. I think static-site-gens are the new "PHP/ASP CMS": as in, every small-time coder writes their own from scratch now ;D

v0 "works" already, it's just stupidly inefficient and too messy code to properly refactor (vs rewrite from scratch)..

Trust me when I tell you that refactoring is nearly always the better solution. Consider that rewriting from scratch doesn't necessarily yield a better result than what you have already.

Squarespace is the clear option. It's even faster to get set up with than WP and in the past 2 years has become a truly viable competitor.

I really like Squarespace too, but just be wary if you have a site information architecture that needs to go beyond 1 level of menus. It doesn't handle sub-levels well.

I'd also really appreciate it if they let you save a template page (eg for a landing page) for easy re-use. Re-creating specific landing pages and thank you pages for each campaign we run is a bit of a pain as what I really just want to do is change a few paragraphs of text and update an image or two for these.

The lack of multiple levels of menus is something I noticed with Ghost too, when I last played with it.

Also I'm wondering, with Squarespace, it's not clear whether you can install on your own server or not

You cannot self host square space.

My default choice is XML with XSLT and a simple Makefile to generate the HTML.

That would've been my choice a couple years ago and I still like this kind of setup for its transparency and maintainability. In fact, I've created sgmljs.net ("isomorphic" SGML + Prolog/Datalog + JavaScript-microservices web stack) to support both in-browser and (static or dynamic) backend preparation of your HTML, XML, or markdown files.

SGML has built-in dependency graph info so there's no need for Makefiles and OS command invocations. Unlike XSLT, SGML can parse and produce fully-featured HTML5. (Parts of) SGML constitutes a meta-language for injection- and XSS-free templating (designed to be non-Turing-complete, unlike XSLT). SGML also allows definition of custom Wiki syntaxes (sgmljs has full markdown support).

Haha I like that. But I like also XSLT. Many people think we are strange! :P

I think XML, for all the hate it gets, is so much nicer for extensible markup than all the weird template languages people invent daily...

And XSLT/XPath are really nice too. I just need to figure out how to shell out to external programs from libxslt's xsltproc and then I'll be able to do anything I want...

"XML with XSLT"

You reminded me of my college days circa 2003. Built some fun projects with XSLT and XPATH.

If this is for a client that can't manage a static site themselves, then I would probably look into splitting out the content editing part. For example services like https://www.datocms.com/ let you publish to a separate static site generator.

I just discovered Dato when I was looking for a CMS for Middleman and it looks fantastic. Expensive, but it seems to be an excellent choice for client work.

All good recommendations here, but I'd add a few more. .

I say take a look at Keystone CMS (http://keystonejs.com/) - it's a Node based CMS and is really easy to work with and has tons of options to customize as you need it.

My other recommendation would be to use Spike - (https://www.spike.cf/) (from the same guys who built Roots) along with rooftop CMS (https://www.rooftopcms.com/) or Contentful CMS (https://www.contentful.com/)

Perch is a fantastic solution for both content and commerce sites:


there's also Flatmarket which I've been meaning to recommend for someone else to try:



Most websites I make for people I make with Wordpress or Ghost because the client likes them. My own site is static html — I wrote the current version by hand, but I have since made a rudimentary Perl script to quicken the process.

I used to work a lot with Wordpress in the past, but as projects tend to be more and more specific, I found Middleman[1] more flexible and for structured content (eg. directories) or for generating pages automatically, using a YAML structure is very convenient.

For my online shop, I use Shopify[2] as it is a side project and I did not want to spend a lot of time writing / setting it up. Shopify proves very convenient and includes a blog if needed.

[1] Middleman - https://middlemanapp.com

[2] Shopify - https://www.shopify.com

It depends on your skills/needs.

Do you want to customize everything with ease? Do you have someone who can maintain the security of your blog and eventually add new features later? => WordPress on your own hosting

Do you want to use a very classical theme? Do you want a complete service with no skills required and no maintenance? => Wix or WordPress.com

Do you want to customize everything? Do you have someone to maintain the blog on a regular base? => Jekyll on GitHub or on your own hosting

Shall you need to sell things online with the blog, WordPress can be augmented with Shopify, meanwhile Wix has already this feature.

Sphinx. Lots of documentation uses it, so it can do most anything, plus if you are familiar with Sphinx, you will be hopefully more likely to write your documentation as well :)

Jekyll/Hakyll for blogs. They are both very customizable, you can write Markdown, and since they produce static pages you have one security worry less.

I use python based Nikola, a static blog generator. This i s for my personal blog. The killer features for me are using jupyter to write blog posts and custom urls for posts (which seem to be missing from pelican, the only other blog generator to support jupyter). The documentation is good for the usual tasks. In the extremely rare case when the documentation is not sufficient, the code is really easy to understand.

As in the previous thread, I'll just cautiously mention OctoberCMS. I don't know if they will do the job, I'm evaluating it for my client projects for project briefs starting with "we'd like a CMS... "

It is just as Open Source. However, it's newer, but has just hit stable recently. A strong plugin system. Purposed built for CMS from the ground up, built on Laravel with all the nice things.

I developed a static site generator for e-commerce called Flatmarket: https://github.com/christophercliff/flatmarket

It lacks some of the features you'd get with a dedicated backend service but it's truly static and costs about $0.004/transaction on AWS Lambda (not including Stripe's take).

I love the artwork for your demo site. Where did you get it?


An old stock art CD-ROM by Redouté.

The flat file Kirby CMS is a great option. The starter template has a basic blog implementation, it's easy to start modifying to look like what you want, and it has a basic admin panel for adding new pages/posts that's client friendly, unlike a static site generator. If you're not into making your own theme, there's a site for buying them called getkirby-themes.com which most other flat file CMS options don't have.

It used PHP and can run quite quickly if you setup caching and PHP 7 on your host. Content is generated from txt files that can have any number of fields (titles, subtitles, body, asides, meta info, etc).

As for ecommerce, I use Ecwid. It's a separate login to manage products, but it's also free for 10 or fewer products. After that it's a very reasonable monthly fee.

I personally have really enjoyed working with Statamic. It is built on Laravel and super easy to customized.

If it's for you, probably hand code. If it's for a client, try https://pulsecms.com It allows you to create static sites with a CMS layer on top that clients can edit easily. Static sites all the way baby!

I use Lektor http://getlektor.com

Webflow + DPD (digital downloads), or Webflow + Shopify (physical goods) If your CMS is not supposed to do anything particularly fancy and if you don't want the annoyance of dealing with techy staff, Webflow is currently the best website builder that I know. It's a visual tool and that saves you lots of time, especially if you are tech savvy. They are just releasing a CMS API that is going to make it even more flexible.

If you are selling real goods, Webflow integrates with Shopify very efficiently. If you are selling digital downloads, I'd consider DPD, which is in many ways better for digital downloads since it was born just for to do that. I am currently using it and I am very satisfied.

I really love CityDesk from FogCreek software.

That was the static CMS used my Joel Spolsky.

I downloaded a long time ago, and had to buy it because it worked very well.

Now it is EOLed and I am looking for something similar, but cannot find it. Tried Jeckyl but I am not convinced, although I really love ruby.

Yes, even Joel doesn't recommend it anymore... https://www.joelonsoftware.com/2016/12/09/rip-citydesk/

Have my own blog software, YBlog: http://blog.fdik.org/yblog2.tar.bz2 Probably it's not feasable for most people, because it is heavily relying on YML2 http://fdik.org/yml and vim http://vim.org

For CMS I really can recommend http://mezzanine.jupo.org/

It also includes a Blog, is in Python/Django and is fulfilling all needs from very small to very large sites.

I think the comments here shoq that there is a massive opportunity for a Wordpress Killer. Nothing I've seen listed could replace Wordpress for the majority of non technical clients I would hand over a CMS managed site to.

We believe the platform we are developing, Strattic, could fill the gaps - it publishes WordPress (and other platforms) as static sites. That way non-technical clients still get their CMS, and developers get a production static site. Best of both worlds. https://strattic.com

Actually that sounds like something that I could use. How are you going to handle plugins? Or will you not? I suppose you could support plugins that provide content transformations...but not plugins that are more dynamic...

It's more likely to mean that Wordpress works well enough for most non-technical site owners, and that building a competitor is a losing proposition.

I love Chyrp[1] but have since moved away from PHP and am looking into static solutions like Jekyll, or Ghost[2].

I always make sure to proxy Ghost through a CDN because it lessens the load on my server.

For digital products, I use Sellfy and Selly[#]

[1] https://github.com/chyrp/chyrp

[2] https://github.com/TryGhost

[#] https://sellfy.com/

[#] https://selly.gg/

For my blog, I personally use Flask+Jinja with a custom markdown parsing setup[1]. Sure, it's not the best thing in the world but there's no database and in my experience it works pretty well. I've been meaning to set it up so that things are cached properly, but the machine is beefy enough to handle the current load. And let's be honest, if my blog gets HN'd I'll be too excited to be annoyed by having to switch to a static setup.

[1]: https://github.com/cyphar/cyphar.com

If you're a fan of React, Gatsby is an excellent project to check out: https://github.com/gatsbyjs/gatsby

I have a private blog that I write for my own to better my writing skills.

I use Ulysses (the app) with a custom style (CSS) and extract my posts to an HTML file. I then upload the HTML file and the CSS file, which Ulysses also extracts, to S3, so then I can view it and read it from time to time. I realize this isn't the most elegant solution, but it works for me because I have very specific requirements from a CMS and I haven't been able to find them in any of the CMSes out there. (Most of them don't even have a clue as to what "minimalism" means.)

Bonsai (http://tinytree.info/); because no other static page generator has been so easy yet customizable.

What can it do that https://middlemanapp.com can't?

For blogs and personal sites, I'd suggest a static site generator such as ikiwiki (for self-hosting), Branchable (hosted), or Github Pages (hosted, but no SSL support for custom domains).

In addition to SSL support, ikiwiki offers several other useful features for constructing a blog or news site, such as "take all the pages under blog/* and emit a page with the last 10 in reverse order, including an RSS feed".

TextPattern was my favourite back when, even if it featured very awkward ideas (all content, styles, maintenance goes through their web interface to database -- good luck with unix tools to compare, diff and patch changes).

These days static content is the only valid answer in my books. I don't want to spend my nights worrying about rotting PHP/Ruby/NodeJS runtimes behind the scenes.

Jekyll/Lektor as a static CMS. Deployed to Amazon S3 backed by Cloudfront CDN.

All of this gives me: ease of deploy, AWS's reliable infrastructure, ultra fast website (can easily score 90+ out of 100 on google's pagespeed insights tool), delivered over SSL with a free certificate on my own domain, "infinite" scale, etc.

All of this can literally run on cents of a dollar per month.

There is none, that's why everyone it trying but failing to use static page generators, which are nowhere near the WP functionality

I use Hugo for static blog generation and GitHub pages for hosting. Works well, and, apart from the domain registration, is free.

Harp is pretty good: https://harpjs.com/

If you're already comfortable with the node.js world it's easy to hack it if you want to support something new as well. Out of the box it requires very minimal setup to get things going.

I think jekyll is the best thing to blog something. And I recommend to hosting it on github for free.


A great open source CMS based on Firebase that outputs a static site.

Easy to do relationship fields, create JSON templates, customize for clients.

Only issue is developers have stalled out on project dev and basic support. Would love to pay more if someone could fork and take up the charge.

We're huge fans of Bolt (http://bolt.cm) for small and medium sized websites. Its based on Synfony (PHP) and Twig and allows super easy creation of content types by configuration.

For blogs HTML, although I soon wish I used a CMS

For e-commerce, I never want to see Magento again (used at company where I work) and would look squarely at Shopify next time

For both uses any self hosted CMS feels like you spend too much time as admin/configurator

I'm a big fan of SiteLeaf - https://www.siteleaf.com/

CMS for static sites (Using Jekyll under the hood)

I have grown to love Jade/Pug templates, compiled with npm scripts. You can build your own site generator to convert pug templates with the simple command `pug --watch`.

Custom CMS in PHP. That's what I always use for everything.

If you just care about hosting code and snippets I'd try GrepPage. It lets you search your stores from the command-line and the web.

(Disclaimer I'm the creator of GrepPage).

Part of my Dropbox file tree is synched to a server hosting it with IIS - so I just throw a flat file in my /HTML/ folder and link to it on Gilgamech.com.

(It sounds like you have Dropbox installed on the actual server. If that is the case, disregard...)

Dropbox is doing away with allowing you to publicly share docs, so now/soon one can't use Dropbox for hosting static websites anymore.

Yeah, that's one of the issues I avoid by directly hosting the files, instead of using them as a web host. I'd use Neocities if I didn't have my own server. (My server is just my old gaming PC, on my home internet.)

I'm on Hugo CMS myself but considered just using medium.com at one point but that won't help you for the e-commerce part.

I've really enjoyed OctoberCMS: http://octobercms.com

I'm looking for a CMS that outputs static generated pages with a progressive web app approach. Any references?


The code quality is not good, but it has loots of good functionality and making small modifications is fairly simple.

For a small store that is super easy to setup I would use Weebly. You can also do a blog through it.

Is there already a 'Jekyll' on Crystal? Jekyll with hugo speed, that would be awesome!

Orchard works quite well after it is setted up properly.

HTML and JavaScript and Postgres.

For personal use or client proof?

Have your tried prestashop?

Allthink is pretty good.

Blogger :)

I've recently been using Hexo for blogs: https://hexo.io/

Github pages. Free hosting. Just fork a Jekyll template and off you go.

I sort of like werc, the framework behind cat-v. I would only imagine it for a personal site/portfolio, however, and not for commercial or business use.

I used kirby for a brochureware project and it went really well.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact