Just a thought 💭 …
As a Developer, we keep learning & developing stuff. Sometimes we also find the solutions. Our stuff is distributed the same as our System architecture. We maintain different platforms like GitHub for projects, Medium for blogs, LinkedIn for profile, etc.
All this stuff we want to share on a single platform but as a tech, I am lazy if you ask me to install some CMS and maintain all stuff over there. it is hard to switch from a black terminal 💻 window to some UI 😅
As a developer I was always thinking can I write my blogs, article or notes in Vim? What if we can publish the blog the same as we do releases by hitting some commands.
In this gist, I am quickly going to give you some suggestions for tools that will help you to build your platform.
The Requirement 📝
- Write a blog in any editor (For me its Vim)
- Easy to publish
- Developer Friendly
- Lightweight and speed
- Cost effective
Let’s Build 🔧
I was evaluating multiple tools while searching for a platform and found Hugo which is easy, fast, and handy as a developer. Hugo is an opensource static site generator which means you can write everything in Markdown and Hugo will generate the site accordingly. You need to know the basic Markdown syntax and you are good to go.
You can refer official hugo document to get started.
Below is some tool that helped me to set up my platform.
Theme
Lots of themes are present which you can configure with your Hugo site. There are some common features across the themes and some themes provide the special features also. You can explore all themes here themes.gohugo.io
I was looking for a simple theme which has a simple layout with menus, a dark theme, and tech friendly.
PaperMod
I have build my website in PaperMod. Few pointers why i choose:
1. Search 🔍
PaperMod uses Fuse.js Basic for search functionality.
2. Post Cover Image 🗼
It gives an easy option to add a cover image to your post.
3. Edit link for post ✏️
Suggest changes
option to ask viewers to contribute or Raise PR.
You can check more details about all features here
hyde-hyde
hyde-hyde I found a simple and easy theme if you want to get started with a simple menu and post. I chooses this because of its simplicity and then migrated to PaperMod.
Comments 💬
Once your audience starts reading your article, they would like to give feedback, suggestion and sometime it could be a discussion. You need someplace like comments
where viewers can add their points to a particular article. The theme does not come with comments, for that you need to integrate the comments
tool. Below are some suggestions you can explore:
1. giscus
Giscus comments system powered by GitHub Discussions. Let visitors leave comments and reactions on your website via GitHub! As soon as your viewers comment on your article, it will create the discussion thread on Github Discussion. You can explore more about giscus on the official site.
2. Utterances
utterances lightweight comments system built powered by GitHub issues. It will create an issue per article once anyone comments. All comments will be associated with a particular Github issue.
3. DISQUS
Disqus is a blog comment hosting paid service for websites and online communities that use a networked platform. It also comes with social integration, social networks, user profiles, profile notifications, etc.
I migrated my comment system from utterances to giscus. As Github discussion is a proper tool for commenting, discussion, etc. Both are lightweight and you can choose accordingly.
Shortcodes
While developing the site with Hugo, Shortcodes are your friends. Always check if shortcodes are available for popular tools e.g. youtube, github gist, etc.
Hosting ☁️
After the site generation, you need to host your website somewhere.
Found Github pages best place to host your static site. It allows you to manage your website the same way you manage your projects on github. Get started by creating a simple repository and pushing your source directory.
Check out all steps here
Once you set up end to end, You can publish your blog or changes by just basic git commands i.e. git add
, git commit
, git push
.
It will give you the same feeling as you are releasing some features for your project.
You can check more options about hosting and deployment
I have hosted current website on github.com/ashishtiwari1993.
Domain
By default, Github pages assign the domain like username.github.io
and you can access your site by visiting that subdomain. You can also setup the custom domain.
Speed 🚀
Almost 100% Page speed.
tl;dr
✅ Platform - Hugo
✅ Theme - PaperMod
✅ Comment - giscus
✅ Hosting - Github Pages
✅ PageSpeed - 100%
✅ Cost - 100% Free