3. CMS - Wordpress way
Keystonejs 3
• LAMP
• Data
– Custom fields
– Taxonomies
• Themes/Marketplaces
• Lots of plugins
BUT ITS STILL IN PHP!!!!
4. Makeandbuild.com – wordpress version
Keystonejs 4
• Took an existing theme
• Customized/Tweaked CSS
• Different models
– Posts
– Portfolio items (work)
– Service items (capabilities)
TIME TO MARKET: 2+ months
5. Keystone POC
Keystonejs 5
• Drivers
– Mongo
– Bootstrap
– Choice of templating
– Express
ALL IN TOOLS WORK WITH!!!
6. Migration
Keystonejs 6
• Time to market
– Rewrote in 2 weeks
– Integrated into sales force
– Backported all routes
– Development streamlined – mongo over MySQL
• PERFORMANCE INCREASE OF 200%
7. Admin UI
Keystonejs 7
• Part of keystone module
• Default route – xxxx/keystone
• Supports multiple users
– active/inactive
– Permissions
• Editor
– Tinymce/WYSIWYG
• image support
• Published/Draft/Support state support
15. Additional items
Keystonejs 15
• templates/views/layouts/default.hbs
• Make use of bower
• routes/middleware.js – setup injections
– requireUser, etc
16. Administration UI Customization
Keystonejs 16
• Currently they are switching to ReactJS for the Admin Ui and moving it to the
client side to allow customizable Admin Sections
• They have made a branch with the reactjs but haven't completed a stable
version.
• https://github.com/keystonejs/keystone/issues/204
• https://github.com/keystonejs/keystone/issues/503
• Once complete, plugin framework next
17. CMS (THEME)
Keystonejs 17
• Seems like all their focus is the switch to React.js for the customizability. So
all other things have been pushed off. But their plan is to eventually allow for
themes.
• THEY really want theme capability wordpress has.
• https://github.com/keystonejs/keystone/issues/67
19. Security
Keystonejs 19
• Can make use of the User permission based model and roll own
– Check req.user to see if user is logged in
– Identify needed chain in middleware as identified earlier (pre-route)
– Modify chain in routes themselves ex:
exports
=
module.exports
=
func@on(app)
{
app.get('/resumes/:filename',
middleware.requireUser,
routes.views.resumes);
};
20. Deployment
Keystonejs 20
• Don’t control .env
• Nginx reverse proxy
• Run via forever
• See the oneline docs for config
– http://keystonejs.com/docs/configuration/#options