For teams building on Next.js
Paste your URL, get matching blog pages, manage content in one dashboard, and render everything inside your Next.js app.
Most teams either bolt on a CMS that looks wrong, or spend weeks building a blog from scratch. BlogFlo does neither — it reads your site and gives you a ready blog in minutes.
BlogFlo reads your live site and generates blog pages that match your fonts, colors, and layout — no design work needed.
Write, edit, schedule, and manage every post from a single dashboard. No switching between tools.
Blog pages live on your domain, inside your Next.js app. Visitors never leave your site.
Every page ships with metadata, Open Graph tags, structured data, RSS, and sitemaps. Nothing to configure.
Paste your site URL. BlogFlo handles the design, gives you a writing dashboard, and renders your blog inside your app.
BlogFlo reads your live site — fonts, colors, spacing, layout — and builds a matching blog design.
Get a generated blog landing page and post template. Refine anything in the dashboard.
Drop in the SDK, add a blog index and post route, and your blog renders on your domain.
Create posts in the dashboard with AI assistance. Publish instantly or schedule for later.
BlogFlo captures your live site and maps your design into blog templates — colors, fonts, spacing, and layout. The result looks like your team built it.
Colors · Fonts · Spacing · Radius · Logos · Hero structure · Layout density
A focused writing editor with AI assistance. Select any text and improve, shorten, or expand it. Generate titles, meta descriptions, and alt text in one click.
Drafts stay private. Published posts go live immediately. Scheduled posts publish at the set time — no deploys, no cron jobs.
Add two routes to your Next.js app and your blog renders on your domain — your layout, your codebase. Server-rendered and fast by default.
/blog lists posts. /blog/[slug] renders each post. Both fetch from BlogFlo at request time.
import {
getBlogPageData,
MagicBlogLanding,
} from "@blogdrop/sdk";
export default async function BlogPage() {
const data = await getBlogPageData(
process.env.BLOGDROP_SITE_ID!,
process.env.BLOGDROP_API_KEY!
);
return <MagicBlogLanding data={data} />;
}import {
getBlogPostData,
MagicBlogPost,
} from "@blogdrop/sdk";
export default async function PostPage({
params,
}: {
params: { slug: string };
}) {
const data = await getBlogPostData(
process.env.BLOGDROP_SITE_ID!,
process.env.BLOGDROP_API_KEY!,
params.slug
);
return <MagicBlogPost data={data} />;
}Every page ships with metadata, Open Graph, canonical URLs, and JSON-LD structured data. Server-rendered for crawlers. RSS and sitemap included. Nothing to configure manually.
Ready to ship?
Paste your URL, get a matching blog, and publish from day one.
No separate stack to stand up or maintain.
One dashboard. One SDK. Renders on your own domain.