postflow
v0.0.3
Published
Framework-agnostic TypeScript blog engine with RSS and sitemap generation, optimized for edge runtimes
Maintainers
Readme
PostFlow
The modern TypeScript blog engine for edge runtimes and serverless platforms
PostFlow is a zero-dependency, framework-agnostic blog engine designed for the JAMstack & SSR era. Build high-performance static blogs with automatic RSS feeds, XML sitemaps, and multi-source content loading. Perfect for Cloudflare Workers, Vercel Edge Functions, Next.js, Nuxt, SvelteKit, and any serverless blog platform.
What is PostFlow?
PostFlow transforms your markdown content into a fully-featured blog system with SEO-optimized RSS feeds and XML sitemaps. Built for TypeScript developers who need a lightweight, edge-compatible blog engine that works anywhere JavaScript runs.
Key Benefits:
- ⚡ Edge runtime optimized for Cloudflare Workers and serverless platforms
- 🚀 Zero dependencies - works in any JavaScript environment
- 📱 Framework agnostic - use with Next.js, Nuxt, SvelteKit, Remix, and more
- 🎯 SEO-ready with automatic RSS 2.0 feeds and XML sitemaps
- 🔧 TypeScript-first with complete type safety
- 📦 File-based content system with automatic markdown processing
- 🖼️ Multi-variant image support for social media and responsive layouts
Key Features
- Serverless & Edge Compatible - Works with Cloudflare Workers, Deno Deploy, Vercel Edge Functions
- Static Site Generation - Perfect for JAMstack blogs and static site generators
- RSS 2.0 & XML Sitemap - Standards-compliant feeds with automatic caching headers
- Markdown with Frontmatter - Full YAML frontmatter support with date-based publishing
- File-based Content - Simple markdown files with YAML frontmatter
- Performance Optimized - Built-in caching, efficient processing, minimal overhead
- TypeScript Native - Complete type definitions and excellent developer experience
Installation
npm install postflowQuick Start
import { BlogEngine, ContentLoader, RSSGenerator } from 'postflow'
// Initialize the blog engine
const blog = new BlogEngine({
contentLoader: new ContentLoader({
type: 'filesystem',
path: './content/blog',
}),
siteConfig: {
title: 'My Developer Blog',
description: 'Thoughts on web development and technology',
baseUrl: 'https://myblog.dev',
language: 'en-us',
},
imageConfig: {
basePath: '/images',
variants: { default: '{slug}.webp', og: '{slug}-og.webp' },
},
})
// Get posts and generate feeds
const posts = await blog.getAllPostsMetadata()
const rssGenerator = new RSSGenerator(blog.getSiteConfig())
const rssResponse = rssGenerator.generateRSSResponse(posts)Content Structure
Create markdown files with YAML frontmatter:
---
title: 'Building Serverless Blogs with TypeScript'
date: '2025-08-15 10:00' # UTC time - posts can be future-dated for scheduling
excerpt: 'Learn how to build fast, SEO-friendly blogs with edge runtimes'
tags: ['typescript', 'serverless', 'jamstack']
---
# Building Serverless Blogs with TypeScript
Your blog content with **markdown formatting** and [external links](https://example.com).Documentation
📚 Complete Documentation & Examples
- Getting Started Guide - Step-by-step setup for all frameworks
- Framework Examples - Next.js, Nuxt, SvelteKit, Cloudflare Workers, and more
- API Reference - Complete TypeScript API documentation
- Configuration Guide - All configuration options and content sources
- Advanced Features - Custom loaders, caching strategies, and optimization
- Troubleshooting - Common issues and solutions
🚀 Quick Links
- Cloudflare Workers Setup
- Next.js Integration
- Nuxt 3 Setup
- Custom Content Sources
- RSS & Sitemap Generation
License
MIT License - see LICENSE file for details.
