The essential news about content management systems and mobile technology. Powered by Perfect Publisher and XT Search for Algolia.
The News Site publishes posts to the following channels: Facebook, Instagram, Twitter, Telegram, Web Push, Bluesky, and Blogger.
Want to make your blogging life easier with just one tool? Start using an editorial calendar. Let us show you how to create one.
It takes discipline to run a successful blog. Without something to organize your publishing schedule, it’s easy to waste time wondering what you should write about, and hard to hold yourself accountable for meeting deadlines. With a well-designed content calendar, you can burn less mental energy thinking about your blog, and focus more clearly on your writing.
The end result? You produce better content with less effort. It’s win-win.
Editorial calendars are easy to set up too, so there’s no excuse not to use one. In this post, we’ll cover the following (and more):
Plus, we’ll even get into some advanced tools and tactics you can use to level up your calendar and content planning game. A better blogging future awaits you.
Start your “someday” project today. Build your blog with WordPress.com now.
An editorial calendar is a visual schedule of the content you will publish on your blog (or other channels). They document the topics you will cover, when you’ll publish each piece, and other important information. Typically, they are created using spreadsheets or dedicated software.
Bloggers and marketers have borrowed the concept of an editorial calendar from the journalism world, where writers and editors have been using calendars to keep organized for decades. No matter what type of content creator you are, you can benefit from using such a calendar too.
The obvious reason to use a calendar is to get organized. But why does getting organized matter and how does that translate into being a more successful blogger? Here are a few ways that getting more organized is directly connected to better blogging results.
Developing a consistent writing practice is challenging. Knowing what you will work on, before you sit down to write, can help you spend less time wondering what to write so you can focus on the words. If writing is less stressful and more satisfying, you’ll be more likely to stick with it.
You’re more likely to produce writing you’re happy with if you aren’t mentally overwhelmed. Anything you can do to get control over your blog (whether by planning ahead, writing clear outlines, or anything else that helps you get organized) will help make you more successful.
It’s easy to think that becoming a successful blogger is all about creativity. While creativity is important, the real foundation for success might actually be having strong processes in place. An editorial calendar can form the foundation for your blogging workflow, helping you plan what you will publish in advance, so you can flex your creativity without worrying about distractions.
There are many different tools you can use to create your calendar. Let’s start by building one with Google Sheets (though you can use any spreadsheet or similar tool you’d like, such as Airtable, Clickup, or Excel).
First, create a new spreadsheet, and add a top row with the following labels:
It should look something like this:
Next, add some placeholder dates and columns for future months. This will help keep your calendar organized as the year progresses:
If you’re using Google Sheets, click Insert, then click Dropdown. This is how we’ll add status selector options that will make it easy to see the progress you’re making on each post:
Add basic labels that outline your writing process. At a minimum, include Not Started, In Progress, and Published. You could also consider adding steps for Editing, Graphic Design (if you’ll be creating visual assets for your posts), or any other steps that may be specific to your workflow. Use the color selectors to color-code each status too:
Then, click the blue circle on the lower right corner of the cell, and drag it down to add the dropdown to each cell. Copy and paste works as well:
Now you’re ready to start adding topics to your calendar. Here’s how things might look once you have a handful of post ideas lined up:
You can also use the button below to find a finished version of this editorial calendar template. Click the button, then click File > Make a Copy to create your own version:
Download your editorial calendar templateCreating your calendar with a spreadsheet is the easiest way to get started. They are simple to set up and can be customized to suit your needs.
However, there are many more options for editorial calendar tools you can choose from. Let’s look at some options you can consider when you’re ready to upgrade from your spreadsheet.
Trello is a simple Kanban board-style project management tool. They offer a free plan and a couple different editorial calendar templates that can help you get set up in a few clicks. It’s used by publications like Wired and offers a lot of task management capabilities that you aren’t going to get with a spreadsheet.
Similar to Trello, Asana is another projectment management tool that can be used to create an editorial calendar. It’s a bit more robust than Trello but with a slightly higher learning curve. Their free plan offers all the capabilities that bloggers should need to manage your calendar and tasks.
Edit Flow is a long-running WordPress plugin for managing your editorial calendar and workflow directly within WordPress. It’s free, full-featured, and easy to use. As a WordPress.com user, you’ll need to choose a plugin-enabled plan to install it (Business and above):
Here is another WordPress plugin option, appropriately titled Editorial Calendar. This plugin is actively maintained and free to use. If you’re on a plugin-enabled WordPress.com plan, you can install it now here:
CoSchedule’s Content Calendar offers a beautiful editorial calendar option that’s packed with powerful automation features so you can schedule all your blog publishing and social promotion in one tool. They also have a WordPress plugin available. Their free and lower-tier plans are suitable for bloggers, while their more advanced packages are built for marketing teams.
There is no right answer to how often you should post on your blog. With that said, sticking to a schedule will help you publish regularly, build discipline, and be a more successful blogger.
If there is a recommendation we can offer for determining how often to post, it’s this: you should publish as often as you have something worth sharing on your blog.
That’s not a very specific recommendation though. If you’re looking for some structure to follow, set a goal to publish one article in your first month. Continue adding another post each week, until you’re publishing something at least once a week.
There’s no science behind this. When you’re trying something new, starting small and working your way up can be a good way to build endurance, without immediately burning out.
Example of a basic blog publishing schedule | |
Month 1 | Publish one post by the end of the month. |
Month 2 | Publish one post every two weeks. |
Month 3 | Publish one post every week and a half. |
Month 4 | Publish one post every week. |
From a technical standpoint, there are no specific days that are best for publishing blog posts.
With that said, publishing on specific days can help you develop discipline and hold yourself accountable. It can also help set expectations for readers, who may wonder when they should expect new content from you, especially if they subscribe to your blog via email.
Here are some general guidelines to help you choose which days to publish:
No matter which tool you use to build your calendar, you’ll need content ideas to keep it full. Let’s look at some reliable methods and processes you can follow to make sure you never run out of things to write about.
If you’re starting a blog, it’s likely you have something to say. Are there any burning issues you can’t wait to write about? Ideas that you’re desperate to share with the world? Stories that can’t wait to be told? Add them to your calendar and turn them into reality.
Whenever I’m asked about blog post ideation, I always recommend this process. It’s one I picked up from a previous employer, and it’s time-tested because it works. Follow these steps:
Now, in just half an hour, you should have enough ideas to write about for at least a month.
Find relevant sub-Reddits to the topics you write about and gather ideas. This guide from Better Web Movement has some tips on how to find subreddits that are relevant to your niche. Even better, be an active participant in Reddit communities that are relevant to the things you write about (though you’re probably doing this anyway if you’re passionate about what you cover).
It’s safe to assume you follow publications and other blogs that are relevant to you on social media. If you’re not using an RSS feed to keep up with your industry or community too though, you might miss out on important stories or articles that could spark your own inspiration. RSS is great because it’s less noisy than social media; you just see the latest articles, without distractions.
Here are some options for RSS and news reader apps you can try:
SparkToro is an advanced tool used by marketers to conduct audience research. Even if you’re not a marketer, and can only afford their free account, it’s still useful for gathering insight about where your audience spends time online and what they might want to read about.
Google processes over eight billion searches per day. At least a few of those clicks should go to your site, right? If you blog about evergreen topics (meaning topics that are always relevant and not time-sensitive), then paying attention to SEO and keyword research is essential.
Here are a few basic keyword research tools you can use that will help you find the terms people search when they’re looking for information about the topics you cover:
Google’s free keyword research tool shows how often keywords trigger ads to appear in search results. It can be useful for SEO too, helping you understand how often potential readers search for specific information:
Ahrefs is a professional SEO tool that’s built primarily for marketers. Their free Keyword Generator tool is useful for bloggers to gather a quick list of basic ideas:
Answer The Public makes it easy to enter a keyword or two, and then generate a large list of questions people ask related to that topic. It’s a quick way to turn one idea into dozens or hundreds of ideas:
Before we go, let’s go over a few final questions you might still have (or didn’t know to ask).
The short answer is no. The longer answer is that people sometimes use these terms in very slightly different contexts. When people say “editorial calendar” they’re often referring to blogging or news publishing, while the term “content calendar” is sometimes meant to include social media, video, and other content formats. Functionally though? They’re the same thing.
An editorial calendar documents what content you will publish. A content strategy is much more complex and encompasses an overarching plan for the who, what, why, and where of all things content on a given website. An editorial calendar might visualize the execution of your strategy, but it’s not a strategy by itself.
This is another area where there are no rules. Having at least three months worth of ideas will ensure you’re never wondering what you should write about. If you can reach a point where you have two to six weeks worth of content written and scheduled in advance, you’re in great shape.
If you can’t reach that level though, that doesn’t mean you’re doing it wrong. In fact, if your blog is focused on covering news or events as they happen (such as a sports blog or local news site), then planning too far ahead might not be possible or even desirable. This is a good reminder that not all blogging advice applies to everyone equally (not even the advice in this post). So, if something sounds like it’s not applicable to you, don’t worry about it.
You now have the knowledge and tools to plan and organize your blog content like an expert editor. Your stress-free future of blogging success awaits!
Host your blog on the best managed WordPress hosting service available. Start a new blog with WordPress.com today.
Read more https://wordpress.com/blog/2025/01/10/editorial-calendar/
GGH is a small CLI application that recalls your SSH sessions and searches your SSH configuration file. It's a lightweight CLI wrapping SSH commands (you must have SSH installed), but it does not replace SSH:
# Use it just like you're using SSH
ggh This email address is being protected from spambots. You need JavaScript enabled to view it.
ggh This email address is being protected from spambots. You need JavaScript enabled to view it. -p2440
# Run it with no arguments to get interactive list of the previous sessions
ggh
# Run it with - to get interactive list of all of your ~/.ssh/config listing
ggh -
# Run it with - STRING to get interactive filtered list of your ~/.ssh/config listing
ggh - stage
ggh - meta-servers
# To get non-interactive list of history and config, run
ggh --config
ggh --history
When you run ggh
it will give you an interactive
list of sessions to conveniently reconnect. If you want GGH to scan
your ~/.ssh/config
file, you can run ggh
-
to get an interactive list of configured connections:
This CLI is a lightweight Golang package that works on Unix and Windows systems. The project source code is available on GitHub at byawitz/ggh.
GGH has installers for Windows and Unix:
# Unix based
curl https://raw.githubusercontent.com/byawitz/ggh/master/install/unix.sh | sh
# Windows
powershell -c "irm https://raw.githubusercontent.com/byawitz/ggh/master/install/windows.ps1 | iex"
# Go
go install github.com/byawitz/ggh@latest
The post GGH is a Lightweight CLI to Recall Your SSH Sessions appeared first on Laravel News.
Join the Laravel Newsletter to get all the latest Laravel articles like this directly in your inbox.
Read more https://laravel-news.com/ggh-is-a-lightweight-cli-to-recall-your-ssh-sessions
Laravel's API Resources provide elegant methods for conditionally including attributes in your responses, allowing you to create flexible and efficient APIs that adapt to different contexts and permissions.
When building APIs, you often need to customize your responses based on different scenarios - such as showing certain fields only to admins, including related data only when requested, or adapting the response format based on the endpoint. Laravel's API Resources provide powerful methods to handle these cases through conditional attributes.
Some key methods available are:
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class UserResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'id' => $this->id,
'name' => $this->name,
'email' => $this->when($request->user()->isAdmin(), $this->email),
];
}
}
Let's explore a practical example of a product catalog API with conditional data:
<?php
namespace App\Http\Resources;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class ProductResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'id' => $this->id,
'name' => $this->name,
'slug' => $this->slug,
'price' => $this->price,
// Include full description only in detailed view
'description' => $this->when(
$request->route()->named('products.show'),
$this->description,
$this->excerpt
),
// Include stock info for authenticated users
'stock_level' => $this->when(
$request->user()?->can('view-inventory'),
$this->stock_count
),
// Include relationships when loaded
'category' => new CategoryResource($this->whenLoaded('category')),
// Include counts conditionally
'reviews_count' => $this->when(
$request->include_counts,
$this->reviews_count
),
// Include admin data
'profit_margin' => $this->when(
$request->user()?->isAdmin(),
fn() => $this->calculateProfitMargin()
),
];
}
}
Laravel's conditional attributes in API Resources enable you to build context-aware responses while keeping your code clean and maintainable.
The post Dynamic API Response Control in Laravel Resources appeared first on Laravel News.
Join the Laravel Newsletter to get all the latest Laravel articles like this directly in your inbox.
Read more https://laravel-news.com/dynamic-api-response-control-in-laravel-resources
The Laravel Model Metadata package is designed to manage metadata in your Eloquent models with JSON support for multiple data types. With this package, you can easily attach, manage, and query your metadata:
use Waad\Metadata\Traits\HasManyMetadata;
class Post extends Model
{
use HasManyMetadata;
}
$post->createMetadata(['key' => 'value', 'another_key' => 'another_value']);
$post->updateMetadata('metadata_id', ['new_key' => 'new_value']);
$post->deleteMetadata('metadata_id');
This package also has convenience methods to retrieve metadata, whether your Model has one record or can have many metadata records:
// Operations for models with "has many" metadata
$metadata = $post->getMetadataById('metadata_id');
$allMetadata = $post->getMetadata();
$metadataCollection = $post->getMetadataCollection();
$searchResults = $post->searchMetadata('search_term');
// Operations for models with "has one" metadata
$metadata = $company->getMetadata();
$metadataCollection = $company->getMetadataCollection();
You can learn more about this package, get full installation instructions, and view the source code on GitHub.
The post Manage Metadata on Laravel Eloquent Models with JSON Support appeared first on Laravel News.
Join the Laravel Newsletter to get all the latest Laravel articles like this directly in your inbox.
Read more https://laravel-news.com/manage-metadata-on-laravel-eloquent-models-with-json-support
Laravel's AsStringable cast transforms model attributes into Stringable objects, providing fluent access to Laravel's powerful string manipulation methods directly from your model attributes.
When working with text in your Laravel models, you often need to perform various string operations like formatting, cleaning, or transforming the text. While you could do this manually each time, Laravel's AsStringable cast transforms your model's string attributes into powerful Stringable objects, giving you access to dozens of built-in string manipulation methods.
This cast is particularly useful when you consistently need to perform string operations on specific model attributes. Instead of writing the same string manipulation code repeatedly, you can access these operations directly on your model attributes as if they were Stringable objects.
use Illuminate\Database\Eloquent\Casts\AsStringable;
class Post extends Model
{
protected $casts = [
'title' => AsStringable::class,
'content' => AsStringable::class,
];
}
Let's explore a practical example of a blog system with SEO-friendly content handling:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Casts\AsStringable;
class Article extends Model
{
protected $casts = [
'title' => AsStringable::class,
'content' => AsStringable::class,
'meta_description' => AsStringable::class
];
public function getSlugAttribute()
{
return $this->title
->lower()
->replaceMatches('/[^a-z0-9\s]/', '')
->replace(' ', '-')
->limit(60, '');
}
public function getSeoTitleAttribute()
{
return $this->title
->title()
->limit(60, '...')
->append(' | My Blog');
}
public function getExcerptAttribute()
{
return $this->content
->stripTags()
->words(50, '...')
->title();
}
public function getReadingTimeAttribute()
{
return $this->content
->stripTags()
->wordCount() / 200;
}
}
The AsStringable cast simplifies string manipulation by providing a fluent interface for common text operations, making your code more readable and maintainable.
The post String Manipulation Made Easy with Laravel's AsStringable Cast appeared first on Laravel News.
Join the Laravel Newsletter to get all the latest Laravel articles like this directly in your inbox.
Read more https://laravel-news.com/asstringable