Lets push Bludit to the masses. Both devs and users. Users are easy - we need to give them what they want. That usually is flaveless functionality + tools to keep visitors coming. Devs thats a bit different bundle of fish, here there are other things to keep in mind. We need to bake in more of the tedious things devs don't want to do. Its easy to create themes for Bludit so now it's more about the functionality.
Direction
More of the same but better. Theres no reason to change what people are used to. A bit more better UX, thats it. Split between pages and posts should stay. The main problem is what you can do with pages/posts already created.
Changing page position, changing parents on the fly, bulk actions. You know, wordpressy things .
Change of focus
Bludit seems to be focused more on general public. If something is directed at everyone usually noone takes notice. Lets make Bludit into a default tool for marketers (one pager or landing page with a couple of subpages/conversion & tracking tools/ ease of deployment), small to medium businesses (couple of pages with a seo optimised blog fused with facebook/twitter ) and pro user who are fed up with the bloat that comes with wordpress type solutions (api + plugin creation/ease of customising each and everyt Bludit function via functions.php or less wordpressy file )
What should be baked in:
- Twitter/ Facebook cards
This is obvious. Social media features are mandatory whether anyone likes it or not. Both sites provide enough documentation to do this quite quickly. My take on this looks like:
Code: Select all
<?php if($Url->whereAmI()=='page') { ?>
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="<?php echo DOMAIN.$Page->permalink() ?>">
<meta name="twitter:creator" content="@<?php echo $Site->twitter() ?>">
<meta name="twitter:title" content="<?php echo ''.$Site->title().' - '.$Page->title().'' ?>">
<meta name="twitter:description" content="<?php echo $Page->description() ?>">
<?php if($Page->coverImage()){ echo '<meta property="twitter:image" content="'.DOMAIN.$Page->coverImage().'" />'; } else { echo '<meta property="og:image" content="'.DOMAIN.HTML_PATH_THEME.'img/social-media-default.jpg" />'; } ?>
<meta property="og:url" content="<?php echo DOMAIN.$Page->permalink() ?>">
<meta property="og:type" content="article" />
<meta property="og:title" content="<?php echo $Site->title().' - '.$Page->title() ?>">
<meta property="og:description" content="<?php echo $Page->description() ?>">
<?php if($Page->coverImage()){ echo '<meta property="og:image" content="'.DOMAIN.$Page->coverImage().'" />'; } else { echo '<meta property="og:image" content="'.DOMAIN.HTML_PATH_THEME.'img/social-media-default.jpg" />'; } ?>
<?php } elseif($Url->whereAmI()=='post') { ?>
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="<?php echo DOMAIN.$Post->permalink() ?>">
<meta name="twitter:creator" content="@<?php echo $Site->twitter() ?>">
<meta name="twitter:title" content="<?php echo $Site->title().' - '.$Post->title().'' ?>">
<meta name="twitter:description" content="<?php echo $Post->description() ?>">
<?php if($Post->coverImage()){ echo '<meta property="twitter:image" content="'.DOMAIN.$Post->coverImage().'" />'; } else { echo '<meta property="og:image" content="'.DOMAIN.HTML_PATH_THEME.'img/social-media-default.jpg" />'; } ?>
<meta property="og:url" content="<?php echo DOMAIN.$Post->permalink() ?>">
<meta property="og:type" content="article" />
<meta property="og:title" content="<?php echo $Site->title().' - '.$Post->title() ?>">
<meta property="og:description" content="<?php echo $Post->description() ?>">
<?php if($Post->coverImage()){ echo '<meta property="og:image" content="'.DOMAIN.$Post->coverImage().'" />'; } else { echo '<meta property="og:image" content="'.DOMAIN.HTML_PATH_THEME.'img/social-media-default.jpg" />'; } ?>
<?php } else { ?>
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="<?php echo $Site->url() ?>">
<meta name="twitter:creator" content="@<?php echo $Site->twitter() ?>">
<meta name="twitter:title" content="<?php echo $Site->title() ?>">
<meta name="twitter:description" content="<?php echo $Site->slogan() ?>">
<meta name="twitter:image" content="<?php echo DOMAIN.HTML_PATH_THEME ?>img/social-media-default.jpg">
<meta property="og:type" content="profile" />
<meta property="og:url" content="<?php echo $Site->url() ?>">
<meta property="og:title" content="<?php echo $Site->title() ?>">
<meta property="og:image" content="<?php echo DOMAIN.HTML_PATH_THEME ?>img/social-media-default.jpg">
<?php } ?>
Code: Select all
<p class="share-this">Share on <a href="https://www.facebook.com/sharer/sharer.php?u=<?php echo DOMAIN.$Page->permalink() ?>" class="share facebook">Facebook</a>,
<a href="https://twitter.com/intent/tweet?url=<?php echo DOMAIN.$Page->permalink() ?>&text=<?php echo $Page->title(); ?>&via=<?php echo $Site->twitter()" class="share twitter">Twitter</a>,
<a href="http://www.linkedin.com/shareArticle?mini=true&url=<?php echo DOMAIN.$Page->permalink() ?>&title=<?php echo $Page->title() ?>&summary=<?php echo $Page->description() ?>&source=<?php echo echo $Site->url()>" class="share linkedin">LinkedIn</a>.</p>
- Google Analytics
This one is a no-brainer. It should be one of the firs options in settings/advanced. Easy to do and implement. We could talk about more elaborate implementations but even the bacis one should be enough.
To think about
- Medium.com style text editing
There are a couple of solutions done already (https://yabwe.github.io/medium-editor/ for example). I understand writing this from scratch would be a tall order and somebody might be able to create a plugin that does that but the sooner Bludit moves away from dev focused content entry the better.
- Schema.org shemas
SEO rules the world, anything that would enable users to partake in this would make them return to Bludit for more. Preselecting itemscope from a dropdown in pages advanced settings should do the trick, based on that we could wrap important bits with spans or divs containing relevant itemprops.
- Generic advertising solution
Something as simple as posting a piece of custom code every couple of posts or generic "this post was sponsored by xxx" + custom tracker link at the end of post content. Everyone wants to earn money and this would be a good way to do that
Tweaks
-Change of page order when adding new pages.
Instead of changing page order by hand it would be nice to have one simple question just above the Save button: Where do you want this page to appear - in front / at the back / pick page position. After that its just a matter of automagically changing the page order of sibling pages.
Expiry date
Some pages and posts tend not to be evergreen and need to be deleted or modified some time after posting. This would be helpfull for marketers pushing Facebook/ Eventbrite events and such.
Canonical, next / previous post
This would be helpfull two ways, one - for the users, we would enable easy content consumption just by adding next/previous post buttons and second - for better integration with social media, facebook creates post carousels form one link.