21. JOINED TABLE INHERITANCE
class hierarchy is broken up among dependent tables
each model class has its own table
that table only includes attributes local to that class
30. probably the most advanced ORM for Python
database agnostic
has many nice, useful features
hybrid properties
association proxies
ordering list
transactions integrated to pyramid request lifecycle
39. storing and serving files in web applications
multiple backends
local filesystem
S3
GridFS
roll your own
integrates with SQLAlchemy
files are handled like a plain model attribute
transaction aware
40. ... and many others:
Bleach
Babel
Alembic
py.test
jQuery
etc.
59. KOTTI VS. PLONE
Plone is source of inspiration
more similar to CMF in scope
no application server, only one global site
no local settings
no need for GenericSetup
no need for most portal_* utilities
native SQL indexing, no need for portal_catalog
obviously no TTW development
69. no undo or versioning, yet
small number of Kotti extensions.
smaller number of builtin features
not tweakable by editors
No:
TTW content types
composable layouts
portlet management
71. the core is stable
python 3 support (almost done)
undo/versioning, using sqlalchemy-continuum
REST api (partially) implementing JSONAPI
split up some functionality from core
72. WHERE TO GO NEXT
Kotti documentation website
github.com/Kotti/kotti.git
on IRC