You have quite a lot of options if you want to start a personal website, or something like a blog nowadays. You can use services like Medium or Substack, but my problem with those is that ultimately, you don't have complete control over how your content is published and how people may consume it. Monetization wasn't my concern either. I wanted something simple, where I can be sure that people will be able to read my quips without any of the contemporary online marketing tools intruding (hello, profiling and soft paywalls!). Having been an Orchard developer for more than a decade, perhaps let's just use Orchard Core for this too? So, I quickly created a DotNest site and got going.
This is a post by Zoltán Lehóczky from Lombiq, but about his personal website.
I'll spare you the suspense, here's my site if you'd like to check it out: https://lettersfromfiume.com/. As you can see, it's a blog with an About page, a search feature, and that's it. Exactly what I needed!
After creating the site, I've set it up with Orchard's built-in Blog recipe. Initially, I didn't actually want to customize anything. But then I started to fiddle around, because of course I couldn't resist adjusting some things:
- By default, blog posts use Markdown for their editor. While I like Markdown, I thought that I'll publish more than simple text, what may necessitate adding some HTML to your Markdown anyway, so let's just start with a full HTML editor. Thus, I've added HTML Body Part to the Blog Post content type.
- This change required me to override the
Content_Summary__BlogPostshapes to display the text, so I did that with the Templates module from the admin.
- Now I wanted to add a favicon instead of the default one with the Orchard Core logo, and also add a tiny bit of CSS...
At this point, things were starting to get a bit messy on the admin, and I figured that if I'm writing code, I might as well write it properly, in an IDE. So, I thought I'll utilize the recently available Media Theme approach.
I followed the instructions in the DotNest Core SDK, ending up with a GitHub repository that contained an Orchard Core app with which I could run my site locally and create a proper Orchard Core theme for it. The theme is nothing too special, it used TheBlogTheme as its base theme, and contains a couple of shape overrides, a CSS file, and some graphic files. It also has a setup recipe with a snapshot of my site's content, so with the help of Orchard's Auto Setup feature, the site runs right away if I hit F5 in Visual Studio. One particularly cool feature of the whole development story is that it also uses a GitHub Actions workflow from Media Theme to automatically deploy the theme if I push to the repository. The changes are out on the production site less than 30s after I've pushed!
The code is fully open-source, and you can check it out here for some inspiration.
Later, I also added a search feature with Elasticsearch. This was just a matter of running Orchard's built-in "Blog - Elasticsearch Search" recipe.
Overall, this was pretty straightforward. I quite enjoyed getting this little site up and running and customizing it here and there. Of course, it just scratches the surface of what DotNest can do, but this is what I needed.
You can also have your own Orchard Core site running hassle-free on DotNest, create one here!