How Do I Know My Blog Is Ready to Launch?
VeloCMS's Setup Assistant checks the dozen things that separate a blog that's technically live from one that's actually ready — content, SEO, your domain, newsletter, payments, legal pages — and it never tells you 0% just because it couldn't check.

There isn't a single flag that flips from red to green. VeloCMS's Setup Assistant, sitting permanently at /admin/setup, checks the dozen or so things that actually separate a blog that's technically live from one that's ready for real readers — a first post that's actually published, a domain that's verified rather than just typed in, a newsletter whose sender domain is confirmed rather than merely switched on — and it tells you, honestly, which of those are done, which need attention, and which it genuinely couldn't check this time around.
You hit publish on your first post, the URL resolves, and technically, yes, your blog is "live." But live and ready aren't the same thing, and most of the gap between them is invisible from the inside. You don't notice a newsletter sender domain that never got verified — until a batch of emails lands in spam and you spend an evening wondering why. You don't notice a custom domain sitting in "pending" for three days over one bad DNS record. The point of a launch-readiness check is to surface exactly the stuff you'd otherwise only discover from a reader.
What does "ready to launch" actually mean for a blog?
It's less a single moment than a short list of things that are each individually easy to skip. Some of it is content — a post actually published, a theme switched on, a real description instead of a placeholder. Some of it is discoverability — the SEO basics filled in, a custom domain (if your plan includes one) actually verified rather than just added. Some of it is the stuff readers never see until it breaks — a newsletter sender domain, a payment provider, whether your legal pages still say exactly what the default template said on day one. None of it blocks you from publishing. Together, it's the difference between "I have a blog" and "my blog is set up the way I meant it to be."
Where do I find my launch-readiness checklist?
Open your dashboard and look at the sidebar — Setup Assistant lives at /admin/setup as its own permanent page, not a banner that shows up once and vanishes the moment you dismiss it. That's a deliberate change from how this used to work. The old onboarding checklist only appeared on your first login and disappeared for good once you closed it, which meant there was nowhere to go back and ask "wait, is everything still okay?" three months later, after you'd switched newsletter providers or your domain's SSL quietly lapsed. Setup Assistant re-checks everything live, every time you open the page.

At the top, instead of a single percentage, you get an honest three-part count: how many checks are passing, how many need your attention, and how many it simply couldn't verify right now. That last category matters more than it sounds. A percentage that includes a database hiccup as a failure is lying to you about your own work; a page that says "we couldn't check this, try again" is telling you the truth about what it actually knows.
What does the Setup Assistant actually check?
It's organized into five groups, and none of them are theoretical — each maps to something a reader would eventually notice if it stayed broken. Foundation covers the basics: a published first post, an active theme, a real blog description. Reach looks at whether search engines and social previews have anything to work with — SEO defaults filled in, social links added, and, on plans with custom domains, whether yours is verified rather than just entered. Audience is about your newsletter: a provider connected, and — the one that quietly bit people under the old checklist — a sender domain that's verified, not just switched on. Revenue checks whether a payment provider resolves if you've turned on the store, and whether Stripe is connected for paid memberships. Integrity has one deliberately gentle check: whether your privacy and terms pages have actually been edited, or are still running the seeded default text every blog starts with.

Two of those checks get flagged more urgently than the rest, and it's worth knowing which ones, because they're the pair that used to slip through unnoticed: a custom domain that's been added but never verified, and a newsletter provider that's switched on with a sender domain that hasn't been confirmed. Everything else nudges you toward "materially better" — genuinely worth doing, never an emergency. Your legal pages check, in particular, is graded as optional rather than urgent, on purpose. Every brand-new blog starts with the same seeded privacy and terms text, so if that check colored the whole page red on day one, it would just be noise for anyone who hasn't gotten around to their legal copy yet. It sits there quietly instead, waiting for the day you actually want to personalize it.
What does it mean when a check comes back "unknown" instead of pass or fail?
It means exactly what it says — the assistant tried to read the signal it needed and, for whatever reason (a momentary database hiccup is the usual culprit), it couldn't get a clean answer. This is the detail that makes the whole page trustworthy rather than just decorative. A checklist that quietly treats "I couldn't check" the same as "this failed" ends up telling a fully configured blog that it's done nothing at all, which is worse than useless — it's actively misleading. Setup Assistant keeps "unknown" as its own separate bucket in the count at the top, and if every single check comes back unknown at once (a full connectivity blip, effectively), the page says so plainly instead of showing you a wall of red. Refresh a moment later and it usually resolves itself.
How do I actually fix something it flags?
Every check that needs attention comes with a "Fix this" link, and it goes to the real settings screen that would resolve it — the newsletter check links to your newsletter settings, the custom domain check links to your domain setup screen, and so on. There's no dead end where the fix link dumps you on a generic settings page and leaves you to hunt for the actual control. If you're working through the domain checks specifically, our walkthrough on connecting a custom domain covers the DNS side in more detail than Setup Assistant's short summary needs to. Work through the list category by category, and once every check that applies to your blog is passing, the page tells you so — plainly, with its own small celebration, not a vague "all good" you have to take on faith.
Do I need a custom domain, or payments, before I'm "ready"?
Not necessarily — and this is where the checklist earns some trust rather than nagging you. Custom domain checks only show up if you're on a plan that includes one; if you're happily running on your velocms.org subdomain, they simply don't appear on your list at all. The same goes for payments and commerce: those checks only apply once you've actually turned that module on. Setup Assistant is scoped to what your blog is actually trying to be, not a generic checklist written for a hypothetical tenant running every feature at once. A photography blog with no store enabled will never see a payment-provider check demanding attention, because there's nothing there for it to demand.
Ready, in the end, isn't a certificate you earn once. It's a page you can go back to whenever something changes — a new plan, a new newsletter provider, six months of not thinking about your legal pages — and get an honest answer instead of a guess. If your blog's still finding its footing, or if you haven't started one yet, VeloCMS is available on a 14-day free trial, card required, no surprises — and Setup Assistant is there in your sidebar from the first login, quietly keeping score.