Blog & News
How to create, manage, and publish blog posts and news articles in CareNova — covering both the dashboard editor and the public-facing blog.
Written By Dev010
Last updated 19 days ago
CareNova includes a built-in blog system that lets your clinic publish articles, news, and health tips directly on the public-facing website. The blog has two parts — a dashboard editor where staff create and manage posts, and a public blog page where visitors read them.
Admin and Doctor roles can access the Blog module in the dashboard. Receptionist and Nurse accounts do not have access to blog management.
Accessing the Module
Sidebar → Blog / News
Direct URL:
https://yourdomain.com/dashboard/blogThe public blog is accessible to all visitors at:
https://yourdomain.com/blog
https://yourdomain.com/blog/[post-slug]Dashboard Blog List
The blog dashboard lists all posts — both published and unpublished — in a table with the following columns:
Use the search bar to filter posts by title. Posts are ordered by creation date, newest first.
Creating a Post
Click New Post to open the post editor. Fill in the following fields:
Required:
Optional:
After filling in the fields, click Save to create the post.
A post is only visible on the public blog when Published is toggled on. Leaving it off saves the post as a draft — visible in the dashboard but not on the public site.
Editing and Deleting Posts
Click the Edit action on any post in the list to open the editor with existing values pre-filled. Make changes and click Save to update the post.
Click Delete to permanently remove a post. Deletion also removes all associated comments for that post via cascade delete.
Blog Categories
Categories group related posts and appear as filters on the public blog index page.
Sidebar → Blog / News → Categories
Direct URL:
https://yourdomain.com/dashboard/blog/categoriesCreating a category requires:
Categories are assigned to posts when creating or editing. A post can belong to one category. Deleting a category sets the category_id to null on all associated posts — posts are not deleted.
Comments
When Comments Enabled is toggled on for a post, a comment form appears at the bottom of the public post page for visitors to submit their name, email, and comment.
Comments require approval before they appear publicly. Submitted comments have approved = false by default. To approve or manage comments, query the blog_comments table directly in Supabase:
-- View all pending comments
SELECT bc.name, bc.email,
bc.content, bc.created_at,
bp.title as post_title
FROM blog_comments bc
JOIN blog_posts bp ON bc.post_id = bp.id
WHERE bc.approved = false
ORDER BY bc.created_at DESC;
-- Approve a comment
UPDATE blog_comments
SET approved = true
WHERE id = 'paste-comment-uuid-here';
-- Delete a comment
DELETE FROM blog_comments
WHERE id = 'paste-comment-uuid-here';Comment moderation from the dashboard UI is not currently available — use Supabase Table Editor or the SQL queries above to manage submitted comments.
Slugs and URLs
Each post has a unique slug that forms its public URL:
https://yourdomain.com/blog/[slug]If a slug is not manually entered, CareNova auto-generates one from the post title. Slugs must be unique across all posts — saving a post with a duplicate slug will return an error.
Avoid changing a post's slug after it has been published. Changing it breaks any existing links or bookmarks to the post and affects its search engine ranking.
Public Blog
The public blog is visible to all visitors without requiring login.
The blog index page at /blog displays a list of all published posts with title, cover image, excerpt, category badge, author, and published date.
The post detail page at /blog/[slug] displays the full post content including cover image, reading time, tags, and the comments section if enabled.
The public blog automatically reflects the clinic's active theme and branding — colors, fonts, and layout adapt to the configured clinic type (dental, ophthalmology, general).
Database Schema Reference
blog_categories
blog_posts
blog_comments
Workflow Examples
Publishing a new health tips article:
Sidebar → Blog / News → New Post
Enter title and full content
Add excerpt (2–3 sentence summary)
Upload a cover image
Assign a category (e.g. Health Tips)
Toggle Published on
Set Published At to today's date
Save — post is immediately live at
/blog/[slug]
Saving a post as a draft before it is ready:
Sidebar → Blog / News → New Post
Fill in title and content
Leave Published toggled off
Save — post appears in dashboard list but is not visible on the public blog
Publishing the draft later:
Sidebar → Blog / News
Click Edit on the draft post
Toggle Published on
Set Published At date
Save — post goes live immediately
Creating a new category:
Sidebar → Blog / News → Categories
Click Add Category
Enter name, optional description, optional color
Save — category is available when creating or editing posts
Troubleshooting
Post not appearing on the public blog:
Confirm Published is toggled on
Confirm the post is saved — check Supabase → Table Editor → blog_posts and verify
published = trueHard refresh the public blog page
Confirm there are no slug conflicts with another post
Slug conflict error on save:
Each slug must be unique across all posts
Manually enter a different slug or slightly modify the title before saving
Cover image not displaying:
Confirm the image URL is publicly accessible — paste it directly in the browser to verify
If uploading to Supabase Storage, confirm the bucket is set to Public
Comments not appearing after visitor submission:
Comments default to
approved = false— they must be approved manuallyUse the SQL query in the Comments section above to approve pending submissions
Blog module not visible in sidebar:
Confirm you are logged in as Admin or Doctor
Receptionist and Nurse roles do not have access to Blog management