Welcome to GuavaBlog
I have decided to create a new blog engine based on ASP.NET Core 2.0 and I think its going to be an interesting and for me and a necessary exercise. Its open source and available on https://github.com/malisancube/guavablog.
Why create a blog engine?
I'm purposely creating this blog engine for the following reasons.
1) I intend to dogfood this blog engine for my site. I currently need features that I cannot get from Ghost. I would like to have features that include the following
Custom pages. I want to be able to select the type of page e.g. Events, Portfolio, About... This could be extensible to allow the user to install a template for the kind of page they want.
Code Syntax highlighting needs a lot of improvement Ghost blog.
2) ASP .NET Core is cool. This is not because of the fact that it is new, but it is fast. Check the benchmarks on TechEmpower.
3) You may say WordPress. Well... I like Wordpress, but the number of attacks that Wordpress has had to go through are alarming. Metasploit attacks on Wordpress sites give me chills. Don't get me wrong here. I'm not saying I will create the most secure site on the planet, but as a person that has used Wordpress on many occasions and my sites were attacked, I feel its good to use something else.
4) You may say WilderBlog. I love WilderBlog, in fact its one of the site I considered using for my blog. Its based on ASP.NET Core and he has done a very good job. His UX design skills are good too. I could have forked it, right? Jump to reason 6.
5) Recently the Venus Interns published this on ASP.NET Core 2.0. Its based on RazorPages and its cool. Why did I not fork it? Jump to reason 6.
6) I love writing code
Currently, you are able to post setup your site, post blog posts and add tags. There is a lot to do. This list will be updated on github. I will soon add issues on the github page. The following are the things that I wish to do, in no particular order.
- Enable multi-user blogging
- Build a DevOps pipeline
- Support plugin themes
- Support plugins that can even determine the kind of post you can add. e.g. Events, Feed from 3rd Party
- Import from other blogsites, starting with Ghost
- Docker deployment scripts
- Change the application to a Single Page Application (SPA) using Angular frontend
- Add setup wizard
- Add relevant feed outputs. RSS, iCal etc
- Image manipulation - Resize, Crop e.t.c.
- Prevent robots sending comments
- Implement and abstract way of adding comments. e.g. Disqus or save them in db based on user option. Moderation of comments
- Have an abstract way of managing email. e.g. If the user chooses to use SendGrid they should be able to place the credentials and it just works
- Add caching on posts
- Enable code injection for Google Analytics or other types e.g. Sponsors, Badges
- Application Insights - find ways to make it more effective
- Responsive layout