A very lightweight content management system (CMS) written in C#/Blazor. You can see it working on my blog site.
Why Cogitatio CMS verses using a well established CMS? Good question.
The short answer is time. In the time it took for me to learn and configure an established CMS system, I wrote Cogitatio and had it deployed. Granted, Cogitatio is very lightweight but I have what I needed to run my own blog.
Since then, Cogitatio has grown a bit. However, I hope you will still find it a easy lightweight solution to running your own blog.
- Add/Edit posts
- Tag Posts with keywords
- Search for posts
- Contact form
- RSS Feed
- Sitemap builder
- Comments and User Accounts
- Admin portal
- Admin account configuration, including optional 2FA
- Site configuration
- Post and tag editing
- Google Analytics tracking
- quasi multi-tenant
- MS SQL or Postgres backend
It is a very simple to install on your own domain and get running. Requirements:
- Host can run dotnet core Application
- MS SQL or Postgres SQL instance.
- Tiny MCE cloud license
- Create the DB schema, create a couple environment variables, build and deploy and off you go!
Some of the pages in this project are specific to me. I know there are good options for making this more configurable but it is not a priority for me at this time. You are free to fork this project and make it work for you. Pull requests are welcome. Please keep in mind, however, this project is for me and if it complicates my ability to support my blog, I may insist that your changes remain the branch.
Released with Apache 2.0 license
At this time, the installation/Configuration documentation is very short an brief. Please reach out to me if you have any concerns. Below information should help but it is still expected you have some background or ability to manually build and deploy a dotnet application on a website.
The default admin account is:
- username: admin
- password: Cogitatio2024!
CHANGE THIS PASSWORD IMMEDIATELY AFTER FIRST LOGIN! Both the username and password can be changed after login via the settings page.
You can use MS SQL Server or Postgres SQL for the database backend. See the environment variable section below for configuration.
Cogitatio only needs a couple of database tables. Because I had limited number of MS SQL instances available, I combined Cogitatio tables with other tables for other projects and have no issues. The database can be configured on its own or shared instance. The DB schema is pretty simple.
Tiny MCE provides the WYSIWYG editing for creating/editing posts. The free cloud license model is sufficient.
Configuration is pretty simple. A few environment variables are needed as listed below:
- CogitatioSiteDB : connection string to the database.
- CogitatioAnalyticsId: id for google analytics. If this is empty, google analytics will not be installed.
- CogitatioTinyMceKey: Tiny MCE cloud license key.
- CogitatioTenantId: id for multi-tenant support. If you are only running one site, this can be any value and defaults to zero if not set.
- CogitatioDBType: (optional for MS SQL, required for Postgres) set to "POSTGRES" if using Postgres database, "MSSQL" for MS SQL Server.
You will probably want to setup a robots.txt file to help with search engine discovery.
If you have any questions about the content of the repository, please email matt.raffel@gmail.com. I can assure you all content is either open source or has been purchased and licensed to me. Proof will be made available on request. Repeated DCMA counterfit and harassment claims will result in counter suits per Section 512(f) of the DMCA penalties for misrepresentation can include actual damages and attorney’s fees.
Functional, continuing to add features.
2025.12.15