Hi Brandon, Keith,

I think Keith is referring to the thread I started earlier about a service that would provide a very easy way to install Mezzanine.

Like you Brandon, I'd love to be able to recommend a Django-based alternative to WordPress. It seems that there isn't a solution like this yet. There is a real question in my mind about whether non-developers can really produce good quality web sites without learning quite a bit about coding. All of the approaches I know have serious problems:

1) The WordPress approach:

The biggest problem is security. WordPress themes and plugins are just PHP code. The system suffers terribly in terms of security because of that. A WordPress site inherits all of the security problems that PHP has:

https://www.owasp.org/index.php/PHP_Security_Cheat_Sheet

In addition, WordPress adds it's own:

 * 'convenient' SQL APIs that makes SQL injection vulnerabilities
   extremely likely.
 * use of PHP as template language, which makes XSS very likely,
 * complete lack of proper structure in request handling, which makes
   access permission vulnerabilities very likely.
 * Ability to edit the PHP templates, which means that admin access to
   a WordPress site (e.g. through a guessed password) immediately
   elevates to a remote execution vulnerability - the most serious kind.

I recently evaluated the practicality of using WordPress as a cheap replacement for our current church website. I found a professional looking plugin that would actually do our "sermon MP3" page, and so analysed the code. Within an hour I had found dozens of XSS vulnerabilities, and a bug that allowed *any* user (completely unauthenticated) to delete any file on the server.

In other words, in terms of structure, WordPress provides a free-for-all that guarantees a security mess. The situation is terrible, and we all know WordPress sites that have been hacked as a result. This is really not something you want non-technical people to be dealing with.

And even if you don't get hacked, you are still end up with something that is a nightmare to maintain - all the different plugins and themes are just cobbled together, and once you start upgrading things, you can expect a mess.

2) "Website builders"

e.g. http://www.wix.com/
http://www.weebly.com/
http://squarespace.com/

This is the other end of the spectrum. You get a fairly locked down system, in which you must choose a template, with some controls for customisation, and add your own pages. There might be an "apps market" if you want to add custom server-side logic, but that's probably your only option.

There are lots of downsides:

 * Quite limited in what you can do
 * Often badly optimised for mobile
 * Once you have more than a few pages, managing them all and keeping
   them consistent gets hard
 * You are locked into their platform

If their templates and functionality suit your needs, they are great, but you can hit a limit fairly quickly.

3) Designer oriented sites

For example https://webflow.com/

These can help web designers build good looking sites. You get a good level of control over HTML/CSS, but when it comes to CMS features I think they are lacking, and custom server-side logic is again going to be a problem. The idea is that designers "hand off" their code to a developer at that point.

And that is the point at where something like Mezzanine comes in, which aims at the people who have 1) found the above three solutions inadequate for their needs, and 2) are technical enough to handle the alternative, or are happy to pay someone else who does have those skills e.g. an agency that builds custom web sites for people.

It also aims to be "just Django", which gives you the flexibility of building a lot more than just a blog. But this flexibility means that it cannot be totally opinionated about what it does, and therefore cannot do everything for you.


I don't know if some "middle ground" between the alternatives is even theoretically possible. It is precisely the flexibility of WordPress in terms of installing arbitrary code that gives it the power it needs, and makes it a nightmare. Complete flexibility also means it's going to be very hard to create responsive (mobile optimised) sites, and that is more and more of a minimum requirement today.

I have been toying with the idea of a building a service that would help you get a Mezzanine instance up and running, and would manage it entirely for you, including providing a set of themes you can choose from. There are some challenges in doing that - the Mezzanine themes that are available basically assume that you are going to edit them with a text editor at some point, rather than be installable in a point-and-click way.

My ideal implementation of this would allow users to cut themselves loose when they outgrow the system, and at that point have a Django app that would be implemented using best practices, would have instructions about how to set up their own dev environment, deploy etc., and their own (small) VPS to manage.

The bigger challenge for me at the moment is knowing if I would be able to make money out of a service like that, without which I can't afford to be working on it. It would be a lot of work to do in a competitive way. (You'd need a lot of themes etc., and a slick interface).

And it's possible that a system that attempts to hit someone in the middle of the different extremes might end up with the worst of both worlds, rather than the best, and not actually be useful for anyone who wants to build a web site.

Those are my thoughts any way.

Regards,

Luke

On 29/04/15 21:04, Ken Bolton wrote:
Hi Brandon,

I hear your frustration. I encourage you to stick with it. Get through the excellent official Django tutorial. I have observed individuals of wildly varying skill levels and backgrounds use Mezzanine to great effect. The key that unlocks Mezzanine is always Django.

There was talk recently on this list about a WordPress.com clone based on Mezzanine. I hope someone does it and sees wild success.

Keep in mind that Mezzanine was built by developers who needed a powerful, consistent, and flexible platform on which to build bigger projects. Mezzanine is for developers, without apology. The first parts of the documentation make it clear that a knowledge of Django is required and that the target audience are front- and back-end developers and systems administrators.

Finally: Until I deploy, I have nothing. So the first task is always to deploy. A successful running deployment – even to a local VM – is the /mis en place/ of software development.

- ken

On Wed, Apr 29, 2015 at 2:52 PM, Brandon Keith Biggs <brandonkeithbi...@gmail.com <mailto:brandonkeithbi...@gmail.com>> wrote:

    Hello,
    I have been looking around the web, comparing different python
    CMSes with Mezzanine and I keep coming back here. I am wondering
    why mezzanine does not implement functionality for non developers
    to use it out of the box?
    So for example, I have my website on wordPress and would like to
    migrate it to mezzanine. I know python, but not django. In order
    for me to move my site to mezzanine and make it look like I want,
    I need to both modify the CSS file, the template files, learn
    django so I can display some variables that I have on my
    front-page and figure out how to deploy mezzanine on a server.
    After I get my website up and running I want to learn django and
    start building apps.
    Granted, mezzanine has a much easier entry than any other python
    CMS I found, but I think it could and should be a little easier.
    After all, there is a huge audience of people who know basic
    python and would really like to use a python CMS, but don't want
    to learn django or a complex templating language to create a good
    looking website.
    For example, why does it take 5 commands to run? (granted 5 is
    really good as most other places take 10+), but mezzanine-project
    myproject could totally make the db, setup the user and ask if you
    would like to run the server. (possibly a -s or -b could setup the
    server for server-side development and -b could set the folder
    like it is now).
    I have not yet deployed it on a server yet, so can't say how
    difficult it is, but it would be really awesome if mezzanine
    either did what wordPress.com does or give a really easy (no more
    than 10 step) tutorial on how to install mezzanine on something
    like Python Anywhere.
    Also, why does mezzanine not have a content folder with subfolders
    of plugins, themes, apps and the default templates? I think it
    would be super easy to make and would promote well-organized site
    structure.

    I know that mezzanine is built for developers, but so is python. I
    think that mezzanine could totally remain super developer friendly
    while also being non programmer and basic python programmer friendly.

    These are just a few thoughts from someone who is just coming into
    mezzanine never having developed for the web in python before.
    (Other than brython :)). I really would like to tell people to use
    mezzanine rather than wordPress because learning how to script in
    python is just so much easier than learning how to script in PHP,
    but currently it is too complex.
    I am learning django and hopefully I can either make a separate
    CMS based off mezzanine or help mezzanine to become novice friendly.
    Thanks,

    Brandon Keith Biggs <http://www.brandonkeithbiggs.com/>
    On 4/22/2015 4:46 PM, Josh Cartmell wrote:
    Hi Brandon, hopefully the following are helpful answers!

     1. Title + the publishing controls are present across all things
        that inherit from the Displayable class where as the type of
        content on those various models will vary from class to
        class.  Blog Posts have categories and content, Rich Text
        Pages just have content, Links have no content, etc... All
        the admin classes of those models inherit from Displayable so
        they end up all having those things grouped.  Besides the
        technical reasons I think the consistency is useful and I
        find it nice to always be able to have the publishing
        controls right there.
2. The editor is a WYSIWYG, particularly one called TinyMCE. Here's what they have to say about accessibility,
        http://www.tinymce.com/wiki.php/TinyMCE3x:Accessibility, but
        maybe some or all of that isn't working?
        You can change what is used though, for example in your
        project's settings.py file you could put:
        RICHTEXT_WIDGET_CLASS = "forms.Textarea"
        Doing that should get rid of the WYSIWYG and those types of
        fields should just show up as normal HMTL textareas.  That
        would affect any admin user, not just yourself.
     3. There isn't anything like that built in, there might be other
        projects that do things like that for Django that you could
        integrate with Mezzanine.
     4. I don't think we have considered Brython but it should be
        easy to integrate any front end technology you want.  Right
        now Mezzanine ships with Twitter Bootstrap as a frontend
        framework and I think most people, myself included, are very
        happy with it.  But really, Mezzanine doesn't force front end
        technology on you, it just default to Twitter Bootstrap and
        you can change that easily by changing your project's base.html
        Brython does look interesting though so I may have to take a
        look at it at some point!
     5. Mezzanine does have some user account/profile support.  Here
        are the docs,
        http://mezzanine.jupo.org/docs/user-accounts.html. Mezzanine
        doesn't have any social login support but there are quite a
        few Django apps that do that which you could use to add that
        functionality
     6. I tend to use https://www.digitalocean.com/ (VPS) or
        https://www.webfaction.com/ (shared host).  I've never used
        it on a cPanel host but you do need ssh access to a host to
        be able to deploy Mezzanine.
     7. Mezzanine doesn't have plugins in the same sense as
        Wordpress.  You can't install anything through Mezzanine's
        admin interface other than possibly adding some Javascript to
        the content of pages.  Here is a list of modules that have
        been created for use with Mezzanine,
        http://mezzanine.jupo.org/docs/overview.html#third-party-modules
        but most if not all of them probably require modifying at a
        minimum your projects settings.py file

    Here are a few more thoughts:

    Mezzanine is Django so anything you can do with Django you can do
    in Mezzanine.  That means that when you look for modules you can
    cast a wider net than just looking for things that were
    specifically made for Mezzanine

    The following is my opinion and I'm sure my bias towards
    Mezzanine will show.  Mezzanine and Wordpress have fundamentally
    different philosophies.  Wordpress is more targeted at end users
    by making it easy to install plugins through the admin
    interface.  I tend to think that with a Wordpress site you could
    get 80% to 90% of the functionality you want with plugins but
    that last 10% may be very difficult. Mezzanine on the other hand
    requires you to either have a developer or know how to code
    yourself.  It doesn't try to be all things to all people but does
    provide a solid core feature set and makes it easy for a Django
    developer to add missing functionality.

    Hopefully that helps.  Welcome to Mezzanine and please keep
    asking questions.  Good luck!


    On Wed, Apr 22, 2015 at 6:10 AM, Brandon Keith Biggs
    <brandonkeithbi...@gmail.com
    <mailto:brandonkeithbi...@gmail.com>> wrote:

        Hello,
        After spending 8 months with wordPress, I am throwing my
        hands up and moving back to my home language python.
        I saw mezzanine was probably the cms that would give me the
        least problems, but I have some questions:
        1. The edit page screen is really messy and difficult to
        navigate. I am using a screen reader, so that may be part of
        it, but why is the publish date stuff right under the title?
        why is not content right under title? I would like to enter
        the title, hit tab and enter the page content. Also, why is
        the body text editor not a multi edit field? The weird thing
        is that it now is almost unusable... I can't use navigation
        commands to get into it or out of it, it says "paragraph
        editable" while arrowing through each line and there is no
        advantage anywhere for having this. Perhaps it is a wysiwyg
        editor and that is why I don't see anything good about it. If
        so, how can I disable the wysiwyg editor for my account?
        2. Not being able to write html from within the editor is
        horrible, I need to fix it. I spent all last night trying to
        think about how one could change the user permissions on them
        self, but couldn't come up with anything. Perhaps it has to
        do with the backend, but it just seems so unlikely it will
        never happen.
        3. Is it possible to add short-codes or code within the
        editor so I can access variables and or functions that I have
        created without making a template?
        4. Has mezzanine considered distributing brython along with
        the servers? I can add it, but it would make more sense to
        have things in brython rather than javascript for a python
        based product...
        5. How is the user account support? I would like to have
        people connect with Facebook or google and grab info from
        there to populate the user's fields on their account pages.
        6. What hosts are easy to use with mezzanine? I am looking
        for a new one and would prefer one with CPanel.
        7. Are all the plugins there on the front page? Is there a
        way to get plugins or templates from within the dashboard?
        This is something that makes wordPress exceptional for quick
        development.
        Thank you,

-- Brandon Keith Biggs <http://www.brandonkeithbiggs.com/> -- You received this message because you are subscribed to the
        Google Groups "Mezzanine Users" group.
        To unsubscribe from this group and stop receiving emails from
        it, send an email to
        mezzanine-users+unsubscr...@googlegroups.com
        <mailto:mezzanine-users+unsubscr...@googlegroups.com>.
        For more options, visit https://groups.google.com/d/optout.


-- You received this message because you are subscribed to the
    Google Groups "Mezzanine Users" group.
    To unsubscribe from this group and stop receiving emails from it,
    send an email to mezzanine-users+unsubscr...@googlegroups.com
    <mailto:mezzanine-users+unsubscr...@googlegroups.com>.
    For more options, visit https://groups.google.com/d/optout.

-- You received this message because you are subscribed to the Google
    Groups "Mezzanine Users" group.
    To unsubscribe from this group and stop receiving emails from it,
    send an email to mezzanine-users+unsubscr...@googlegroups.com
    <mailto:mezzanine-users+unsubscr...@googlegroups.com>.
    For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Mezzanine Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to mezzanine-users+unsubscr...@googlegroups.com <mailto:mezzanine-users+unsubscr...@googlegroups.com>.
For more options, visit https://groups.google.com/d/optout.

--
Hofstadter's Law: It always takes longer than you expect, even when
you take into account Hofstadter's Law.

Luke Plant || http://lukeplant.me.uk/

--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to