A simple, yet flexible content and blog engine for ASP.NET Core that can work with or without a database. This project has borrowed significantly from Mads Kristensen's MiniBlog both for ideas and code but re-implemented and extended in the newer ASP.NET Core framework.
This project supports content pages in addition to blog posts, you can create and edit both pages and blog posts in the web browser or using Open Live Writer via the MetaWeblog API. I created a separate project, cloudscribe.MetaWeblog, in order to support using Open Live Writer, but it could be used in other apps as well, so I moved it to its own code repository.
If you have questions or just want to be social, say hello in our gitter chat room. I try to monitor that room on a regular basis while I'm working, but if I'm not around you can leave message.
To use SimpleContent for your own projects, we recommend start with one of our StarterKits which have no "cloudscribe source code" but have only nuget dependencies.
Start simple with no database and migrate to a database later if you need one
Not all web site projects need a database, there can be many benefits to not using one including performance, scalability, portability, lower cost, and ease of making backup copies of the entire site. It should even be possible to make a site that runs from a thumb drive.
In fact, for blogs, there has been kind of a trend towards using Static Site Generators. This project is not a static site generator, but by storing content as json files it can get some of the same benefits and be used in a similar way to using a static site generator. For example you could host a localhost or intranet version of your site for producing and reviewing content, then when ready to publish you could commit the changes to a git repository and then do deployment from git to Azure for example, which would give you a highly scaleable site without the need or cost of a database and with a complete history of changes in git. Personal blogs and sites and small brochure sites are good candidates for not using a database.
Some sites do need a database though and we plan to support using both Entity Framework Core and MongoDb. If you need users to be able to register on your site or if you have more than a few editors, or for larger projects, you will typically want a database.
My plan is to usually build sites without a database (except for large projects), but implement a migration utility to be able to migrate any site from files to a database later if the needs of the project require it.
- Cross platform, works on Windows, OSX, and Linux
- No database required uses json for pages and can use json or xml for blog posts via NoDb
- For blog posts, supports the same XML format as MiniBlog and BlogEngine.NET, to convert from one of those, just drop in your files
- Migrate your existing blog to SimpleContent using MiniBlog Formatter
- Support for using Entity Framework Core with either MSSQL, MySql, or PostgreSql
- Inline editing of blog posts and pages
- Supports multiple tenants by host name even without a database
- Support for using cloudscribe.Core for user and site/tenant management
- Easy setting for serving static files from another domain.
- Open Live Writer (OLW) and Windows Live Writer (WLW) support
- You don't have to use OLW/WLW (but you should)
- Schedule posts to be published on a future date
- Supports blog urls with or without date segments
- Url date segments are hackable, ie /blog/2016/03/16 shows posts for the day, /blog/2016/03 shows posts for the month and /blog/2016 shows posts for the year
- Comments support - can easily be replaced by 3rd-party commenting systems such as Disqus
- Recaptcha support to reduce comment spam
- Gravatar support
- Drag and drop images to upload
- Responsive theming support based on Bootstrap
- Uses HTML 5 microdata to add semantic meaning
- Works on any ASP.NET Core host including Windows Azure Websites
- RSS feed built in at /api/rss via cloudscribe.Syndication project
- Sitemap - built in sitemap at /api/sitemap via cloudscribe.Web.SiteMap
Planned Features - see also the to-do.md in the notes folder
- Support for automatic image resizing and optimization - pending progress on ImageProcessor project. This is needed for images added via the wysiwyg editor in the web browser. The best current solution is to use Open Live Writer which will resize the image before it posts to the server, or optimize the images yourself before adding them to content in the wysiwyg editor in the web browser.
- Support for using MongoDb
- A Utility for importing the json or xml content into Entity Framework Core or MongoDb for easy migration