poobrains

poobrains is a web… thing written in python on top of Flask and peewee.

This snippet might explain it better:

import poobrains

@poobrains.app.expose('/')
class Foo(poobrains.storage.Storable):

  blah = poobrains.storage.fields.CharField(null=True)
  fasel = poobrains.storage.fields.BooleanField()

These few lines of code will fold out to a complete website with administration area, exposing a paginated list of teasers of all Foo instances in the database on the frontpage ('/') and full views of Foo instances at /Foo.id (i.e. Foo instance with id 42 at '/42').

poobrains main intended features are security, good DX (Developer eXperience) and UX (as well done as possible without javascript).

Authentication (login) is done with TLS client certificates in order to avoid problems like password re-use and to gain the security of public key cryptography.

E-mails are only sent PGP-encrypted.

The permission system is restrictive, flexible and extensible. It supports permissions assigned to groups as well as users.

Lastly, it DOES NOT CONTAIN ANY JAVASCRIPT.

There also is a nice little theming system offering things like SCSS integration, inheritance of theme resources (templates, scss files, graphics, etc) and templatable SVG (with compiled-in SCSS, too).

Sadly, poobrains isn't production-grade software yet. Currently, it's still in a pre-alpha stage:

  • No documentation - Well, there's a ~1.5k word "quick"start now…
  • UX slowly approaching acceptable
    • a good bunch of templates still need to be written
  • Good deal of housecleaning still needed for better DX
    • pyreverse recursively and reliably fails analyzing poobrains. Oops. ¯\_(ツ)_/¯
  • No tests
  • No code review (though "I have a guy"™)

documentation/quickstart