Introducing MongoPress The MongoDB-Powered CMS
Jan 29, 2015
Introducing MongoPressThe MongoDB-Powered CMS
Who is Mark Smalley…?Who is Mark Smalley…?
• British Born (Hastings – famous in 1066)• Living in Malaysia for 15+ Years• OpenSource Fanatic• Ex-WordPress Advocate• Ex-BuddyPress Developer• Geo-Location Specialist• Front-End / UX Developer• 1st Programming Language was Flash
Or am I really introducing NoSQL…?Or am I really introducing NoSQL…?
“ NoSQL is an umbrella term for a loosely
defined class of non-relational data stores that break with a long history of relational databases and ACID guarantees. Data stores that fall under this term may not require fixed table schemas, and usually avoid join operations.
“ Don’t empty my mind! I’ve spent my whole life filling it! ”
The right tools for the right job!The right tools for the right job!
• ACID Compliance at Core is Cumbersome• External Relationships are Complicated• External Logic is Insane
My Personal Preferences:My Personal Preferences:
• Control Relationships & Logic from App• Use Fast Database for Data• Maintain Fewer Languages
What does this mean…?What does this mean…?
• It means things are about to drastically change• Developers can now control the entire process• With incredible ease and in native ways…
For example, with mongoDB, I can:For example, with mongoDB, I can:
• Develop database via PHP and JavaScript• Never worry about DB schemas again!• Never leave my App – push changes from App
But why mongoDB…?But why mongoDB…?
• OpenSource & Adaptive• Production Proven• Incredibly Fast• Replica-Sets & Sharding• Schema-less JSON-Data• Advanced JS Queries• Good Geo-Location Support• GridFS Media Storage• SQL Friendly
The History of MongoPressThe History of MongoPress
• Started as a WordPress Plugin-- Where we initially hoped to filter SQL requests
• Almost Became a WordPress Fork-- In order to maintain the WordPress UI
• Now Stands Alone-- Finally realised we had the opportunity to start something unique
What’s wrong with WordPress…?What’s wrong with WordPress…?
• It’s built on MySQL-- Which does not scale well (out-of-the-box)
• It’s built with MySQL in mind-- At core, it’s based on antiquated table architectures
• It’s built with PUBLISHING in mind-- At core, it’s a publishing platform
Enough Small Talk! What and Where is MongoPress…?
Important DisclaimerImportant Disclaimer
• We’re only at Version 0.2.3-- 23% towards our intended initial release
• Version 0.3 is a COMPLETE Re-Write-- Built from ground-up with frameworks and fully OOP-ed
• Dr. Hans Zarkov is Fictional-- We’ve been somewhat inspired by Flash Gordon
MongoPress FeaturesMongoPress Features
• It’s OpenSource-- Featuring a generous GPLv3 license and public access to SVN
• It’s Extremely Fast & Instantly Scalable-- Out-of-the-box support for replica-sets, sharding and even nginx
• It’s Incredibly Secure & Search Engine Friendly-- SHA(256) salted encryption and segregated user-data-- Filterable attribute tags for <a> and <img>
MongoPress FeaturesMongoPress Features
• It’s Completely Flexible & Entirely Customisable-- Admin pages, core structure & content can be added via themes
• It’s Fully Translatable-- WP Language API for methods such as __(‘return’) or _e(‘echo’)
• Scalable Media-Storage & Serving-- The media-gallery utilises GridFS and is backed-up and balanced-- With HTML5 drag-and-drop file uploading
MongoPress FeaturesMongoPress Features
• It’s Developer Friendly-- WP Plugin API for methods such as add_filter() and add_action()
• It Features Perma-Trails rather than Permalinks-- Create virtual structures with intelligent querying
• Geo-Location at Core-- Store coordinates for objects and perform location based queries
• It also has a (not-yet famous) 5 Second Install
What does it look like…?Is it pretty…?
Current Default ThemeCurrent Default ThemeAs seen at – http://mongopress.org
Current Default ThemeCurrent Default ThemeResponsive & Cross-Browser / Device Compatible
Current Default Admin ThemeCurrent Default Admin ThemeMobile Compatible & Customisable
Current Default Admin ThemeCurrent Default Admin ThemeMedia-Gallery (with Drag & Drop Uploading)
How do we build themes…?How do we build themes…?
The world’s simplest MongoPress ThemeThe world’s simplest MongoPress Theme
1. mp_get_header(); // Must include this!
2. $object_format = array(
3. 'type' => 'content',
4. 'style' => 'article',
5. );
6. mp_content($object_format);
7. mp_get_footer(); // Must include this!
What about plugins…?What about plugins…?
Growing List of Hooks & FiltersGrowing List of Hooks & Filters
Currently Included MU-PluginsCurrently Included MU-Plugins
• contact_form - HTML5 / AJAX Powered
• rss - Includes - geoRSS Support
• ddos_protection - Experimental Firewall
• default_header - Uses GridFS Media
• analytics_footer - Google Only
• download_counter - Uses GridFS Media
Thanks for letting me empty your mind!Thanks for letting me empty your mind!
More InformationMore Information
• Mark on Twitter = @m_smalley
• MongoPress = @mongopress-- The High-Performance MongoDB CMS – http://mongopress.org
• MongoMail = @mongomail-- MongoDB-Powered Email Management – http://mongomail.org
• MongoKong = @mongo_kong-- HTML5 Social-Gaming Management – http://mongokong.com