A simple open-source blog web application that can be entirely managed from the Git repository.
The blog database synchronizes with changes in the Git repository specified in the application settings. The blog automatically imports and synchronizes data in a specific format (templates) from the Git repository.
The git repository defined in the application settings will serve as a database of content and settings. The application will synchronize and update data from the git repository from time to time. For immediate updates, it will also be possible to use webhooks for this purpose.
Name | Type | Description | Template |
---|---|---|---|
content/{series-order_series-name}/posts/ | dir | Posts will be imported from this folder and will be associated with the series. | Example |
files/{folder_name} | dir | Includes (frontend static blog content) and other files (assets), e.g. images, will be imported from this folder. | Example |
authors.yml | file | Authors will be imported from this file. | Example |
categories.yml | file | Categories will be imported from this file. | Example |
series.yml | file | Data related to series (collections) of posts will be imported from this file. | Example |
settings.yml | file | Blog-related settings will be imported from this file. | Example |
- Modular monolith
- Multi-tenancy
- Message bus (MassTransit & RabbitMQ)
- Workers
- Outbox pattern
- Postgresql Database
- MinIO - Object Storage
- CRUD Posts/Categories/Tags/Series/Files/Repos
- Posts divided into two types: shorts and articles
- The post has one author, but they may be different authors
- Social media share
- Time to read indicator
- Slug URL / Clean URL
- i18n (English & Polish)
- Dark Theme
- Series (gorup posts into series with defined name and order)
- CRUD Comments
- Admin dashboard (statistics, management)
- Allow easy integration with external content providers by API
- Integrate donations
- Guest: Homepage
- Guest: Publications Grid (Posts = Shorts & Articles)
- Guest: Post
- Guest: Series Grid
- Guest: Series
- Guest: Archive
- Guest: Privacy policy / Terms
- Guest: Contact
- Guest: Searchceramiczny Porothermceramiczny Porotherm
- Repository Changes Synchronization
- Database Schema (in progress...)
- Big Picture
- Validator script should check for all embedded files have unique name & should generate a list of all file names
- Validator script should generate file with unique list of all tags
- Validate file names and posts/series order
- Implementation
- Project Core (logs, swagger, entity framework, mass transit)
- Project structure
- Entities and data access
- Workers and stuff for repositories synchronization
- API
..