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:

Write a post

  1. Blogs → New post. Add a title - the slug is auto-generated (you can edit it).
  2. Write the body in the editor. Use the toolbar to insert headings, bold, lists, quotes and links. Content is sanitized automatically.
  3. Add a cover image - upload one or paste a URL - plus a category, tags and an optional call-to-action.
  4. Fill in SEO (title, meta description, social image) if you want to override the defaults.
  5. Save draft - the right pane shows exactly how the post will look.
Reading time and the excerpt are filled in for you when left blank.

Write with AI

On the New post screen, click Write with AI to draft a complete, SEO-ready post from a short brief.

  1. Describe the post - a sentence or two on what it should cover.
  2. Pick a tone (built-in or one of your own custom tones) and a length (short, medium or in-depth).
  3. Pick a writing template - see the formats below.
  4. Leave Generate matching images with AI ticked to have images created and placed in the post, including a cover image.
  5. Optionally tick one or more Knowledge Base collections so the post is grounded in your own content (needs Knowledge Hub).
  6. 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.

If the post already has content, you'll be asked to confirm before it is replaced.

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:

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.

Comparisons, case studies and news updates stick to the facts you give them. Point them at a Knowledge Base collection or put the details in the brief, otherwise a case study is written as a clearly illustrative example rather than inventing a customer.

Set your AI writing defaults

Open Settings → AI writing to control how the assistant writes for your whole workspace:

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.

  1. Blogs → Topics → Import plan.
  2. 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.
  3. 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.
  4. 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.
  5. Import. The plan appears under Topics as a group you can open at any time to see progress.
The file is read once to pull out your topics and then discarded. It is not stored on your workspace.

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.

Automatic writing uses AI and counts towards your plan's AI usage, the same as writing a post by hand with AI.

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.

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.

Share links open the live post when you set your Public blog URL in Settings; otherwise they fall back to the page the blog is embedded on.
Every option here is set in SoftSolz and applied on your embedded blog automatically - there is no code to change on your website when you turn something on or off.

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:

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.

Avoid changing the slug after publishing - it is part of the post's URL and is referenced by your embedded blog and the read API.

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.

Put the snippet on a brand-new, blank page (for example /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.

Blogs → Settings → Consent controls how readers opt in and what you keep as proof:

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:

LevelWhat you getWhat 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.
Readers whose browser sends a Do Not Track or Global Privacy Control signal are never tracked, whatever your settings say. Only the host of a referrer is stored (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

PathAuthWhen 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