Essix logo

Introducing Essix

Shortcut: create more web with Essix

$ go get -u github.com/wscherphof/essix

 

Why

So when you have this prospect who’s planning to “build a web based tool” where users form communities to stand strong together in planning and selling their small produce to big fat client organisations… where do you start?

Yes, you could reach out for the nearest open source fool proof Content Management System, and fling in a Community Management plugin and a Deal Broker plugin with a proven track record, choose a theme, click it together, and run.

That’ll work brilliantly. If successful, users start building considerable parts of their business on it. That’s about the moment they call you to tell something is broken, and needs fixing. Urgently. Then you wonder where to click to fix it, and quickly call the local open source fool proof Content Management System super expert. Because that’s not you. They dive deep for an hour or two, then conclude you should call the regional proven track record Deal Broker plugin super expert. Because that’s not them.

Enfin, you get the picture: packaged things that do a lot, out of the box, without programming, just configuration, they tend to break down dramatically sooner or later, without telling you how to fix them.

So should you start from scratch then? Well… why not? The tremendous advantage would of course be that you end up with only precisely exactly what you need, while knowing every bit and byte of what it does and how it works. But yeah.

No, you can’t start from scratch for every project. Because… there’s so much that you need! So what is it? What do you really need for each and every project that makes it too much to start from scratch?

Let me speculate a bit here. What you always need is:

  • A highly available database cluster
  • A straightforward way to manage business object data life cycles
  • Transparently secure user authentication & authorisation
  • HTML templating
  • User & system error handling
  • A responsive static file server
  • Clear definition of request routes with paths & methods & handlers
  • All forms inescapably protected from Cross Site Request Forgery attacks
  • Texts and labels in multiple languages
  • Sending email
  • HTTPS with certificate generation
  • HTTP2 would be welcome
  • A short-cycled build system
  • An automated script to build computing environments
  • A no-brains way to scale out by adding computing resources
  • A declarative rate limiting capability, protecting from robots & Denial of Service attacks

Those kind of things. Am I far off? Anyway, it’s clear enough: that is too much to build from scratch – for any project. But then again, once you would have all this, what else would you need? Wouldn’t all projects then seem a bit like “well, what we basically need is some clearly defined business logic, a thought through user interface, and some consistent styling – then we hack it together in a jiffy”? Hm, so, yeah, why not build it from scratch once?

What

Why not? Because it’s sitting here, right under your nose. The name is Essix, pronounce s6. Essix runs an essential simple secure stable scalable stateless server. Nothing less, and certainly nothing more. It builds right on top of the very standards of the web, so you can fully and deterministically trace what’s going on in any part of it. The code is pretty neatly documented as well. No, it’s not JavaScript. Because JavaScript is getting so complex. It’s Go, because Go plays nicely, and checks things. Besides Go, it leans on Docker Swarm Mode to run things in its robust way of running things. But it knows how to do it; it won’t get in your way.

How

Follow the Quickstart to kick it off, and peek around in the Example to get the hang of it. Make yourself feel at home. You’re welcome.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s