How to start a tech blog? Reflections on the year of hard work
The only guide you'll ever need to start a blog. Find the best blogging platform, design your website, optimise page speed, and more insider tips.
Are you considering starting a blog, enhancing an existing one, or simply intrigued by the world of blogging? In any case, buckle up and get ready for some insider tips! This isn't your typical "how-to blog" guide; it's exceptionally detailed and covers aspects that people often overlook.
Last year was incredibly productive, so let's review what I did to get this blog up and running. I decided to create a comprehensive guide based on my experience, as it might be helpful to others. It guides you step by step, starting from the very beginning, a journey you may follow as well.
How to pick a blog topic?
This is the very first question people usually ask. You have to consider three factors: the trendiness of the topic, how the blog will benefit others, and how blogging will contribute to your growth (such as skill improvement or personal brand development). Ideally, you have to nail at least two factors, otherwise:
- A blog follows a short term trend, but doesn't solve a real problem, nor is something you are passionate about. You might abandon it once the trend fades, as without intrinsic motivation there's no drive to sustain it.
- Only solves a valid problem, but is not trendy and doesn't bring you joy. The good thing, that trends doesn't matter here, since it gains the audience organically. But where is the intrinsic motivation? For how long are you going to keep writing? Maybe you decide to monetise it to get some extrinsic reward, which means you will keep it as long as it is profitable. Which is a failing strategy in the long term.
- You are passionate and really enjoy writing, but no one needs your stories and you were unable take advantage of a popular trend. Unless your motivation is very strong, you will lose interest overtime. Lack of positive feedback is very discouraging. Therefore, the positive experience you get from writing has to be very strong. Stronger than all the external factors.
Blogging without passion or creating content people care about has a high risk of being abandoned
Let's break down these 3 factors separately and thoroughly explore each one.
Keep up with trends
I wouldn't advise to blindly follow what's trendy. Personally, I started blogging in 2019, when OSINT was not so popular. Over time, it gained traction and recently experienced a spike in popularity.
Use these tools to research what's trending:
- Google Trends – is an online tool that allows users to explore and analyse the popularity and search volume of specific search terms and topics over time.
- Exploding Topics – is a website that tracks and highlights emerging and trending topics and keywords across various industries and niches.
- Glimpse – is a website for trending topics across sites like Google, TikTok, Reddit, Twitter, YouTube, Amazon, and more.
- Treendly – is a web-based tool that helps users discover and track trending topics and keywords on the Internet.
Did I use those tools to pick my blog topic? No. I chose OSINT purely because I liked it, which I think is a much better strategy. I would advise the same approach, unless you are creating the blog only to make a quick buck. Then follow trends, but remember that they come and go.
Write about things you enjoy
I've been writing on Medium for years, but the publication went though a major rebrand a year ago. Here is how the old Medium publication looked like.
In just a year, OSINT TEAM transitioned from a solo endeavour to boasting over a hundred contributors. Due to my genuine interest in the topic, I could provide valuable guidance to fellow writers. Even at its early stages, the publication featured contributions from some of the best OSINT experts. Sincere dedication doesn't go unnoticed, it attracts others who want to join your venture.
Putting your thoughts in words helps to you to learn and digest complex subjects much faster
In conclusion, do what you love, otherwise, writing only for money will get you burned out pretty quickly. That's why OSINT TEAM is non-profit. I started it as a side project, which ultimately consumed me so much I stayed up nights working on it!
Find a problem and solve it
I observed a significant gap when writing and engaging with OSINT professionals. Blogging in the OSINT field typically falls into two categories:
- Personal blogs – professionals create their own blogs for knowledge sharing and bolster their personal brand. Beginners create blogs to establish themselves in the field and learn by writing. While this is beneficial, the challenge lies in the siloed nature of these blogs. To grasp OSINT from diverse perspectives, one must follow numerous individual blogs.
- Company blogs – those are usually led by professionals, but sometimes you have a feeling they are trying to sell you their product or service. Established companies create quality content to maintain a positive image. However, when they involve copywriters or marketers, the content can become overly generic and not as insightful as it has the potential to be.
The notable absence lies in community blogs, a scarce resource within the OSINT space. There are only a few such publications where professionals from various domains unite to collaborate and exchange knowledge. Currently, blogging in the OSINT community is highly fragmented, with writers operating in isolation. This division results in knowledge being dispersed across the internet. Additionally, most publications tend to focus exclusively on a single OSINT related topic, such as cybersecurity or investigative journalism.
I believe OSINT TEAM has effectively addressed this issue. Our Medium publication includes authors from different backgrounds and intelligence skills. Having authors from different backgrounds creates this beautiful synergy of knowledge.
How can you find the right problem to solve in your domain? Immerse in the field, talk to people and pay attention to their challenges. People are always looking for answers. Join industry-related groups and engage in conversations, ask questions, and observe the challenges people are discussing. These are some insightful places:
- Quora – it is a question-and-answer platform where users can ask, answer, and share knowledge.
- Reddit – is a social media platform where users can share and discuss a wide range of content through user-generated posts and comments in various topic-specific "subreddits".
- Stack Exchange – is a network of question-and-answer websites on topics in diverse fields, each site covering a specific topic.
How to develop a brand?
Now that you are done with the vision, it's time to think how your blog is going to be perceived. That includes everything from visuals to the communication strategy, and tone of voice. You need solid branding so readers could recognise you. Fortunately, I have years of experience in this area and could give you some tips I have followed myself.
Find catchy and relevant name
While some recommend using domain name generators, I find them often generating dull and irrelevant options. Even ChatGPT is better, but the best ideas will come directly from you. Get creative and brainstorm your name, so it would feel like it's truly yours. Take a list of paper and write down all the possible options, sorting them and connecting by relevancy. You'll soon spot a name that resonates with you.
Seek a name that people will easily remember, one that truly represents you. A memorable name often comes with a story. For me, Open Source Intelligence (OSINT) is a team sport. Many researchers join in groups and do amazing things. Each person has a unique set of skills, that creates synergy when working together. That's where the "TEAM" part is coming from.
Buy a domain name
Technical individuals typically skip questions like "How to buy a domain?". In short, I chose Porkbun, as it accepts crypto payments — our primary donation method. By the way, if you decide to support us (wallet addresses at the bottom), your donation will help keep our domains alive. Moreover, Porkbun has reasonable prices, but to find even cheaper options you can use domcomp.com.
Good domain name should be short and straightforward. In addition, it shouldn't contain hyphens and numbers. People don't like to type long and unfamiliar words, so make it as simple as possible. Opt for a domain name that is easy to remember, pronounce, and spell.
Create appealing visuals
Nothing great is created in vacuum. Find what inspires you on Dribbble or Behance. These are the most popular online portfolio websites, where a lot of great designers showcase their skills. I often use them to create moodboards.
Branding is an art of its own and there are a lot of techniques to create a visual language your readers will love. One effective method I employed is mind-mapping. The mind map served as a guiding light in crafting a brand that aligns seamlessly with my chosen topic.
Below is a list of the essential design deliverables:
Logo and favicon – logo is an essential part of your branding, it's how your visitors recognise you. A favicon aids users in locating your page among multiple open tabs. Therefore, don't go crazy with the favicon, but make it simple.
Fonts – typography is a dominant element on your website. You need to select a font combination that aligns with your brand. Make sure to create a good hierarchy of headings to make navigating your articles easy.
Color palette – color evokes emotions and highlights important elements. It can make or break your design. Ensure you are following accessibility guidelines and have a balanced color palette. Don't overload your design with vibrant colours, you should follow 80/20 rule, where 80% of colors on your webpage are neutral.
We have covered assets that every brand needs to properly function online. Now let's review a nice to have (not essential) elements:
- Brand pattern – it has a significant impact on visibility and adds depth to your brand identity. Use it in various marketing materials to make your messages more appealing. I created a geometric brand pattern that resonates with the logo.
- Visual identity – it includes iconography, illustrations, animations and other visible elements on the page. I selected the glitch as part of the visual language to further highlight technical orientation of this blog.
Tone of voice
Tone of voice is the way you express your brand’s identity and values in communications, both internally and externally. It must always align with your brand identity and remain consistent across all channels. Proper voice and tone helps you to gain trust and speak the language readers understand. A comprehensive tone of voice guideline serves two key purposes:
- Explain how your brand's tone of voice and values support your mission.
- Provide practical support for content creation across different channels.
Define you brand persona as it were a real human being. Envision how it would look and communicate with the world. Your brand should evoke emotions that resonate with people, forming lasting impressions. For a tech blog, consider conveying emotions like excitement, curiosity, innovation, or trust.
With all these essential deliverables in place, create a comprehensive brand guideline and stick to it. Consistency is key. Mixed messages can be off-putting to your audience, so treat your brand image seriously to maintain trust and engagement.
Where to write a tech blog?
Now it's time to build the website and apply your branding. Actually, you might not have to build anything, as there are platforms like Medium that allow you to create an account and start writing in a few clicks. Nevertheless, since this guide focuses on developing your unique platform, let's delve deeper into the technical details.
Pick a blogging platform
Don't simply Google query questions like "What is the best CMS / blogging platform?". Make a decision based on your specific needs. The best platform for you is the one that satisfies your current requirements, easy to operate with, and flexible enough to accomodate your future plans. Let's explore some popular options:
- Hugo – is one of the leading static site generators written in Go. It is capable of generating most websites within seconds and designed to be easy to use. It is great if you need a simple blog just for yourself.
- Ghost – is a free and open source blogging platform written in JavaScript. It is designed specifically for blogging. Its user-friendly management features make it excellent for teams of writers, and even solo authors can benefit from its newsletter feature and robust SEO capabilities.
- Wordpress – is a versatile content management system (CMS) that is widely used for building various types of websites. Use it when you need scalability and a website more advanced in functionality.
I've used Ghost for a year and would definitely recommend it. It has a very supportive community and comprehensive documentation.
Bottom line, if you are a single author choose a static site generator (like Hugo) or Ghost. If you need a blog as part of a larger project, opt for a more versatile CMS like WordPress.
Find reliable hosting
Choose a reliable web host with servers close to your users. Bad hosting will negatively impact your Time to First Bite (TTFB) score, which will make users wait longer till your page completes loading. Hosting plans vary, but there are three primary types:
- Shared hosting: Your website shares resources (CPU, RAM, etc.) with other sites on a physical server. This affects performance, although plans are often affordable. It is possible to upgrade, but your website will stay on the same infrastructure.
- Dedicated hosting: Your website is hosted on one or more physical servers that you own. You have the option to configure and upgrade the hardware to suit your needs. However, dedicated hosting plans can be expensive.
- Cloud hosting: it uses a network of interconnected virtual and/or physical servers. Resources are drawn from a pool of servers, and the hosting infrastructure is scalable. This allows for better performance and reliability.
The central aspect to consider where to host is speed. Here are some popular hosting providers:
- DigitalOcean – is a cloud hosting provider with a user-friendly marketplace that allows easy one-click installations, including the straightforward setup of the Ghost CMS. Their interface is also known for its delightful usability.
- Linode – is a cloud hosting provider that focuses on providing Linux powered virtual machines to support a wide range of applications. It tends to be cheaper than DigitalOcean.
- Vultr - is a cloud platform aims to deliver cloud infrastructure and hosting services to facilitate businesses and developers. It supports operating systems like Windows, Linux and MacOS.
You may want to consider using a content delivery network (CDN) or a specialized image and video CDN. This can help distribute the load across multiple locations that are closer to your users.
Use the best technology
Use technology that aligns with your project requirements and delivers the best experience to your visitors. If your choice achieves the balance between your needs and readers wants - consider you have found the best technology. Note, that it will be the best technology for you in that particular case. Changing project requirements may alter your technology considerations.
For instance, I initially used a template with jQuery libraries to incorporate animations. However, prioritizing speed as a main requirement, I opted to rewrite jQuery into Vanilla JavaScript. Removing external libraries and dependencies significantly improved loading times. Additionally, I selected the CMS written in JavaScript due to its widespread adoption and versatility.
Find free template and tweak it
Starting a blog from scratch can be a time-consuming process. Nevertheless, you can streamline the development process by customizing a free template. The availability of themes varies depending on the framework you choose and its popularity. For example, WordPress has a large library of themes compared to Ghost or any other platforms.
Make your blog accessible
When creating a blog, it is easy to forget that some visitors have vision impairments and disabilities that can come in the way of their reading experience. It is our responsibility to make our websites as accessible as possible to ensure an inclusive experience for everyone.
- Make it accessible for blind users – blind users use screen readers to read articles. Make sure you have semantic HTML (properly labeled forms, non-essential sections, etc.) and alternative text for images.
- Optimise for readers with bad eyesight – prioritize flexible font sizes and sufficient contrast to accommodate users with varying levels of eyesight.
- Motor disablilities – people with motor disabilities have issues with small interactive elements. Make sure you size buttons correctly and make your website keyboard accessible.
- Cognitive disabilities – they include a wide range of illnesses that affect how users perceive and process information. If you use flashing animations, make sure they are less than 3 flashes in a second. Otherwise, it may trigger seizures in people with Parkinsons. Don't play music automatically and visually overwhelm your users, as it might affect their ability to concentrate.
You might think the audience above doesn't visit your website, but accessibility improvements level up user experience for everyone. Captions, for instance, will benefit not only deaf users but also those in loud environments. Advanced users will be able to navigate your website with the keyboard (which is much faster). Tired or busy users will use screen reader to save time and reading efforts. Moreover, your blog will be easier to read for everyone, if you employ short sentences, clear navigation and no distractions. These improvements will benefit anyone, not just those with disabilities. Tools below will help to create more inclusive experience:
- Wave – evaluate accessibility by submitting your webpage URL. The tool generates an actionable report and conveniently categorises found issues.
- Stark - a whole ecosystem of plugins, web apps and other services to perform accessibility checks where it is convenient for you.
- accessScan - a free tool that automatically scans submitted pages. Generates more comprehensive report than aforementioned Stark and Wave.
How to optimise a website?
Google incorporates site speed as one of the ranking factors. The less your website weights, the faster it will load for the visitor, which is important for good user experience. Additionally, it will consume less bandwidth.
Scoring 100/100 on PageSpeed Insights wasn't easy. I optimised images, removed redundant code, subset fonts, deferred JavaScript loading, and utilized caching. Fortunately, Ghost CMS handles Gzip compression and code minification, so I didn't need to worry about that. Below, I describe some of the many ways I personally employed.
Image optimisation
I added WebP and AVIF conversion, alongside setting up responsive images to enhance speed and reduce the weight of assets delivered to the end user. This has resulted in an immediate positive impact. Not only my webpages load faster now, but consume much less data as well.
If your theme includes unnecessary images, it's advisable to remove them. It is recommended to use WebP or AVIF for images, or SVG (for logos and charts). In addition, CSS gradients or other effects can be used to replace images.
Code optimisation
It's important to remove unnecessary code and scripts. If you're using a theme, it will likely have CSS that you don't need. If the stylesheet is overly large, consider splitting it into separate files.
The tools below analyse HTML and CSS usage at build time or by crawling URLs to identify redundant code. However, this is not always adequate. Additional configurations should be set to ensure styles triggered by JavaScript and user interactions are also taken into account.
- UnCSS - is a tool that removes unused CSS from your stylesheets. It works across multiple files and supports Javascript-injected CSS.
- PurgeCSS - analyses your content and your CSS files. Then it matches the selectors used in your files with the one in your content files and cleans them.
- PurifyCSS - returns only the used CSS. PurifyCSS does not modify the original CSS files.
Host fonts locally
Hosting your fonts is generally faster than relying on a cloud service. However, there is a downside to this approach, as you miss out on the smart optimisation techniques implemented by font engineers. As a result, the size of the served font typically increases.
To host fonts locally, watch the total file size and use variable fonts. They are usually smaller than each weight kept separately. Variable fonts also have fewer HTTP requests, which is important for performance. The font optimisation technique below will enable you to host fonts locally without a noticeable impact on loading speed.
Font optimisation
Reduce size of your fonts by removing characters you don't need. Font subsetting allows you to split a font’s characters (letters, numbers, symbols, etc.) into separate files so your visitors only download what they need. I used fonttools for reducing a number of characters in my fonts that I load locally.
Basically, to reduce file transfer size only load the fonts you need. Balance the amount of weights and styles you use, as they increase font size as well. To display fonts correctly you have to understand font display options.
Web fonts is a complicated topic and to better understand it I would recommend to read "When fonts fall" by Marcin Wichary.
Use plugins mindfully
Plugins not only pose security risks but also contribute to the slowdown of your website's loading speed. The more plugins you have, the slower your page will load. Fortunately, Ghost CMS is not as burdened by plugins compared to WordPress.
Increase dwell time
Dwell time refers to the duration users spend on a page within your blog site. It encompasses the time from the moment a visitor clicks on your site to when they exit the page. This metric serves as an indirect indicator for search engines, such as Google, gauging the perceived value of your content to the reader. To increase dwell time, consider these tips:
- Write a captivating blog post title - you have to hook the reader, compelling titles that evoke emotions (curiosity, fear, etc.) are more likely to be clicked on.
- Start with compelling introduction - explain why the blog post is useful for your readers. Create curiosity and motivate them to read further.
- Make it useful - no one likes clickbait titles, so make sure you deliver what you promised. Give something valuable, an information that readers won't find elsewhere.
- Make it interesting - incorporate various media types, such as images and videos, into your article. Long chunks of text are boring, so ensure your article is well-formatted for an engaging reading experience.
All these optimisation efforts paid back. At an early stage, the website got the second position on Google and achieved a perfect score of 100 on Google Lighthouse. Nevertheless, there are still improvements to be made. I intend to implement lazy loading and reduce the number of HTTP redirects. Currently, I use Cloudflare for caching. However, I might consider upgrading the CDN in the future. If you've followed these tips, you can see instant improvements by examining your website using the tools below:
- PageSpeed Insights - reports on the user experience of a page on both mobile and desktop devices, and provides suggestions on how that page may be improved.
- WebPageTest – this tool analyses load times, rendering speed, network usage, and individual page elements to identify bottlenecks and areas for improvement.
- GTmetrix – is a web-based tool that provides an analysis of website speed. It will analyse a site's load time, size, and requests happening, and then generate a score with recommendations to improve it.
Summary
Creating and maintaining a self-hosted blog is challenging, but the tips above will assist you in building a platform of which you can be proud. The competition is fierce, and standing out requires considerable effort. However, the rewards are significant, leading to rapid professional growth. Blogging requires dedication, constant learning and willing to adopt as technology evolves. That will give a set of useful skills and make you a better professional.
This article focused on blog development and optimisation for search engines. The next step would be to promote your blog and grow an audience. That is something I will discuss in the future, perhaps in a year.
Finally, I would like to thank all the readers who stayed with us on this journey and authors that contributed their articles. You are amazing! As we wrap up year one, I'm sure that the second one will be even more exciting! Both newcomers and industry professionals are welcome to contribute to osintteam.com. Looking forward for your article submissions and any feedback you can send to hi@m.osintteam.com.
❤️ Support us
Your support is the best motivation to keep us going. We don’t run ads but welcome donations.
BTC: 15XxW1JNDRbzZzKvNyicFFWTefXYte7cPs
ETH: 0x5f88ca7a7dfc671d1e618d1f76d05a0bf85c0d44