Blogs
Run a blog without running a CMS. Write posts in your dashboard, schedule them, grow an email list, and embed the whole blog on any website with one line of code.
Overview
The Blogs service gives you:
- A post editor with title, subtitle, cover image, tags, categories and SEO metadata.
- Draft, schedule, publish and archive workflow - scheduled posts go live automatically.
- A live preview while you write, with automatic reading-time.
- AI writing in eleven formats, with a plan you can upload once and have written for you.
- A one-line embed that renders your blog (list + article view) on any site, with related posts on each article.
- An optional table of contents and reader share buttons on each article.
- Reader comments with optional moderation, per post.
- An email subscriber list with a built-in subscribe form, CSV export and webhooks.
- Per-post view analytics and a 30-day trend.
- A read API and RSS feed for custom front-ends.
Write a post
- Blogs → New post. Add a title - the slug is auto-generated (you can edit it).
- Write the body in the editor. Use the toolbar to insert headings, bold, lists, quotes and links. Content is sanitized automatically.
- Add a cover image - upload one or paste a URL - plus a category, tags and an optional call-to-action.
- Fill in SEO (title, meta description, social image) if you want to override the defaults.
- Save draft - the right pane shows exactly how the post will look.
Write with AI
On the New post screen, click Write with AI to draft a complete, SEO-ready post from a short brief.
- Describe the post - a sentence or two on what it should cover.
- Pick a tone (built-in or one of your own custom tones) and a length (short, medium or in-depth).
- Pick a writing template - see the formats below.
- Leave Generate matching images with AI ticked to have images created and placed in the post, including a cover image.
- Optionally tick one or more Knowledge Base collections so the post is grounded in your own content (needs Knowledge Hub).
- Click Generate. A progress panel shows each step turning green as it completes - writing, image generation, then finishing.
The assistant fills the title, URL slug, subtitle, excerpt, body, category, tags, SEO title, meta description and image alt text - all written with search and answer-engine (SEO/GEO) best practice in mind. Everything stays fully editable; review and adjust before you publish. AI generation counts towards your plan's AI usage.
Writing templates
Choose the shape of the article. Each template also decides whether the post ends with an FAQ section, so your blog is not eleven versions of the same page:
- Standard + FAQ - an intro, scannable sections, a conclusion, then a Frequently Asked Questions block. This is the default.
- Article, no FAQ - the same shape without the FAQ, ending on the conclusion.
- How-to guide - numbered steps, what the reader needs up front, key takeaways at the end.
- List post - numbered items with one section each, strongest first. If the title promises seven, you get seven.
- Explainer - opens with a plain-English definition for readers new to the topic, covers how it works and the common misconceptions, then an FAQ.
- Comparison - two or more options weighed criterion by criterion, ending with a clear recommendation per use case, then an FAQ.
- Ultimate guide - a chaptered resource covering a whole topic end to end, with an FAQ. Pair it with the In-depth length.
- Case study - the challenge, the approach, the results and the lessons to reuse.
- Opinion piece - one clear argument, the points behind it, and the strongest counter-argument answered.
- News update - what happened, why it matters and what it means for the reader, most important first.
- Checklist - grouped, do-this-next items the reader can work through.
You can pick the template for a single post, set one for a whole plan, or override it on an individual topic inside a plan.
Set your AI writing defaults
Open Settings → AI writing to control how the assistant writes for your whole workspace:
- Writing rules - things the AI should always do or never do (brand voice, phrases, claims to avoid).
- Tones - add your own custom tones alongside the built-in ones.
- Knowledge base - choose collections that are pre-selected every time you write with AI.
Plan ahead & auto-write
Instead of writing one post at a time, give SoftSolz your content plan and let it write each post for you before its date. You still decide what goes live.
Import a plan you already have
Keep your plan in a spreadsheet or a document? Upload it as-is.
- Blogs → Topics → Import plan.
- Drop in your file - CSV, Excel, Word, PDF, Markdown or plain text, up to 10 MB. Each row needs a topic; a short description and a planned publishing date are used when they are there. Column names do not have to match anything.
- Check what was read. Every topic, description and date is shown for you to correct, and you can drop any row that should not be there. A topic with no date is kept as an idea you can schedule later.
- Set the content options once - tone, length, writing template, images, model - plus the time of day to publish and how many days before its date each draft should be ready.
- Import. The plan appears under Topics as a group you can open at any time to see progress.
What happens next
Each post is written automatically a few days before its planned date (you choose how many) rather than all at once, so drafts arrive fresh and in good time. You get an in-app notification when a draft is ready to review.
Publishing stays manual by default. Every post waits as a draft until someone opens it, reviews it and clicks Publish. If you would rather not review each one, tick Publish automatically on the planned date when you import and posts go live on their own.
Reading experience
Each post can show a table of contents, reader share buttons, the publish date and the reading time. Turn each one on or off per post in the Reading experience card on the editor.
- Table of contents - built automatically from the headings in your post and shown above the article. It only appears when the post has headings.
- Share buttons - let readers share the post to Facebook, LinkedIn, Instagram, Threads, X, Reddit, Teams, Slack, or copy the link.
- Publish date and reading time - shown in the small line above the article.
Set your reading-experience defaults
Open Settings → General → Reading experience to choose the defaults every new post starts with, and to pick which networks appear in the share bar. Changing a default only affects new posts; existing posts keep their own choices, which you can still change per post in the editor.
Comments
Let readers comment on your posts. Each post has its own Allow comments toggle in the editor - that per-post choice is what decides whether the comment section shows on the embedded article, so you can open comments on one post and leave them closed on another.
Open Settings → General → Comments to set the workspace defaults:
- Allow comments on new posts by default - the value each new post starts with (you can still change it per post).
- Require approval before comments appear - hold new comments as pending until you approve them under Blogs → Comments. When off, they appear right away.
You get an in-app notification for each new comment, and can approve, reject or delete them from the moderation view.
Publish & schedule
Use Publish to go live immediately, or Schedule to pick a future date and time - the post publishes itself automatically. Unpublish moves a live post back to draft.
Embed on your site
Open Blogs → Developer, create a widget key for your domain, and copy the snippet:
<div id="softsolz-blog"></div>
<script src="https://app.softsolz.uk/softsolz.js"
data-public-key="pk_live_…"
data-service-id="blogs"
data-mount="#softsolz-blog"></script>
It renders your published posts as a grid and opens each article in place - with its table of contents, share buttons, comments, related posts and the subscribe box, exactly as you set them in SoftSolz. It resizes to fit your page automatically, and anything you change in the dashboard shows up on your site without touching the snippet.
/blog) - your posts render into that page. On a dark-background site, add data-theme="dark" to the script so the text stays readable. Blogs → Developer has a step-by-step installer and a ready-to-paste AI prompt.Subscribers
Blogs → Subscribers lists everyone who signed up from your blog's own subscribe box, plus anyone you add manually. You can unsubscribe, re-subscribe, delete, and export the list to CSV. You get an in-app notification whenever someone new subscribes.
The subscribe box shows on your embedded blog when Settings → General → Newsletter → Show the subscribe box is on. This is the blog's own list; the standalone Newsletter service keeps its own, and you can copy sign-ups across automatically - see below.
Consent and confirmation
Blogs → Settings → Consent controls how readers opt in and what you keep as proof:
- Require email confirmation (double opt-in). New sign-ups get a confirmation email and sit at awaiting confirmation until they click the link. They are not counted as subscribers and receive nothing until they confirm. Recommended for UK and EU marketing lists. This needs your own sending address first - SoftSolz never emails your readers from its address, so the switch stays locked until you have set up your own sending address. If you had it on and then removed your sending address, new sign-ups are accepted straight away instead of waiting on a confirmation that could not be sent.
- Consent wording. The exact sentence readers agree to. It is stored on every sign-up along with the date and the page they signed up from, and appears in the Consent column and the CSV export.
Every subscriber gets a personal unsubscribe link. Anyone can use it to remove themselves without signing in, and to re-subscribe if they change their mind. Rows captured before you turned consent recording on show Not recorded - that is expected, and SoftSolz never backfills a consent record that was not actually given.
Send blog sign-ups to your newsletter
Turn on Blogs → Settings → Consent → Add blog subscribers to the newsletter list and every confirmed blog sign-up is copied into your Newsletter subscriber list, carrying its original consent record. Readers are never asked to confirm twice. The Newsletter service must be installed first.
Analytics
Blogs → Analytics → Overview shows published/draft/scheduled counts, total views, subscriber growth, a 30-day views chart and your top posts.
Reader insights
The Readers tab answers the marketing questions: where your readers come from, which campaigns bring them, and what actually turns them into subscribers. It is off until you switch it on under Blogs → Settings → Privacy and add data-analytics="on" to your embed snippet.
There are two levels, and the difference matters legally:
| Level | What you get | What it needs |
|---|---|---|
| Collect reader analytics | View counts per post, the referring site (Google, LinkedIn, a partner blog), and the campaign tag on the link. Plus which of those sources actually produced subscribers. | Nothing extra. It stores nothing on the reader's device and does not follow anyone between visits, so it needs no cookie banner. |
| Recognise returning readers | All of the above, plus a reader's visits linked together. When they subscribe you can open their reading history and see what they read before signing up. | Stores an ID on the reader's device, so this is cookie law. Your site must ask for consent first and call Softsolz.consent('granted') when the visitor agrees, and you must mention it in your privacy policy. |
google.com), never the full URL, so a visitor's search terms are never recorded.Open a subscriber's reading history from the book icon on Blogs → Subscribers. Deleting a subscriber deletes their reading history with them. Raw reader events are automatically deleted after 180 days; the summary counts are kept.
Track a campaign
Add campaign tags to the links you share and they show up in the Readers tab and against every subscriber who signs up from them:
https://example.com/blog?utm_source=linkedin&utm_medium=social&utm_campaign=launch-week
This works even with reader analytics off, because the tag travels with the sign-up itself.
Use the API
| Path | Auth | When to use |
|---|---|---|
| Embed - widget endpoints | pk_… public key (browser) |
The embedded blog and subscribe form on your site. |
Server - GET /api/services/blogs/api/posts |
sk_… secret key (server) |
Pull posts into a custom front-end or static-site build. |
Full reference: developer.softsolz.uk/reference.
Common changes & risks
- Edit a published post - safe any time; changes appear on your embedded blog and API right away.
- Change the slug - changes the post's URL and breaks links to the old one. Set it before publishing.
- Delete a post - removes it from your embedded blog and the read API immediately.
- noindex - hides a post from search engines and the public list/feed while keeping it readable by direct slug.