I've added support for private and public posts on my blog. I've updated my routines to now check the status flag of a post before it will be processed but this means that everywhere that I do a SELECT statement to get data, I need to check the status of the post. It might have been better to implement this in two different tables. That way the data would be isolated and wouldn't leak into each other. However having everything be in the same file is handy as now I can use my blog to write both private and public posts.
I'll need to think about if this structure can handle things that are personal. I think I would want stronger safeguards if I start using my blog more as a diary with some public information versus a public repository of knowledge with some private thoughts.
I wonder what the best practices are, most sites have draft status as an option but the mixing of personal, private, and public posts is something I haven't seen. Though to be fair I don't actually post much anywhere outside of my blog and mastodon.