This is a platform to write blog posts locally. When finished, you can convert your blog posts into HTML files.
The backend is built with Express and saves you posts into a folder /posts
. The API docs can be found at /server/README.md
.
To start the backend:
Create /server/.env
with
POSTS_TARGET_URL = "../posts/"
cd server && npm install && npm run build:server && npm run start:server
The frontend is built with Vite, React, MDXEditor, and Tailwind CSS.
Create /frontend/.env
with
VITE_BACKEND_URL="http://localhost:5000"
OPENAPI_AI_KEY=<your key>
Start the frontend:
cd frontend && npm install && npm run dev
One feature of the frontend is the ability to statically render all blog posts.
Build and run the renderer:
npm run build:renderer && npm run render
This will output any blog posts as rendered HTML files in /public
. To edit the logo, change the Logo
component.
- Create a blog post by creating a markdown file in
/server/backend/posts/<post_name>.md
- Start the backend
- Start the frontend
- Visit the frontend (http://localhost:5173/) and click on the link to the blog post to open the editor
- Add the following attributes to the frontmatter:
title
,status
:public
5b. (Optional) To create an mp3 via AI of your blog post addtts
:true
- Write some text
- Open a terminal, and run
cd frontend && npm run build:renderer && npm run render
to output the blog post as HTML