Sandeep Panda
co-founder, Hashnode
I am the Co-Founder of Hashnode. I write (about) code and keep interest in Venture Funding and startups. Feel free to contact me at sandeep@hashnode.com.
About this publication
Do you want to get a glimpse of how hashnode builds an amazing platform for the incredible number of writers & readers? This blog gives you insight into the engineering side of Hashnode.
{
"publication": {
"id": "5cf7f8b96576c562343221cc",
"title": "Hashnode Engineering",
"displayTitle": null,
"url": "https://engineering.hashnode.com",
"urlPattern": "SIMPLE",
"metaTags": null,
"favicon": "https://cdn.hashnode.com/res/hashnode/image/upload/v1635768915447/QXuET0wNM.png",
"isTeam": true,
"about": {
"html": "<p>Do you want to get a glimpse of how hashnode builds an amazing platform for the incredible number of writers & readers? This blog gives you insight into the engineering side of Hashnode.</p>\n"
},
"descriptionSEO": "Do you want to get a glimpse of how hashnode builds an amazing platform for the incredible number of writers & readers? This blog gives you insight into the engineering side of Hashnode.",
"ogMetaData": {
"image": null
},
"features": {
"newsletter": {
"isEnabled": true
},
"readTime": {
"isEnabled": true
},
"textSelectionSharer": {
"isEnabled": false
}
},
"author": {
"id": "54b81b232807bee71445ebba",
"name": "Sandeep Panda",
"username": "sandeep",
"profilePicture": "https://cdn.hashnode.com/res/hashnode/image/upload/v1692169982147/T8HXgPnnf.png",
"tagline": "co-founder, Hashnode",
"bio": {
"html": "<p>I am the Co-Founder of Hashnode. I write (about) code and keep interest in Venture Funding and startups. Feel free to contact me at sandeep@hashnode.com.</p>\n"
},
"socialMediaLinks": {
"twitter": "http://twitter.com/sandeepg33k",
"github": "http://github.com/panda-sandeep",
"website": "https://hashnode.com/@sandeep",
"linkedin": "",
"facebook": "",
"youtube": "https://www.youtube.com/c/hashnode",
"instagram": "",
"stackoverflow": ""
}
},
"preferences": {
"logo": "https://cdn.hashnode.com/res/hashnode/image/upload/v1693927916565/qsYbD3PIx.png",
"darkMode": {
"logo": "https://cdn.hashnode.com/res/hashnode/image/upload/v1693927921446/zwp3ByL2o.png"
},
"navbarItems": [
{
"id": "6312002556df9e8e5025fd4e",
"type": "series",
"label": "EDA @Hashnode on AWS",
"url": "https://engineering.hashnode.com/series/eda"
},
{
"id": "61a8ae7caa7f951a1c2b4362",
"type": "link",
"label": "Careers @ Hashnode 💼",
"url": "https://careers.hashnode.com"
},
{
"id": "61a8ae74aa7f951a1c2b435f",
"type": "link",
"label": "Townhall 🏛",
"url": "https://townhall.hashnode.com/"
},
{
"id": "61a8ae6baa7f951a1c2b435a",
"type": "link",
"label": "About us 👋",
"url": "https://hashnode.com/about"
},
{
"id": "61a8ae50aa7f951a1c2b4353",
"type": "link",
"label": "Start your blog 🚀",
"url": "https://hashnode.com/onboard?unlock-blog=true"
}
],
"enabledPages": {
"badges": false,
"newsletter": true,
"members": true
},
"layout": "grid"
},
"links": {
"twitter": "https://twitter.com/hashnode",
"github": "https://github.com/hashnode",
"linkedin": "",
"website": "https://hashnode.com",
"hashnode": ""
},
"integrations": {
"umamiWebsiteUUID": "bdd79535-7d46-466d-9a25-a2cc2eba1a6a",
"gaTrackingID": null,
"fbPixelID": null,
"hotjarSiteID": null,
"matomoURL": null,
"matomoSiteID": null,
"fathomSiteID": null,
"fathomCustomDomain": null,
"plausibleAnalyticsEnabled": null
},
"posts": {
"totalDocuments": 33,
"edges": [
{
"node": {
"id": "669e419457891592c93297c0",
"title": "How we detected GQL caching issues with an ESLint plugin",
"url": "https://engineering.hashnode.com/how-we-detected-gql-caching-issues-with-an-eslint-plugin",
"author": {
"name": "Lakshya Thakur",
"profilePicture": "https://cdn.hashnode.com/res/hashnode/image/upload/v1704260136601/UqLnblr02.JPG"
},
"coverImage": {
"url": "https://cdn.hashnode.com/res/hashnode/image/upload/v1721638287418/0ac96e47-df4b-477a-893f-a428ffbe5555.png"
},
"publishedAt": "2024-07-22T11:25:08.013Z",
"readTimeInMinutes": 4,
"slug": "how-we-detected-gql-caching-issues-with-an-eslint-plugin",
"brief": "Introduction\nOver 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...",
"tags": [
{
"name": "GraphQL",
"slug": "graphql"
},
{
"name": "General Programming",
"slug": "programming"
},
{
"name": "Software Engineering",
"slug": "software-engineering"
},
{
"name": "Productivity",
"slug": "productivity"
},
{
"name": "caching",
"slug": "caching"
},
{
"name": "Hashnode",
"slug": "hashnode"
},
{
"name": "Stellate",
"slug": "stellate"
}
],
"comments": {
"totalDocuments": 0
}
}
},
{
"node": {
"id": "665dd5edb5e9903c995b8645",
"title": "Hashnode 🤙🏽 calls your endpoints. Serverless Webhooks with AWS Step Functions",
"url": "https://engineering.hashnode.com/hashnode-calls-your-endpoints-serverless-webhooks-with-aws-step-functions",
"author": {
"name": "Sandro Volpicella",
"profilePicture": "https://cdn.hashnode.com/res/hashnode/image/upload/v1627027343841/bT6HIivZm.jpeg"
},
"coverImage": {
"url": "https://cdn.hashnode.com/res/hashnode/image/upload/v1716879230821/6467b74a-c24c-4c0e-bc93-8f8d40a7cf12.png"
},
"publishedAt": "2024-06-03T14:40:45.447Z",
"readTimeInMinutes": 5,
"slug": "hashnode-calls-your-endpoints-serverless-webhooks-with-aws-step-functions",
"brief": "In our last internal hackathon, Jannik Wempe and Sandro Volpicella built one of the most requested enterprise features - Webhooks.\nThe problem.\nImagine you host your headless blog on Hashnode. Your frontend consists of statically generated HTML pages...",
"tags": [
{
"name": "AWS",
"slug": "aws"
},
{
"name": "aws stepfunctions",
"slug": "aws-stepfunctions"
},
{
"name": "aws lambda",
"slug": "aws-lambda"
},
{
"name": "serverless",
"slug": "serverless"
}
],
"comments": {
"totalDocuments": 0
}
}
},
{
"node": {
"id": "65a68126b7de1c44080a3881",
"title": "Setting Up Post Schedules with EventBridge Scheduler & CDK",
"url": "https://engineering.hashnode.com/setting-up-post-schedules-with-eventbridge-scheduler-cdk",
"author": {
"name": "Sandro Volpicella",
"profilePicture": "https://cdn.hashnode.com/res/hashnode/image/upload/v1627027343841/bT6HIivZm.jpeg"
},
"coverImage": {
"url": "https://cdn.hashnode.com/res/hashnode/image/upload/v1705398436877/326e3f9d-8632-4949-be8c-13657e8b4fe3.png"
},
"publishedAt": "2024-01-16T13:14:14.744Z",
"readTimeInMinutes": 6,
"slug": "setting-up-post-schedules-with-eventbridge-scheduler-cdk",
"brief": "One key feature of any blogging platform is the ability to schedule posts for future publication. Hashnode introduced this functionality in June 2022.\nAt that time, the entire feature was based on a CRON job. This CRON job managed all various states ...",
"tags": [
{
"name": "AWS",
"slug": "aws"
},
{
"name": "event-driven-architecture",
"slug": "event-driven-architecture"
},
{
"name": "Hashnode",
"slug": "hashnode"
},
{
"name": "Cloud",
"slug": "cloud"
},
{
"name": "Startups",
"slug": "startups"
}
],
"comments": {
"totalDocuments": 0
}
}
},
{
"node": {
"id": "6571a5c1b30fd844ce99172e",
"title": "Hashnode's Feed Architecture",
"url": "https://engineering.hashnode.com/hashnodes-feed-architecture",
"author": {
"name": "Florian Fuchs",
"profilePicture": "https://cdn.hashnode.com/res/hashnode/image/upload/v1675085454170/766f4dd9-9fba-4aa7-b141-ff62bba7eafe.jpeg"
},
"coverImage": {
"url": "https://cdn.hashnode.com/res/hashnode/image/upload/v1699961744035/51aa7ebc-e811-44bd-97e1-ed00e3506fbc.png"
},
"publishedAt": "2023-12-07T11:00:17.515Z",
"readTimeInMinutes": 6,
"slug": "hashnodes-feed-architecture",
"brief": "We previously explained how we calculate the Hashnode Feed and select content and metadata for each user. We found that the feed now displays improved and personalized content. However, we did find two issues in the implementation:\n\nPerformance: The ...",
"tags": [
{
"name": "AWS",
"slug": "aws"
},
{
"name": "General Programming",
"slug": "programming"
},
{
"name": "architecture",
"slug": "architecture"
},
{
"name": "serverless",
"slug": "serverless"
},
{
"name": "caching",
"slug": "caching"
}
],
"comments": {
"totalDocuments": 3
}
}
},
{
"node": {
"id": "6555b6f41c480bdedd851bb8",
"title": "Developing a parameter weightage-based feed",
"url": "https://engineering.hashnode.com/developing-a-parameter-weightage-based-feed",
"author": {
"name": "Vamsi Rao",
"profilePicture": "https://cdn.hashnode.com/res/hashnode/image/upload/v1665498938042/VRcVGyEcb.jpeg"
},
"coverImage": {
"url": "https://cdn.hashnode.com/res/hashnode/image/upload/v1700744089149/b0744a0e-62f7-43ef-bbed-1a38fa241939.png"
},
"publishedAt": "2023-11-16T06:30:12.753Z",
"readTimeInMinutes": 5,
"slug": "developing-a-parameter-weightage-based-feed",
"brief": "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.\n\nBefore we get into it, just a heads-up that features like feed are developed with many hits and...",
"tags": [
{
"name": "AWS",
"slug": "aws"
},
{
"name": "backend",
"slug": "backend"
},
{
"name": "scalability",
"slug": "scalability"
},
{
"name": "General Programming",
"slug": "programming"
},
{
"name": "Hashnode",
"slug": "hashnode"
}
],
"comments": {
"totalDocuments": 2
}
}
},
{
"node": {
"id": "653a0e7a680150c0d5c52acb",
"title": "What can I do with Hashnode's Public API?",
"url": "https://engineering.hashnode.com/what-can-i-do-with-hashnodes-public-api",
"author": {
"name": "Sandro Volpicella",
"profilePicture": "https://cdn.hashnode.com/res/hashnode/image/upload/v1627027343841/bT6HIivZm.jpeg"
},
"coverImage": {
"url": "https://cdn.hashnode.com/res/hashnode/image/upload/v1698725943601/c3de8806-d01b-4aec-a159-ee1da6379e1a.png"
},
"publishedAt": "2023-10-24T07:00:00.000Z",
"readTimeInMinutes": 6,
"slug": "what-can-i-do-with-hashnodes-public-api",
"brief": "The read APIs are now publicly available for everyone to use 🎉\nLet's see what we can build with them using some example code. Here are six recommendations:\n1/ Host your Blog on a subpath\nI think one of the most requested features on Hashnode os the ...",
"tags": [
{
"name": "Hashnode",
"slug": "hashnode"
},
{
"name": "APIs",
"slug": "apis"
}
],
"comments": {
"totalDocuments": 0
}
}
},
{
"node": {
"id": "6530d9b02112a7779b268b4a",
"title": "Managing Breaking Changes in Hashnode GQL Public API",
"url": "https://engineering.hashnode.com/managing-breaking-changes-in-hashnode-gql-public-api",
"author": {
"name": "Shad Mirza",
"profilePicture": "https://cdn.hashnode.com/res/hashnode/image/upload/v1722954836776/1HaFgqUX0.jpeg"
},
"coverImage": {
"url": "https://cdn.hashnode.com/res/hashnode/image/upload/v1697700447831/dbc9e6d6-7adf-481b-9a93-1fbc64c616eb.png"
},
"publishedAt": "2023-10-19T07:24:32.396Z",
"readTimeInMinutes": 5,
"slug": "managing-breaking-changes-in-hashnode-gql-public-api",
"brief": "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...",
"tags": [
{
"name": "GraphQL",
"slug": "graphql"
},
{
"name": "Hashnode",
"slug": "hashnode"
},
{
"name": "Stellate",
"slug": "stellate"
}
],
"comments": {
"totalDocuments": 0
}
}
},
{
"node": {
"id": "6524d6300881118bc31970bc",
"title": "Hashnode's Overall Architecture",
"url": "https://engineering.hashnode.com/hashnodes-overall-architecture",
"author": {
"name": "Sandro Volpicella",
"profilePicture": "https://cdn.hashnode.com/res/hashnode/image/upload/v1627027343841/bT6HIivZm.jpeg"
},
"coverImage": {
"url": "https://cdn.hashnode.com/res/hashnode/image/upload/v1697210679281/d947a75d-82e3-4756-85a3-926edff260d9.png"
},
"publishedAt": "2023-10-10T04:42:24.557Z",
"readTimeInMinutes": 7,
"slug": "hashnodes-overall-architecture",
"brief": "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.\nOverall Architecture\n\nThis is our overall architecture. A request starts on the user's side. It...",
"tags": [
{
"name": "Startups",
"slug": "startups"
},
{
"name": "serverless",
"slug": "serverless"
},
{
"name": "AWS",
"slug": "aws"
},
{
"name": "Vercel",
"slug": "vercel"
},
{
"name": "Hashnode",
"slug": "hashnode"
}
],
"comments": {
"totalDocuments": 17
}
}
},
{
"node": {
"id": "64f724e54ae4dfa2e3d4d440",
"title": "The art of feed curating: Our approach to generating personalized feeds that match users' interests",
"url": "https://engineering.hashnode.com/the-art-of-feed-curating-our-approach-to-generating-personalized-feeds-that-match-users-interests",
"author": {
"name": "Florian Fuchs",
"profilePicture": "https://cdn.hashnode.com/res/hashnode/image/upload/v1675085454170/766f4dd9-9fba-4aa7-b141-ff62bba7eafe.jpeg"
},
"coverImage": {
"url": "https://cdn.hashnode.com/res/hashnode/image/upload/v1693400608045/24b21141-0ceb-4827-a510-1f3dfee5e41f.jpeg"
},
"publishedAt": "2023-09-05T12:53:57.776Z",
"readTimeInMinutes": 10,
"slug": "the-art-of-feed-curating-our-approach-to-generating-personalized-feeds-that-match-users-interests",
"brief": "Feeds are an essential part of every social network. The same applies here at Hashnode. Until now, we have used a very basic and generic algorithm to generate feeds mainly based on hot ranking algorithms. Over time, we noticed that users struggle to ...",
"tags": [
{
"name": "AWS",
"slug": "aws"
},
{
"name": "General Programming",
"slug": "programming"
},
{
"name": "Hashnode",
"slug": "hashnode"
},
{
"name": "scalability",
"slug": "scalability"
}
],
"comments": {
"totalDocuments": 5
}
}
},
{
"node": {
"id": "64d492016f3feecb8702c3b4",
"title": "CI Checks: Ensuring Better Code Quality and Faster Deployment",
"url": "https://engineering.hashnode.com/ci-checks-ensuring-better-code-quality-and-faster-deployment",
"author": {
"name": "Shad Mirza",
"profilePicture": "https://cdn.hashnode.com/res/hashnode/image/upload/v1722954836776/1HaFgqUX0.jpeg"
},
"coverImage": {
"url": "https://cdn.hashnode.com/res/hashnode/image/upload/v1691493522714/21672c1e-1f26-42a0-8ead-93f87f8211de.png"
},
"publishedAt": "2023-08-10T07:30:09.875Z",
"readTimeInMinutes": 8,
"slug": "ci-checks-ensuring-better-code-quality-and-faster-deployment",
"brief": "How can you consistently deliver high-quality code that adheres to established coding guidelines and is free from errors?The solution lies in implementing tests and multiple checks for linting and type errors.\nThis may seem straightforward, but it re...",
"tags": [
{
"name": "github-actions",
"slug": "github-actions-1"
},
{
"name": "ci-cd",
"slug": "ci-cd"
},
{
"name": "GitHub",
"slug": "github"
},
{
"name": "General Programming",
"slug": "programming"
}
],
"comments": {
"totalDocuments": 0
}
}
},
{
"node": {
"id": "64b910642d0b5bc1eaea5e23",
"title": "Crafting Superior APIs with Design Guidelines: Set Up For Success",
"url": "https://engineering.hashnode.com/api-design-guidelines",
"author": {
"name": "Jannik Wempe",
"profilePicture": "https://cdn.hashnode.com/res/hashnode/image/upload/v1686670777162/S3YVZnB5O.jpeg"
},
"coverImage": {
"url": "https://cdn.hashnode.com/res/hashnode/image/upload/v1689837535442/efafa971-ea06-485d-9d5c-d42a4f512e85.png"
},
"publishedAt": "2023-07-20T10:45:56.188Z",
"readTimeInMinutes": 7,
"slug": "api-design-guidelines",
"brief": "Building APIs – especially public-facing ones – is hard. There are a lot of decisions to be made, starting with the API concept (GraphQL, REST, etc.) to be used, infrastructure, and much more. But having this is just the foundation of your API, and y...",
"tags": [
{
"name": "Web Development",
"slug": "web-development"
},
{
"name": "APIs",
"slug": "apis"
},
{
"name": "General Programming",
"slug": "programming"
},
{
"name": "Programming Blogs",
"slug": "programming-blogs"
},
{
"name": "GraphQL",
"slug": "graphql"
}
],
"comments": {
"totalDocuments": 2
}
}
},
{
"node": {
"id": "6493ea8ff012983651c312d1",
"title": "Resolving High Disk Space Utilization in MongoDB",
"url": "https://engineering.hashnode.com/resolving-high-disk-space-utilization-in-mongodb",
"author": {
"name": "Vamsi Rao",
"profilePicture": "https://cdn.hashnode.com/res/hashnode/image/upload/v1665498938042/VRcVGyEcb.jpeg"
},
"coverImage": {
"url": "https://cdn.hashnode.com/res/hashnode/image/upload/v1686811735224/86d7f207-efe4-481c-a5d1-766a621cf262.png"
},
"publishedAt": "2023-06-22T06:30:39.500Z",
"readTimeInMinutes": 4,
"slug": "resolving-high-disk-space-utilization-in-mongodb",
"brief": "Problem\nWe have recently received many alerts about high disk usage on MongoDB Atlas for the past two weeks.\nAccording to docs, Disk utilization % on Data Partition occurs if the percentage of time during which requests are being issued to any partit...",
"tags": [
{
"name": "MongoDB",
"slug": "mongodb"
},
{
"name": "backend",
"slug": "backend"
},
{
"name": "debugging",
"slug": "debugging"
},
{
"name": "Platform Engineering ",
"slug": "platform-engineering"
}
],
"comments": {
"totalDocuments": 0
}
}
},
{
"node": {
"id": "647ed1c80fce655a6be9ac07",
"title": "Simple Steps to Include CDK Diffs in GitHub PRs",
"url": "https://engineering.hashnode.com/simple-steps-to-include-cdk-diffs-in-github-prs",
"author": {
"name": "Shad Mirza",
"profilePicture": "https://cdn.hashnode.com/res/hashnode/image/upload/v1722954836776/1HaFgqUX0.jpeg"
},
"coverImage": {
"url": "https://cdn.hashnode.com/res/hashnode/image/upload/v1686032625812/72664174-525d-44e6-bcc1-94ccd855561f.png"
},
"publishedAt": "2023-06-06T06:27:20.956Z",
"readTimeInMinutes": 6,
"slug": "simple-steps-to-include-cdk-diffs-in-github-prs",
"brief": "Hey, everyone! If you've been using AWS, chances are you've come across CDK and building cloud apps with it. As seamless as it is to deploy apps using CDK, it is equally important to monitor changes in infrastructure code and prevent issues.\nThis gui...",
"tags": [
{
"name": "AWS",
"slug": "aws"
},
{
"name": "aws-cdk",
"slug": "aws-cdk"
},
{
"name": "aws lambda",
"slug": "aws-lambda"
},
{
"name": "infrastructure",
"slug": "infrastructure"
},
{
"name": "github-actions",
"slug": "github-actions-1"
}
],
"comments": {
"totalDocuments": 2
}
}
},
{
"node": {
"id": "646de0479098493346f6fff5",
"title": "Keep parts of your GraphQL Introspection Query hidden",
"url": "https://engineering.hashnode.com/keep-parts-of-your-graphql-introspection-query-hidden",
"author": {
"name": "Florian Fuchs",
"profilePicture": "https://cdn.hashnode.com/res/hashnode/image/upload/v1675085454170/766f4dd9-9fba-4aa7-b141-ff62bba7eafe.jpeg"
},
"coverImage": {
"url": "https://cdn.hashnode.com/res/hashnode/image/upload/v1683820367152/f890c01d-283f-4a00-acad-34bc2d2542e4.png"
},
"publishedAt": "2023-05-24T10:00:39.246Z",
"readTimeInMinutes": 13,
"slug": "keep-parts-of-your-graphql-introspection-query-hidden",
"brief": "Once you have created your first schema and your GraphQL server is up and running, it makes sense to implement precautions to prevent it from being compromised by bad actors. In the context of Hashnode, our GraphQL API serves our website and blogs. T...",
"tags": [
{
"name": "GraphQL",
"slug": "graphql"
},
{
"name": "TypeScript",
"slug": "typescript"
},
{
"name": "Apollo GraphQL",
"slug": "apollo"
},
{
"name": "APIs",
"slug": "apis"
}
],
"comments": {
"totalDocuments": 3
}
}
},
{
"node": {
"id": "645bb1927c65daa656f54d96",
"title": "How Hashnode is using Rate Limits on Stellate",
"url": "https://engineering.hashnode.com/how-hashnode-is-using-rate-limits-on-stellate",
"author": {
"name": "Sandro Volpicella",
"profilePicture": "https://cdn.hashnode.com/res/hashnode/image/upload/v1627027343841/bT6HIivZm.jpeg"
},
"coverImage": {
"url": "https://cdn.hashnode.com/res/hashnode/image/upload/v1683620384065/c2fc7e7d-8803-43b5-8fe9-fb80adb13552.png"
},
"publishedAt": "2023-05-10T15:00:34.500Z",
"readTimeInMinutes": 6,
"slug": "how-hashnode-is-using-rate-limits-on-stellate",
"brief": "Rate Limits are a vital part of every API. Especially, since we operate quite a lot of public and unprotected APIs we need to rate limit them.\nImplementing Rate limits based on IP addresses is fairly easy, especially with Amazon API Gateway and Amazo...",
"tags": [
{
"name": "GraphQL",
"slug": "graphql"
},
{
"name": "Cloud",
"slug": "cloud"
},
{
"name": "Security",
"slug": "security"
},
{
"name": "Startups",
"slug": "startups"
}
],
"comments": {
"totalDocuments": 1
}
}
},
{
"node": {
"id": "643f836df032a1495fab9abe",
"title": "Custom Metrics Made Easy: A Comprehensive Guide to SST and CloudWatch Integration",
"url": "https://engineering.hashnode.com/custom-metrics-made-easy-a-comprehensive-guide-to-sst-and-cloudwatch-integration",
"author": {
"name": "Shad Mirza",
"profilePicture": "https://cdn.hashnode.com/res/hashnode/image/upload/v1722954836776/1HaFgqUX0.jpeg"
},
"coverImage": {
"url": "https://cdn.hashnode.com/res/hashnode/image/upload/v1680672874136/f3bfe7ef-8741-4236-b798-012fa2687f0b.png"
},
"publishedAt": "2023-04-19T06:00:13.019Z",
"readTimeInMinutes": 7,
"slug": "custom-metrics-made-easy-a-comprehensive-guide-to-sst-and-cloudwatch-integration",
"brief": "Monitoring and managing resources is an important part of making sure your serverless application is working as expected and troubleshooting when issues arise. Amazon Web Services (AWS) provides a wide range of services to monitor and track the perfo...",
"tags": [
{
"name": "AWS",
"slug": "aws"
},
{
"name": "aws-cdk",
"slug": "aws-cdk"
},
{
"name": "serverlessstack",
"slug": "serverlessstack"
},
{
"name": "serverless",
"slug": "serverless"
},
{
"name": "#CloudWatch",
"slug": "cloudwatch"
}
],
"comments": {
"totalDocuments": 1
}
}
},
{
"node": {
"id": "63f46b9b4cd7a287eab5c0c7",
"title": "From Chaos to Clarity: Understanding GraphQL Error Codes with Stellate, AWS Lambda, API Gateway, and Apollo",
"url": "https://engineering.hashnode.com/understanding-graphql-error-codes-with-stellate-aws-lambda-api-gateway-and-apollo",
"author": {
"name": "Sandro Volpicella",
"profilePicture": "https://cdn.hashnode.com/res/hashnode/image/upload/v1627027343841/bT6HIivZm.jpeg"
},
"coverImage": {
"url": "https://cdn.hashnode.com/res/hashnode/image/upload/v1676964092528/216d132a-88bd-44b8-a263-9001cb3fdc4b.png"
},
"publishedAt": "2023-02-21T06:58:35.770Z",
"readTimeInMinutes": 9,
"slug": "understanding-graphql-error-codes-with-stellate-aws-lambda-api-gateway-and-apollo",
"brief": "GraphQL handles error codes a bit differently compared to REST Apis. While we still get HTTP response codes like\n\n200 OK\n\n400 Bad Request\n\n500 Server Error\n\n\nIt often happens that an error happened even if we received a 200 status code.\nThis blog pos...",
"tags": [
{
"name": "AWS",
"slug": "aws"
},
{
"name": "GraphQL",
"slug": "graphql"
},
{
"name": "Apollo GraphQL",
"slug": "apollo"
},
{
"name": "lambda",
"slug": "lambda"
},
{
"name": "Stellate",
"slug": "stellate"
}
],
"comments": {
"totalDocuments": 0
}
}
},
{
"node": {
"id": "6399a61430a84696a5937a5a",
"title": "Introducing Amazon EventBridge: Building Serverless Event-Driven Architectures with AWS",
"url": "https://engineering.hashnode.com/aws-eventbridge-intro",
"author": {
"name": "Sandro Volpicella",
"profilePicture": "https://cdn.hashnode.com/res/hashnode/image/upload/v1627027343841/bT6HIivZm.jpeg"
},
"coverImage": {
"url": "https://cdn.hashnode.com/res/hashnode/image/upload/v1671013477321/squQtugN5.png"
},
"publishedAt": "2022-12-14T10:31:48.085Z",
"readTimeInMinutes": 5,
"slug": "aws-eventbridge-intro",
"brief": "This is part 3 of our series: How we build EDA at Hashnode on AWS.\nIn part 2 we decided to use Amazon EventBridge as our main service to build the Event-Driven Architecture (EDA). Part 3 covers the basic functionality of EventBridge.\nWhat is EventBri...",
"tags": [
{
"name": "AWS",
"slug": "aws"
},
{
"name": "Cloud",
"slug": "cloud"
},
{
"name": "Developer",
"slug": "developer"
},
{
"name": "Startups",
"slug": "startups"
}
],
"comments": {
"totalDocuments": 0
}
}
},
{
"node": {
"id": "6352ced2cdc51e38a2888904",
"title": "Using Vercel edge functions to power Hashnode's OG images",
"url": "https://engineering.hashnode.com/using-vercel-edge-functions-to-power-hashnodes-og-images",
"author": {
"name": "Sandeep Panda",
"profilePicture": "https://cdn.hashnode.com/res/hashnode/image/upload/v1692169982147/T8HXgPnnf.png"
},
"coverImage": {
"url": "https://cdn.hashnode.com/res/hashnode/image/upload/v1666370116352/2o4aA94ca.png"
},
"publishedAt": "2022-10-21T16:54:42.882Z",
"readTimeInMinutes": 2,
"slug": "using-vercel-edge-functions-to-power-hashnodes-og-images",
"brief": "Today, we started using @vercel/og to automatically make OG images for the home page and post pages of our blogs. We used to make these images with a tool from a third party, but it was very limited because:\n\nWe had to make an extra API request to ge...",
"tags": [
{
"name": "Vercel",
"slug": "vercel"
},
{
"name": "Next.js",
"slug": "nextjs"
},
{
"name": "React",
"slug": "reactjs"
},
{
"name": "Tailwind CSS",
"slug": "tailwind-css"
}
],
"comments": {
"totalDocuments": 4
}
}
},
{
"node": {
"id": "634e5c8f4567ef9f2236ccc6",
"title": "How to Display Math Equations in React Native",
"url": "https://engineering.hashnode.com/how-to-display-math-equations-in-react-native",
"author": {
"name": "Florian Fuchs",
"profilePicture": "https://cdn.hashnode.com/res/hashnode/image/upload/v1675085454170/766f4dd9-9fba-4aa7-b141-ff62bba7eafe.jpeg"
},
"coverImage": {
"url": "https://cdn.hashnode.com/res/hashnode/image/upload/v1666080845951/cu7VhL0bk.png"
},
"publishedAt": "2022-10-18T07:58:07.569Z",
"readTimeInMinutes": 5,
"slug": "how-to-display-math-equations-in-react-native",
"brief": "One of the most fantastic features of Hashnode is that it allows you to display and highlight your content in various ways. \nOne of my personal favorites is the support for Latex expressions. \nWhy is that? \nMath expressions are an essential part of i...",
"tags": [
{
"name": "render-html",
"slug": "render-html"
},
{
"name": "MathJax",
"slug": "mathjax"
},
{
"name": "React Native",
"slug": "react-native"
},
{
"name": "HTML",
"slug": "html"
},
{
"name": "Math",
"slug": "math"
}
],
"comments": {
"totalDocuments": 2
}
}
}
],
"pageInfo": {
"endCursor": "NjM0ZTVjOGY0NTY3ZWY5ZjIyMzZjY2M2XzIwMjItMTAtMThUMDc6NTg6MDcuNTY5Wg==",
"hasNextPage": true
}
}
},
"authorSocialLinks": {
"twitter": "http://twitter.com/sandeepg33k",
"github": "http://github.com/panda-sandeep",
"website": "https://hashnode.com/@sandeep",
"linkedin": "",
"facebook": "",
"youtube": "https://www.youtube.com/c/hashnode",
"instagram": "",
"stackoverflow": ""
}
}