Work-In-Progress
A Modern Blog Engine. Backend server required, not JAMStack.
Uses Go (mux) for the backend and React (Next) for the frontend. Databases used are PostgreSQL and Redis (auth & caching).
All you need to use Bear-Post is a server to host the backend API. The frontend CDN and SSL certs can be handled by Vercel with your own domain for free!
- SEO and performance optimized
- Backend uses Go for fast performance coupled with Redis for authentication and caching PostgreSQL requests
- WYSIWYG online markdown-based editor that also supports embeds
- Same base editor used in Outline
- Added custom ability to restore unsaved changes in the editor
- Added custom embeds
- Added raw markdown edit mode for compatibility with spell-checkers (like Grammarly)
- Support for multiple admin and editor users
- Support for hidden/draft posts
- Progressive Web Application (service-worker, offline cache, etc.)
- Support for permalinks
- Uses metadata for rich content in applications (such as Discord links)
- Keyset pagination to support infinite scrolling
- Redux to save fetched posts during navigation and thus reduce API requests
- Login protected with reCaptcha
- Automatic creation of a webp copy of uploaded feature-images
- Easy startup with docker-compose and Vercel
For images of the admin dashboard, go to this pull request
Lighthouse stats of index page:
Lighthouse stats of a post page:
Find the start up information in the templates/backend-only
directory.
It will guide you through starting the API and deploying the frontend to Vercel.
A: A dynamic, non-JAMStack, blog gives me the opportunity to learn working with databases and React. This is my first large project working with databases, React, Go, Docker, and such much more! So while a static blog has lots of advantages, a dynamic blog gives lots of opportunities to learn more.
What I cannot create, I do not understand - Richard Feynman