Tag

#hashnode

How we detected GQL caching issues with an ESLint plugin

Introduction Over the past year at Hashnode, we have been continuously developing GraphQL APIs to enable users to interact with their data and perform various operations. We utilize Stellate as the GQL CDN and take advantage of its Edge Caching capab...

Date: |Estimated Reading Time: 4 min|Author: Lakshya Thakur

Setting Up Post Schedules with EventBridge Scheduler & CDK

One key feature of any blogging platform is the ability to schedule posts for future publication. Hashnode introduced this functionality in June 2022. At that time, the entire feature was based on a CRON job. This CRON job managed all various states ...

Date: |Estimated Reading Time: 6 min|Author: Sandro Volpicella

Developing a parameter weightage-based feed

We recently deployed a new discussion feed on hashnode, which comes close to matching our requirements. In this article, we'll discuss how we created it. Before we get into it, just a heads-up that features like feed are developed with many hits and...

Date: |Estimated Reading Time: 5 min|Author: Vamsi Rao|Comments: 2

What can I do with Hashnode's Public API?

The read APIs are now publicly available for everyone to use 🎉 Let's see what we can build with them using some example code. Here are six recommendations: 1/ Host your Blog on a subpath I think one of the most requested features on Hashnode os the ...

Date: |Estimated Reading Time: 6 min|Author: Sandro Volpicella

Managing Breaking Changes in Hashnode GQL Public API

Hey everyone, this article discusses how we manage breaking changes in Hashnode's GQL Public API. We recently announced Public APIs 2.0 and have been rapidly iterating. As a result, we are incorporating feedback and enhancing the APIs. We are thrille...

Date: |Estimated Reading Time: 5 min|Author: Shad Mirza

Hashnode's Overall Architecture

This article gives you an overview of the architecture of Hashnode. The goal of this article is to give you a broad architecture of our involved services. Overall Architecture This is our overall architecture. A request starts on the user's side. It...

Date: |Estimated Reading Time: 7 min|Author: Sandro Volpicella|Comments: 17

How We Overcome Localhost Mapping Issues While End-To-End Testing with Cypress

Do you know what happens when you need to run Cypress end-to-end tests on localhost subdomain wildcards at *.app.localhost? You will likely run into DNS resolution issues since the requests for those domains have yet to be attributed to an address, s...

Date: |Estimated Reading Time: 11 min|Author: Kieran Roberts|Comments: 2

Stuck In The Middleware

Welcome to the first article of the series - Debugging Days At Hashnode In this series, we are going to talk about one of the important aspects of software engineering - Debugging and how it helps us solving series of weird bugs at Hashnode. Setting ...

Date: |Estimated Reading Time: 7 min|Author: Lakshya Thakur|Comments: 2

How we autodetect spam using Google's Vertex AI

One of the downsides of our recent growth was an increase in spam. Since we all hate spam, and it was diluting the quality of content, we started cleaning up manually. But soon we realised that it wouldn't scale, and we ended up wasting an hour or so...

Date: |Estimated Reading Time: 5 min|Author: Sandeep Panda|Comments: 6

After 4 years with nginx, we switched to Caddy - Here is why

When we started Hashnode in 2015, we wanted to keep things really simple. Since nginx was the most popular choice, we decided to use it as a reverse proxy to our Node.js backend. It was a simple set up and worked really well for us for years. With D...

Date: |Estimated Reading Time: 5 min|Author: Sandeep Panda|Comments: 7