
Monsti – a free and open source CMS written in Go - networked
http://www.monsti.org/
======
hanlec
As someone that have worked in the CMS space for quite a while (and ended up
implementing a couple from scratch) I welcome any new solutions that are not
antiquated.

One thing that I've learned during that time (and does not apply only to CMS's
but that the time I fully realized it) is that everything you build in your
CMS should always keep in mind who is the main user and who is the main
consumer. The first one I've developed focused on the consumers. And every
content creator hated me sooooo much. I went back to the drawing board... no
actually I sit with almost each editor and looked at how they bitched and
tried to find workarounds. It was an eye opening experience.

~~~
flinty
Can you recommend a starting point to building your own cms?

------
piokoch
Recently I've noticed a kind of a strange fashion in the way of advertising
new software projects on HN.

The most important information is not what cool things given project does, or
what unique features it has but what programming language it is using.

There is a lot of posts "New blog engine in Clojure", "Amazing email server
written in Haskell", "Text editor in ECMA Script version 9", etc.

Sometimes there is more to that: new project comes with better performance,
easier code maintenance, clever algorithms used, novel architectural solution
developed - stuff that really matters, but Monsti is an pathological example.

The first sentence on their web page says that it is written in Go, as if it
mattered for their potential audience, that is "personal, small business, or
small NGO websites".

Why should I choose Monsti over Wordpress? Is the installation easy? Does it
work on a cheap website hosting? Can it survive Slashdot effect on that cheap
hosting? How about comments spam protection? Is creating templates/themes
super easy, maybe I can reuse the ones created for Tumblr? And so on.

Programmers might want to know if the GO API is particularly well designed or
maybe we can create hooks to customize some functionality or maybe there is
some utility to monitor Monsti site statistics.

Who cares that this stuff is written in Go and WordPress in non-fashionable
PHP, while the latter offers something that is actually important for
programmer, admin and site owner?

~~~
m0th87
A couple of years ago, we moved off of wordpress precisely because it was
written in php. Once you're trying to do anything reasonably complex in a CMS,
the architecture and the programming language matter, because you have to
extend the CMS in some manner. For us, wordpress wasn't extensible enough -
and php wasn't pleasant enough - to justify continued use of it. I imagine
people in a similar position who want to use Go would give this a serious
look.

~~~
jtreminio
Don't confuse Wordpress with how PHP can and should be written.

~~~
m0th87
I'm not. We weren't fans of php either. Even if you buy into the philosophy
that all languages are technically equal, that still doesn't make them
pragmatically equal.

It was probably our network, but we had a very hard time finding good php
engineers, and a much easier time finding good python engineers. So that won.

------
castell
Offtopic: a free open source Email server (SMTP, POP3, IMAP) written in Go
would be awesome.

I always hate how complicated and time consuming the configuration is of the
good old postfix and the various other packages.

~~~
miloshadzic
Not written in Go but look into OpenSMTPD[1].

[1]: [https://www.opensmtpd.org](https://www.opensmtpd.org)

~~~
tracker1
Seems to be only SMTP...

The issue with most Unixy mail kits, is it's a collection of software that
isn't always well coupled, and bundled together in really haphazard ways...

Many people want a simple interface that gives them administrative control
(separate from physical accounts on the machine) that upgrades as a complete
set...

With Unixy mail systems, you update dovecot, crap, something else breaks.. you
have an older mysql backing it, crap, everything breaks when you upgrade...
there's too many disconnected pieces for someone that isn't a full time mail
admin to effectively keep up with.

I believe the original request is for something similar to say SmarterMail but
open-source and free... something easy to setup, cross platform and packaged
in a modern approachable language.... If I didn't have to work, I've often
thought about doing something similar with Node.js

------
michaelx386
Can anyone explain the significance of the @@ characters in some of the urls
here? I've not seen these in urls before and wonder if there's a specific
reason why they're there.

Example: [http://demo.monsti.net/@@login](http://demo.monsti.net/@@login)

~~~
ravishi
Not saying that is the case here, but Zope used to use @@ in the URLs for view
lookup. Like in /folder/item/@@editWithFancyForms.

~~~
chrneumann
That's the case. Monsti is influenced by Kotti which is influenced by Plone
which is based on Zope which uses @@ for "actions" (or whatever they call
them). Monsti uses @@ to distinguish actions from regular URLs.

------
simi_
Good luck!

By the way, there is a rather popular static site generator written in Go:
[http://gohugo.io/](http://gohugo.io/)

~~~
Kabukks
Check out Journey too:
[https://kabukky.github.io/journey/](https://kabukky.github.io/journey/)

I'm the creator, I hope it's OK to post it here. It seems fitting.

------
milankragujevic
Reminds me of [http://monstra.org/](http://monstra.org/)

------
krat0sprakhar
Haha! Love the logo -
[http://demo.monsti.net/static/img/logo.png](http://demo.monsti.net/static/img/logo.png)

I wish I could come up with such cute logos for my side projects. Would make
life all the more interesting :D

------
nodesocket
Great job. I'd recommend a design/UX overhaul though, it is quite antiquated.
Check out some of the awesome "admin" designs on
[https://wrapbootstrap.com](https://wrapbootstrap.com).

------
whizzkid
I am more interested in performance part of it actually.

\- What is the memory and cpu usage when you get something like 500+
concurrent users?

~~~
lojack
CMS's are one of the easiest pieces of software to naively throw a beefy
caching server in front of.

Not saying performance should never be a consideration, but for the vast
majority of websites, especially "personal, small business, or small NGO
websites" that should be all you really need.

------
buro9
> No database required.

Filesystems are the new database.

So does this CMS support search?

How does it manage permissions?

I found the docs to be a little light on details. I guess that will change in
time.

~~~
chrneumann
For "heavy" stuff that requires indexing (and where indexing using directories
doesn't fit), Monsti might use a technology like Xapian. It might even use a
database for this. But always on top of the "real" data that stays on the
filesystem. But it's not impemented yet and plans might chance.

------
srameshc
Great work ! I can use it for learning :)

------
laurent123456
Application Error when trying to add a new node:

    
    
        curl 'http://demo.monsti.net/@@edit?New=1;NodeType=core.Document' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: en-US,en;q=0.8,fr;q=0.5,fr-FR;q=0.3' -H 'Cache-Control: max-age=0' -H 'Connection: keep-alive' -H 'Cookie: monsti-session=MTQzMjg4NzIxOXxEdi01QkFFQ183b0FBUkFCRUFBQUpQLTZBQUVHYzNSeWFXNW5EQWNBQld4dloybHVCbk4wY21sdVp3d0hBQVZoWkcxcGJnPT18j8xqXJd7vkXLPEt-9PuzVGLpyUkPiar9vmT9j7Bv5qE=' -H 'Host: demo.monsti.net' -H 'Referer: http://demo.monsti.net/@@edit?New=1;NodeType=core.Document' -H 'User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)' -H 'Content-Type: application/x-www-form-urlencoded' --data 'NodeType=core.Document&Node.Public=true&Node.PublishTime=2015-05-29T10%3A13&Fields.core.Title=sdfdfdsfdsfdsfds&Name=sdfdfdsfdsfdsfds&Fields.core.Description=&Fields.core.Thumbnail=&Fields.core.Body=%3Cp%3Esdfdsfdsf%3C%2Fp%3E%0D%0A'

~~~
lenlorijn
Before you enter the demo they say "(Read only! You'll get an error if you try
to save anything. A complete and fully working example is included in the
source distribution.)"

~~~
laurent123456
Right, sorry I've missed that.

