Zotonic is the open source, high speed, real-time web framework and content management system, built with Erlang. It is flexible, extensible and designed from the ground up to support dynamic, interactive websites and mobile solutions.
Zotonic is incredibly fast and wonderfully stable - suited for anything from basic websites to complex distributed applications. It offers an elegant backend for managing content with the flexibility that developers need to build truly amazing applications.
Could you please also share the links to those sites what you are mentioned? Also interesting - do you have some topic about eg Bootstrap or other CSS/JavaScript/HTML custom integration into Zotonic?
For the backend we are currently using Bootstrap 3.
For the communication between server and client we use Cotonic https://cotonic.org/
Cotonic implements the client side MQTT communications, supervision of WebWorkers and more.
Zotonic has become my go-to application prototyping system for maybe 4-5 years now). I love the category, resource, edge model. I’m not sure if this is still the case but in the past when I was tempted to use it for production I ended up have to reach for different tooling because it expected to run on one web-server node. I don’t know if that is still part of the framework
We have prototypes for multi-node and have been using them for a project. But… we didn’t see any performance bottle necks with any of our systems, so are still single-node.
Also we observed:
our usual uptime is ~100%
a single node is much easier to maintain and update (and has less failure modes)
million(s) of requests/hour without breaking a sweat (with sites being featured on the homepage of CNN, BBC and more news outlets)
VPS hosts are crazy stable these days, with live migration in case of hardware changes / failure
most updates are simple css/templates/erlang-code updates, we perform those live with hot code reloading
We have warm failover on our roadmap, which should catch the “data center is down” and “need host OS upgrade” use cases. Which, in our experience, happen maybe once every two or more years.
We are running it in production with a customer support application, which is featured on multiple client sites. It handles all this traffic very nicely.
In the past we have had a reverse proxy in front of it, but because Zotonic makes client side caching easy this cache was not hit much anyway. We decided to remove it entirely because it halved our response times, and complicated the setup.
The machine usually has 50k open connections which can grow to around 250k. Which is peanuts for the beam.
What kind of traffic are you expecting in production?
I 100% agree, the performance on a single node is amazing, and the system administration is much simpler. The problem I ran into was convincing everyone around me that it could work with a single node. Part of this was convincing reasonably large IT dept. (~80 engineers, and three levels of management) that it was possible to simplify the extent I was talking about. Perhaps they had all been burned by their ageing .NET systems stability and scaling enough to be cautious.
RE: what kind of traffic are you expecting in production?
I sadly don’t have good numbers on this. I’ve largely been working the transportation brokerage space, and this was a reasonably large trucking brokerage. That meant a team of around 2k employee’s spending their entire day with the software with pretty intensive searching and filtering truck data with lots of odd invoicing logic. The current infrastructure to support this was way bigger than I care to admit.
Firefox really really does not like this URL, there’s no TLS support so it kept giving me full-page warnings until I added a temporary exemption… ^.^;
I’ve only played with Zotonic to date so far, nothing deployed. I should make up a big project in it sometime to get a proper “feel” for it…
We are working on a new website, but priorities…
The site is here https://test.zotonic.com. Zotonic 1.0 now manages its certificates automatically via LetsEncrypt.
The most up-to-date documentation is on this site (previously on readthedocs, but now dogfooded into zotonic), updated automatically from GitHub after a push.
Actually, the first version was called Zophrenic, along names like mnesia. Because it was a bit confused about what the system really was, with all its features. Back then it was much smaller.
But then… we had a customer and the name didn’t pass the email spam filters. Apparently the name was too similar to some pharmaceuticals.
So we renamed it to Zotonic. Also because we liked the name, and it was unique enough to be found via a web search.
And it enabled us to add more *tonic names, like Cotonic (the JS library).
Now we only need someone to make some nice *tonic imagery
I really like that the Zotonic team implemented a complete solution that demonstrates the capabilities of the Erlang programming language for creating web platforms of varying degrees of complexity. Implemented a modular architecture that allows you to implement ideas.
The project has a blog. I hope that the team will publish notes more often, stories about current work.
It would be great if there was time and opportunity to create a video course for developers, in which, using the example of a project, the authors would talk about its features and capabilities.