The Future of Blogger

because this project should end too

Posted by German Kalinec on 11/04/2024 02:22 PM

Blogger needs the same treatment, as I would like to establish a “release” version that will have everything that I want.  I think in a lot of ways, Blogger needs more work than the main project, as the main project is pretty well defined, whereas this project needs a lot more feature to make it into something more usable. I will also have to cut off some feature that I just don't think fit. One of the main ones, for example, is comments.  Comments means moderation, which means sifting through comments. It also means either leaving things anonymous, which means its a free for all, or have them login, which means account. I simply don't wish to deal with any of those options, so this Blog will not have any comments.  But there are alternatives to comments. If you can “share" this on certain platforms, then you can let them deal with the commenting. Platforms such as Facebook or Reddit allow for all of this, the code simply has to be written to share the posts. 

Archives

So lets start with a list of new features.  I will detail these in a similar format as my DiCMS blog post about the same topic.  The most important feature that needs to be built is the archive and display features. The basic idea behind this is that you don't want to have a page that displays hundreds of blog posts. In fact, probably anything more than 5-10 blog posts can be overwhelming, really. So the idea is that anything after a certain number of posts should be “archived” into a different section that the user can visit to look at old posts. If a user wishes to view these posts, then they should have the option to either search for these posts or visit an archive page where they can see all the posts, either by date, or paginated or something.

MilestoneBlog Post Enhancements
Requirements
  • Make a blog setting that auto-archives after a certain number of posts.  Option to never archive.
  • Create/allow the creation of an archive page with controls that will allow for filtering of posts.
  • Allow to search for posts in a blog. Make the blog search into a component that can be added to a page and will search a blog

Blog Post Enhancements

I would like to add some enhancements to the existing posts that will make it more like “traditional” blog posts.  I have already ruled out the ability to comment, but would like to implement the ability to share. This would include doing research on how each company shares their stuff, and then turning it on by user's choice on a per-blog or post level. I would also like to be able to tag posts using tags that could then be used in a tag cloud, or at leased be accessible via REST API.  When the post was last updated should also be more prominent, allowing users to know that post was updated. 

I also decided to run this post through AI to get some suggestions. The usefulness of AI still astounds me. Based on some of their suggestions I've decided to add the following:

  • Social Media Sharing Customization: Beyond just the ability to share posts, each social media share button will include the option to customize its display. Users will be able to choose which platforms (Facebook, Twitter, LinkedIn, etc.) to include for each blog or individual post. Additionally, the blog will implement Open Graph metadata and Twitter Card markup, which will automatically create rich previews on social media platforms when links are shared, enhancing visibility and engagement.

  • Related Posts: Adding a "Related Posts" section at the end of each blog post will allow readers to seamlessly discover more content on similar topics. This feature will use tags and categories to identify related posts, providing readers with a more continuous browsing experience and encouraging them to explore additional content.

  • Post Thumbnails and Excerpts: Each blog post will support an optional thumbnail image and a short excerpt. The thumbnail will appear in the post previews on the main blog page or promotional widgets, giving readers a visual cue. The excerpt can help summarize the post's content, which is particularly helpful when users are browsing through the archives or promotion widgets.

  • Advanced Tagging and Categorization: Besides basic tags, this enhancement will include hierarchical categories, allowing for more in-depth organization of content. A tag cloud widget will be available to display popular tags in a visually engaging way, giving users a simple way to find related topics across the blog.

  • SEO and Metadata Controls: Each post will include customizable SEO fields, such as meta descriptions, alt text for images, and specific URL slugs. This control helps improve the visibility of posts in search engines and ensures that they can be easily discovered by readers.

  • Scheduling and Draft Management: To streamline content creation, Blogger will include a post scheduling feature, allowing posts to be published automatically at a future date and time. Additionally, the draft management system will let users save and track multiple drafts or versions of a post, making it easy to revisit and refine content before publication.

MilestoneBlog Post Enhancements
Requirements
  • Implement customizable social media sharing buttons and Open Graph/Twitter Card metadata.
  • Develop a “Related Posts” feature based on tags and categories.
  • Display author and “Last Updated” information for each post.
  • Add support for post thumbnails and excerpts on main blog pages and widgets.
  • Introduce advanced tagging, categorization, and a tag cloud widget.
  • Add SEO and metadata customization fields for each post.
  • Enable post scheduling and draft management with version tracking.

Widgets

I plan on building a few widgets when the feature is first created. In fact my first “real” test for widgets that I will be implementing will be done in Blogger, as that one is where I have the most idea of what I want.  Widgets will different from plugins in that plugins are fully contained code that encapsulates all the code to be included as a plugin to GrapesJS, whereas widgets are only things that will be added as blocks directly to GrapesJS (well, through an existing plugin) that will run certain code. Now There are multiple ways I'm thinking that code can be run. As 2 starting options, I'm thinking that Blade Components and Livewire Components should be easy options. 

Lets talk about some of the widgets that should exists. The easy one is a way to search for blog posts. Users should be able to drag them to any Page, Header, or Footer and have the ability to search 1 or more blogs. This also means that there has to be a search landing page (or a results part of the widget). Another widget that I would like to use is a promotions widget, where I can “promote" the latest X posts from either a blog or multiple blogs that can then be placed somewhere in a page.

MilestoneMake Widgets
Requirements
  • Create a search widget to search for blog posts.
  • Create a promotion widget that will pull the latest X number of posts from 1 or more blogs.
  • Create a Blog Post RSS seed.

GrapesJS Plugin Enhancements

These are minor things that I would like to add to complete the existing plugins. As of not, I include 1 plugin with a couple of extra blocks if I'm in the post page or the index page. I would like to add blocks that will let me go to the next or previous post, which will make each individual post look better. I want to be able to set each of the elements as an individual thing, so that users can customize the messages if they wish.  I would also like to provide some filtering plugins so that I can control what date I see for blog posts.

From AI:

Featured Post Block: A block that lets users highlight a particular post as “featured” on the blog’s main page or within individual posts will be added. This block can be useful for promoting important announcements, updates, or popular content, drawing the reader’s attention with distinct styling and positioning options.

MilestoneMake Widgets
Requirements
  • Develop Next and Previous Post navigation blocks with customizable messaging and layout.
  • Add filtering plugins to display posts based on customizable date ranges or dynamic date-based categories.
  • Create a Featured Post block with unique styling and positioning options.

Blog Enhancements

I would also like to add some enhancements to the actual blog themselves (not just the post). From AI:

  • SEO and Analytics Integration for Blogs: Integrate SEO controls and analytics for the entire blog. This will allow users to set meta descriptions, keywords, and custom URL slugs for the blog’s main page and category/tag pages, helping improve search engine visibility. Integration with Google Analytics or other tracking services will also enable users to monitor traffic and gain insights into visitor behavior.

  • Customizable Pagination and Infinite Scroll Options: Users will have the choice between classic pagination and an infinite scroll option for blog posts. This allows for different browsing experiences based on the blog’s content type and user preferences. For example, news blogs might benefit from pagination, while photo-heavy blogs may prefer infinite scroll.

MilestoneBlog Enhancements
Requirements
  • Integrate SEO controls and analytics tracking for the blog’s main page and category/tag pages.
  • Add pagination and infinite scroll options for blog post browsing.

REST APIs

Read my post on DiCMS about my views on REST APIs (spoilers: I love them). I will not be rewriting the post, so here are the milestones:

MilestoneREST APIs
Requirements
  • Make the system authentication-agnostic
  • Make the authorization happen through apps.
  • Enable API's by enabling routes.
  • Every model needs to have API access.

Road Map to 1.0

Following a structured approach, the path to a stable 1.0 release for Blogger will be based on clear milestones, each tackling significant areas to ensure both functionality and usability are polished. The versioning will follow a system where the third decimal represents bug fixes, the second decimal signifies milestone completion, and major revisions will indicate significant feature finalization.

  • Version 0.6

    • Complete Blog Post Enhancements: Implement social sharing options, post thumbnails, excerpts, and SEO fields.

    • Launch Basic Widget Support: Create initial widgets, including a search widget and promotions widget.

    • Finalize GrapesJS Plugin Enhancements: Add Next/Previous Post navigation, Featured Post block, and filtering options.

  • Version 0.7

    • Finalize Archive and Display Features: Set up auto-archiving, archive page, and post search functionality.

    • Complete Advanced Tagging and Categorization: Add a tag cloud, hierarchical categories, and related posts functionality.

    • Develop Basic Blog SEO and Analytics: Set up blog-wide SEO metadata and enable analytics integration.

  • Version 0.8

    • Introduce Comprehensive Blog Layout Customization: Add layout options (grid, list, masonry), customizable headers/footers, and pagination/infinite scroll options.

    • Expand Widget Variety: Integrate additional widgets, including a customizable sidebar and RSS feed.

  • Version 0.9

    • Focus on Quality of Life Improvements: Test the entire admin interface for mobile compatibility, improve backup functionalities, and refine documentation for end-users.

    • Conduct Thorough Testing: Write and implement tests for all primary models and core functionalities to ensure stability.

  • Version 1.0

    • Release as a Complete and Stable Version: Ensure all planned features are fully implemented, documented, and thoroughly tested.

    • Address any remaining bug fixes or minor adjustments based on user feedback and testing insights.

This roadmap will guide the development of Blogger to its 1.0 release, focusing on creating a robust, user-friendly blogging platform with all essential features. Each milestone will bring Blogger closer to offering a seamless and fully-featured experience for users.