What it is
NodePress is a TypeScript-based headless content management system API service for the surmon.me blog, built with NestJS. It provides a RESTful blog API service, while the frontend, administration, native application, and AI agent are separate related projects. The project lives in the NestJS and TypeScript ecosystem, and it is released under the MIT license.
The concrete problem it solves is separating the blog API layer from the presentation layer. It supplies a backend service for the surmon.me blog, and the README lists related Vue server-side rendered, React admin, React Native, and Cloudflare AI agent projects, indicating that the API layer is separated from those clients. It also gives a self-hosted blog operator an API service that can be developed, tested, built, and deployed through pnpm scripts and GitHub Actions workflows.
Key capabilities
- It exposes a RESTful blog API service for the surmon.me blog.
- It is built with NestJS and written in TypeScript.
- It uses MongoDB as a required database dependency, and it uses Mongoose according to the topic list.
- It requires Redis as a runtime dependency for complete operation.
- It includes JWT token support, according to the jwt-token topic.
- It includes webhook support, according to the nestjs-webhook topic.
- It supports development, linting, testing, coverage, building, and production startup through pnpm scripts.
Who uses it and how
- Blog operators can run NodePress as the API backend for the surmon.me blog and pair it with the related Vue server-side rendered frontend.
- Site administrators can use the related React and Veact admin site as the management interface for blog content.
- Mobile client developers can use the related React Native application with the blog API.
- AI agent operators can use the related surmon.me.ai project, built on Cloudflare, within the blog ecosystem.
- Teams can use GitHub Actions to build and test pull requests, create releases from version tags, and execute server deployment scripts after a release is created.
Getting started
The README shows pnpm install, pnpm run start:dev, pnpm run build, and pnpm run start:prod as the typical development and production commands. It also shows GitHub Actions workflows that build and test pull requests, create releases from tags, and deploy releases through a server deployment script.
When to use it โ and when not to
NodePress is suitable when a self-hosted blog needs a NestJS-based headless API service and the operator can run MongoDB and Redis. It is less suitable when someone wants a single integrated publishing product without separate frontend, admin, mobile, or AI client projects. The repository shows 17 open issues and a TODO about ES Modules support, so operators should review those items before adopting it.