{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Writing by Azraf Al Monzim",
  "home_page_url": "https://monzim.com/blog",
  "feed_url": "https://monzim.com/blog/feed.json",
  "description": "Notes on building systems, understanding failures, and making software that works.",
  "icon": "https://monzim.com/blog/images/avatar.jpg",
  "language": "en",
  "authors": [
    {
      "name": "Azraf Al Monzim",
      "url": "https://monzim.com/",
      "avatar": "https://monzim.com/blog/images/avatar.jpg"
    }
  ],
  "items": [
    {
      "id": "https://monzim.com/blog/ucam-cloud-realtime-seat-board-websocket-redis",
      "url": "https://monzim.com/blog/ucam-cloud-realtime-seat-board-websocket-redis",
      "title": "UCAM Cloud: a realtime seat board that never blocks section selection",
      "summary": "A WebSocket seat board fed by Redis pub/sub, built as a fire-and-forget side-car that can never take down UCamCloud's section-selection hot path.",
      "content_text": "A WebSocket seat board fed by Redis pub/sub, built as a fire-and-forget side-car that can never take down UCamCloud's section-selection hot path.",
      "image": "https://monzim.com/blog/og/ucam-cloud-realtime-seat-board-websocket-redis.png",
      "date_published": "2026-07-11T00:00:00.000Z",
      "date_modified": "2026-08-21T10:04:50.460Z",
      "tags": [
        "Distributed systems",
        "websocket",
        "redis",
        "go",
        "realtime",
        "architecture",
        "distributed-systems"
      ]
    },
    {
      "id": "https://monzim.com/blog/advising-day-at-scale-summer26",
      "url": "https://monzim.com/blog/advising-day-at-scale-summer26",
      "title": "Advising day: the afternoon a whole semester picks its seats at once",
      "summary": "Wanna know something crazy? A platform that sleeps most of the year, then takes thousands of requests a second in one afternoon and what bot defense did to the flood.",
      "content_text": "Wanna know something crazy? A platform that sleeps most of the year, then takes thousands of requests a second in one afternoon and what bot defense did to the flood.",
      "image": "https://monzim.com/blog/og/advising-day-at-scale-summer26.png",
      "date_published": "2026-07-05T00:00:00.000Z",
      "date_modified": "2026-07-10T19:35:31.365Z",
      "tags": [
        "Distributed systems",
        "scale",
        "performance",
        "reliability",
        "bot-detection",
        "engineering"
      ]
    },
    {
      "id": "https://monzim.com/blog/ulid-sortable-unique-id",
      "url": "https://monzim.com/blog/ulid-sortable-unique-id",
      "title": "ULID: the unique ID that sorts itself",
      "summary": "Why random UUIDs wreck your database index, how a ULID's 48-bit timestamp + 80-bit randomness fixes it, and when to pick ULID over UUIDv4 and UUIDv7.",
      "content_text": "Why random UUIDs wreck your database index, how a ULID's 48-bit timestamp + 80-bit randomness fixes it, and when to pick ULID over UUIDv4 and UUIDv7.",
      "image": "https://monzim.com/blog/og/ulid-sortable-unique-id.png",
      "date_published": "2026-06-18T00:00:00.000Z",
      "date_modified": "2026-06-19T15:11:25.520Z",
      "tags": [
        "Distributed systems",
        "ulid",
        "uuid",
        "databases",
        "identifiers",
        "postgres"
      ]
    },
    {
      "id": "https://monzim.com/blog/distributed-rate-limiting-cloudflare-durable-objects",
      "url": "https://monzim.com/blog/distributed-rate-limiting-cloudflare-durable-objects",
      "title": "Distributed rate limiting at the edge with Cloudflare Durable Objects",
      "summary": "Why the per-colo rate-limit binding leaked my API limits, and how one single-threaded Durable Object per key running a sliding window counter fixed it.",
      "content_text": "Why the per-colo rate-limit binding leaked my API limits, and how one single-threaded Durable Object per key running a sliding window counter fixed it.",
      "image": "https://monzim.com/blog/og/distributed-rate-limiting-cloudflare-durable-objects.png",
      "date_published": "2026-06-10T00:00:00.000Z",
      "date_modified": "2026-06-14T16:45:53.129Z",
      "tags": [
        "Infrastructure",
        "cloudflare",
        "durable-objects",
        "rate-limiting",
        "edge",
        "workers"
      ]
    },
    {
      "id": "https://monzim.com/blog/edge-view-counter-cloudflare-kv-d1",
      "url": "https://monzim.com/blog/edge-view-counter-cloudflare-kv-d1",
      "title": "Counting views at the edge for a dollar a month without a single cookie",
      "summary": "A deep dive into the privacy-first view counter behind my portfolio: a Cloudflare Workers KV hot path, a D1 read model, two cron jobs, and a salted hash that forgets you at midnight.",
      "content_text": "A deep dive into the privacy-first view counter behind my portfolio: a Cloudflare Workers KV hot path, a D1 read model, two cron jobs, and a salted hash that forgets you at midnight.",
      "image": "https://monzim.com/blog/og/edge-view-counter-cloudflare-kv-d1.png",
      "date_published": "2026-06-02T00:00:00.000Z",
      "date_modified": "2026-06-13T11:16:44.978Z",
      "tags": [
        "Infrastructure",
        "cloudflare-workers",
        "kv",
        "d1",
        "analytics",
        "edge",
        "privacy"
      ]
    },
    {
      "id": "https://monzim.com/blog/docpipe-v1-hang-postmortem",
      "url": "https://monzim.com/blog/docpipe-v1-hang-postmortem",
      "title": "Postmortem: DocPipe v1 hung under load",
      "summary": "A sanitised postmortem for the DocPipe v1 service hang — root cause, timeline, fix, and the soak test that prevents the failure mode from coming back. Google SRE Chapter 15 format.",
      "content_text": "A sanitised postmortem for the DocPipe v1 service hang — root cause, timeline, fix, and the soak test that prevents the failure mode from coming back. Google SRE Chapter 15 format.",
      "image": "https://monzim.com/blog/og/docpipe-v1-hang-postmortem.png",
      "date_published": "2026-05-25T00:00:00.000Z",
      "date_modified": "2026-06-13T11:17:32.169Z",
      "tags": [
        "Infrastructure",
        "postmortem",
        "docpipe",
        "chromium",
        "go",
        "reliability",
        "tini",
        "sre"
      ]
    },
    {
      "id": "https://monzim.com/blog/docpipe-v2-three-bugs",
      "url": "https://monzim.com/blog/docpipe-v2-three-bugs",
      "title": "Three bugs that hung my PDF service | DocPipe",
      "summary": "My HTML-to-PDF service hung under load. The fix was three problems compounding — a zombie reaper, a chromedp lifetime gotcha, and a synchronously-fired event I was waiting for asynchronously.",
      "content_text": "My HTML-to-PDF service hung under load. The fix was three problems compounding — a zombie reaper, a chromedp lifetime gotcha, and a synchronously-fired event I was waiting for asynchronously.",
      "image": "https://monzim.com/blog/og/docpipe-v2-three-bugs.png",
      "date_published": "2026-05-19T00:00:00.000Z",
      "date_modified": "2026-06-13T11:17:53.168Z",
      "tags": [
        "Infrastructure",
        "go",
        "chromedp",
        "docker",
        "pdf",
        "debugging"
      ]
    },
    {
      "id": "https://monzim.com/blog/claude-code-memory-system-explained",
      "url": "https://monzim.com/blog/claude-code-memory-system-explained",
      "title": "Beyond the Chat Window: How Claude Code Actually Persists Knowledge Between Sessions",
      "summary": "Every Claude Code session starts blank. No memory, no continuity. Yet somehow it knows your stack, your conventions, your quirks. Here's exactly how that works.",
      "content_text": "Every Claude Code session starts blank. No memory, no continuity. Yet somehow it knows your stack, your conventions, your quirks. Here's exactly how that works.",
      "image": "https://monzim.com/blog/og/claude-code-memory-system-explained.png",
      "date_published": "2026-04-26T00:00:00.000Z",
      "date_modified": "2026-06-13T11:18:38.219Z",
      "tags": [
        "AI & tooling",
        "claude-code",
        "ai-tools",
        "developer-experience",
        "productivity"
      ]
    },
    {
      "id": "https://monzim.com/blog/eduqueue-async-worker-pool",
      "url": "https://monzim.com/blog/eduqueue-async-worker-pool",
      "title": "EduQueue Deep Dive: The Asynq Worker Pool, ChromeDP PDF Pipeline & Live-Reload Settings",
      "summary": "A platform-engineering deep dive into UIU EduQueue's async backbone — Asynq with a 10-permit global pool and a 2-permit ChromeDP semaphore, idempotent PDF generation, presigned R2 URLs, gocron-driven monitoring, and a Redis pub/sub settings service that live-reloads worker behavior without a redeploy.",
      "content_text": "A platform-engineering deep dive into UIU EduQueue's async backbone — Asynq with a 10-permit global pool and a 2-permit ChromeDP semaphore, idempotent PDF generation, presigned R2 URLs, gocron-driven monitoring, and a Redis pub/sub settings service that live-reloads worker behavior without a redeploy.",
      "image": "https://monzim.com/blog/og/eduqueue-async-worker-pool.png",
      "date_published": "2026-04-18T00:00:00.000Z",
      "date_modified": "2026-06-13T11:22:26.258Z",
      "tags": [
        "Infrastructure",
        "Go",
        "Asynq",
        "Redis",
        "ChromeDP",
        "Maroto",
        "PDF Generation",
        "Cloudflare R2",
        "Presigned URLs",
        "gocron",
        "Live Reload",
        "Pub/Sub",
        "Platform Engineering",
        "Deep Dive",
        "EduQueue"
      ]
    },
    {
      "id": "https://monzim.com/blog/eduqueue-email-failover",
      "url": "https://monzim.com/blog/eduqueue-email-failover",
      "title": "EduQueue Deep Dive: Multi-Provider Email Failover, Bounce Idempotency & Tracking Pixels",
      "summary": "A platform-engineering deep dive into UIU EduQueue's email subsystem — the pluggable EmailProvider interface, per-provider sliding-window rate limiting in Redis, the AWS SES → Azure CS → custom Cloudflare Worker fallback chain, idempotent bounce-webhook handling, and the cache-defeating tracking pixel that survives Gmail's image proxy.",
      "content_text": "A platform-engineering deep dive into UIU EduQueue's email subsystem — the pluggable EmailProvider interface, per-provider sliding-window rate limiting in Redis, the AWS SES → Azure CS → custom Cloudflare Worker fallback chain, idempotent bounce-webhook handling, and the cache-defeating tracking pixel that survives Gmail's image proxy.",
      "image": "https://monzim.com/blog/og/eduqueue-email-failover.png",
      "date_published": "2026-04-18T00:00:00.000Z",
      "date_modified": "2026-06-13T11:22:38.523Z",
      "tags": [
        "Infrastructure",
        "Go",
        "Email",
        "AWS SES",
        "Azure Communication Services",
        "Cloudflare Workers",
        "Redis",
        "Rate Limiting",
        "Webhooks",
        "Idempotency",
        "Tracking Pixels",
        "Platform Engineering",
        "Deep Dive",
        "EduQueue"
      ]
    },
    {
      "id": "https://monzim.com/blog/eduqueue-otp-console-analytics",
      "url": "https://monzim.com/blog/eduqueue-otp-console-analytics",
      "title": "EduQueue Deep Dive: OTP-Authenticated Operator Console & Append-Only Email Analytics",
      "summary": "A platform-engineering deep dive into UIU EduQueue's operator surface — passwordless OTP login backed by Redis-TTL sessions, the append-only EmailEvent schema, on-demand analytics rollups, the campaign builder's draft → scheduled → sending → sent state machine, and the live \"pause everything\" toggle that runs over Redis pub/sub.",
      "content_text": "A platform-engineering deep dive into UIU EduQueue's operator surface — passwordless OTP login backed by Redis-TTL sessions, the append-only EmailEvent schema, on-demand analytics rollups, the campaign builder's draft → scheduled → sending → sent state machine, and the live \"pause everything\" toggle that runs over Redis pub/sub.",
      "image": "https://monzim.com/blog/og/eduqueue-otp-console-analytics.png",
      "date_published": "2026-04-18T00:00:00.000Z",
      "date_modified": "2026-06-13T11:22:51.198Z",
      "tags": [
        "Infrastructure",
        "Go",
        "OTP",
        "Passwordless Auth",
        "Redis Sessions",
        "Analytics",
        "Append-Only",
        "Email Tracking",
        "Campaign Builder",
        "State Machine",
        "Operator Console",
        "Platform Engineering",
        "Deep Dive",
        "EduQueue"
      ]
    },
    {
      "id": "https://monzim.com/blog/from-github-actions-to-woodpecker",
      "url": "https://monzim.com/blog/from-github-actions-to-woodpecker",
      "title": "From GitHub Actions to Self-Hosted CI/CD: My Woodpecker Migration Guide with Docker",
      "summary": "A platform engineer's comprehensive guide to migrating from GitHub Actions to self-hosted Woodpecker CI with Docker Compose. Covers setup, pipeline configuration, security best practices, scaling strategies, and an honest cost comparison.",
      "content_text": "A platform engineer's comprehensive guide to migrating from GitHub Actions to self-hosted Woodpecker CI with Docker Compose. Covers setup, pipeline configuration, security best practices, scaling strategies, and an honest cost comparison.",
      "image": "https://monzim.com/blog/og/from-github-actions-to-woodpecker.png",
      "date_published": "2026-02-12T00:00:00.000Z",
      "date_modified": "2026-06-12T09:39:34.077Z",
      "tags": [
        "Infrastructure",
        "CI/CD",
        "Woodpecker CI",
        "Docker",
        "Self-Hosted",
        "Platform Engineering",
        "DevOps",
        "GitHub Actions",
        "Docker Compose",
        "Infrastructure",
        "Automation"
      ]
    },
    {
      "id": "https://monzim.com/blog/friniemy-media-architecture",
      "url": "https://monzim.com/blog/friniemy-media-architecture",
      "title": "Building a Privacy-First Media Sharing System: The Friniemy Architecture",
      "summary": "In building Friniemy, a modern social media platform, one of our biggest challenges was creating a media sharing system that truly respects user privacy while maintaining excellent performance. This is the story of how we architected a solution using a dual-bucket storage strategy.",
      "content_text": "In building Friniemy, a modern social media platform, one of our biggest challenges was creating a media sharing system that truly respects user privacy while maintaining excellent performance. This is the story of how we architected a solution using a dual-bucket storage strategy.",
      "image": "https://monzim.com/blog/og/friniemy-media-architecture.png",
      "date_published": "2025-10-08T00:00:00.000Z",
      "date_modified": "2026-06-12T09:41:23.745Z",
      "tags": [
        "Distributed systems",
        "Architecture",
        "Privacy",
        "Cloud Storage",
        "Social Media",
        "NestJS"
      ]
    },
    {
      "id": "https://monzim.com/blog/understanding-ipfs",
      "url": "https://monzim.com/blog/understanding-ipfs",
      "title": "Understanding IPFS: The InterPlanetary File System",
      "summary": "The InterPlanetary File System (IPFS) is a groundbreaking protocol that redefines how we store and share files on the internet. It shifts from traditional centralized systems to a decentralized, peer-to-peer model. In this blog, we'll explore IPFS in depth.",
      "content_text": "The InterPlanetary File System (IPFS) is a groundbreaking protocol that redefines how we store and share files on the internet. It shifts from traditional centralized systems to a decentralized, peer-to-peer model. In this blog, we'll explore IPFS in depth.",
      "image": "https://monzim.com/blog/og/understanding-ipfs.png",
      "date_published": "2024-12-28T00:00:00.000Z",
      "date_modified": "2026-06-12T09:38:34.196Z",
      "tags": [
        "Distributed systems",
        "IPFS",
        "Decentralization",
        "Web3",
        "Distributed Systems",
        "File Storage"
      ]
    },
    {
      "id": "https://monzim.com/blog/architecting-distributed-real-time-translation-with-websockets-and-redis",
      "url": "https://monzim.com/blog/architecting-distributed-real-time-translation-with-websockets-and-redis",
      "title": "Architecting Distributed Real-Time Translation with WebSockets and Redis",
      "summary": "In the world of global communication, real-time translation can be an indispensable feature. Whether you're building a chat app that connects users from different countries or an internal tool for multinational teams, a reliable and scalable architecture for instant translation is essential. In this post, I'll walk you through the architecture of a real-time translation chat application built using NestJS, Redis, and the Google Translate API.",
      "content_text": "In the world of global communication, real-time translation can be an indispensable feature. Whether you're building a chat app that connects users from different countries or an internal tool for multinational teams, a reliable and scalable architecture for instant translation is essential. In this post, I'll walk you through the architecture of a real-time translation chat application built using NestJS, Redis, and the Google Translate API.",
      "image": "https://monzim.com/blog/og/architecting-distributed-real-time-translation-with-websockets-and-redis.png",
      "date_published": "2024-09-25T00:00:00.000Z",
      "date_modified": "2026-06-13T11:23:26.693Z",
      "tags": [
        "Distributed systems",
        "Real-time Translation",
        "NestJS",
        "Redis",
        "WebSocket",
        "Google Translate API",
        "Scalable Architecture",
        "Distributed Systems",
        "Microservices",
        "Chat Application",
        "Real-time Communication",
        "Message Broker",
        "Redis Pub/Sub",
        "PostgreSQL",
        "Multilingual Chat"
      ]
    },
    {
      "id": "https://monzim.com/blog/scaling-realtime-chatapp-with-go-redis-and-websocket",
      "url": "https://monzim.com/blog/scaling-realtime-chatapp-with-go-redis-and-websocket",
      "title": "OpenChat's Architecture: Scaling Real-Time Chat with Go, Redis, and WebSockets",
      "summary": "Discover how OpenChat scales real-time communication using Go, Redis, and WebSockets. From spam prevention to horizontal scaling, explore the architecture that powers this self-hosted, anonymous chat server.",
      "content_text": "Discover how OpenChat scales real-time communication using Go, Redis, and WebSockets. From spam prevention to horizontal scaling, explore the architecture that powers this self-hosted, anonymous chat server.",
      "image": "https://monzim.com/blog/og/scaling-realtime-chatapp-with-go-redis-and-websocket.png",
      "date_published": "2024-09-18T00:00:00.000Z",
      "date_modified": "2026-06-13T11:23:52.030Z",
      "tags": [
        "Distributed systems",
        "Go",
        "Redis",
        "WebSocket",
        "Real-Time",
        "Architecture",
        "Scalability",
        "Docker",
        "Anonymous Chat",
        "Self-Hosted",
        "OpenChat",
        "spam prevention",
        "JWT"
      ]
    },
    {
      "id": "https://monzim.com/blog/experimenting-ai-capabilities-flutter",
      "url": "https://monzim.com/blog/experimenting-ai-capabilities-flutter",
      "title": "Building an App in 5 hours | Experimenting with AI (claude.ai) Capabilities for Flutter",
      "summary": "Discover how I leveraged AI (claude.ai) capabilities to build a real-time status update app in just 5 hours. Learn about the process, challenges, and insights into using AI for faster app development.",
      "content_text": "Discover how I leveraged AI (claude.ai) capabilities to build a real-time status update app in just 5 hours. Learn about the process, challenges, and insights into using AI for faster app development.",
      "image": "https://monzim.com/blog/og/experimenting-ai-capabilities-flutter.png",
      "date_published": "2024-09-12T00:00:00.000Z",
      "date_modified": "2026-06-13T11:24:24.757Z",
      "tags": [
        "AI & tooling",
        "Claude AI",
        "AI",
        "Appwrite",
        "Flutter",
        "Dart",
        "Realtime"
      ]
    },
    {
      "id": "https://monzim.com/blog/dated-simplifying-datetime-operations-in-dart",
      "url": "https://monzim.com/blog/dated-simplifying-datetime-operations-in-dart",
      "title": "dated - Simplifying DateTime Operations in Dart",
      "summary": "The new Dart package 'dated' simplifies working with dates and times. It offers easy comparisons, 'time ago' calculations, and customization options for your projects. Check out the documentation and contribute on GitHub!",
      "content_text": "The new Dart package 'dated' simplifies working with dates and times. It offers easy comparisons, 'time ago' calculations, and customization options for your projects. Check out the documentation and contribute on GitHub!",
      "image": "https://monzim.com/blog/og/dated-simplifying-datetime-operations-in-dart.png",
      "date_published": "2024-05-11T00:00:00.000Z",
      "date_modified": "2026-06-13T11:23:08.321Z",
      "tags": [
        "Flutter & Dart"
      ]
    },
    {
      "id": "https://monzim.com/blog/gpg-signing-git-commits-on-macos-keeps-asking-for-passphrase",
      "url": "https://monzim.com/blog/gpg-signing-git-commits-on-macos-keeps-asking-for-passphrase",
      "title": "GPG Signing git commits on macOS keeps asking for passphrase",
      "summary": "This blog provides a solution for macOS users who encounter repetitive passphrase prompts when signing Git commits with GPG. By installing pinentry-mac via Homebrew and configuring GPG-agent to utilize it, users can seamlessly integrate passphrase management with the macOS keychain, streamlining the signing process.",
      "content_text": "This blog provides a solution for macOS users who encounter repetitive passphrase prompts when signing Git commits with GPG. By installing pinentry-mac via Homebrew and configuring GPG-agent to utilize it, users can seamlessly integrate passphrase management with the macOS keychain, streamlining the signing process.",
      "image": "https://monzim.com/blog/og/gpg-signing-git-commits-on-macos-keeps-asking-for-passphrase.png",
      "date_published": "2024-05-07T00:00:00.000Z",
      "date_modified": "2026-06-13T11:24:42.936Z",
      "tags": [
        "Guides"
      ]
    },
    {
      "id": "https://monzim.com/blog/iut-11th-national-ict-fest-openapi-hackathon-team-devsprints-solution-for-the-preliminary-round",
      "url": "https://monzim.com/blog/iut-11th-national-ict-fest-openapi-hackathon-team-devsprints-solution-for-the-preliminary-round",
      "title": "IUT 11th National ICT Fest OpenAPI Hackathon Team DevSprint's Solution for the Preliminary Round",
      "summary": "My team DevSprint has earned a place in the Preliminary Round of the IUT National ICT Fest OpenApi Hackathon, emerging from a pool of over 55 teams. Among them, only 10 were chosen to advance. We're excited to announce our invitation to the final round, taking place on April 26th and 27th. In this blog post, I'll be unveiling our solution for the preliminary round.",
      "content_text": "My team DevSprint has earned a place in the Preliminary Round of the IUT National ICT Fest OpenApi Hackathon, emerging from a pool of over 55 teams. Among them, only 10 were chosen to advance. We're excited to announce our invitation to the final round, taking place on April 26th and 27th. In this blog post, I'll be unveiling our solution for the preliminary round.",
      "image": "https://monzim.com/blog/og/iut-11th-national-ict-fest-openapi-hackathon-team-devsprints-solution-for-the-preliminary-round.png",
      "date_published": "2024-04-29T00:00:00.000Z",
      "date_modified": "2026-06-13T11:24:10.181Z",
      "tags": [
        "Guides"
      ]
    },
    {
      "id": "https://monzim.com/blog/working-with-json-in-dart-for-beginners",
      "url": "https://monzim.com/blog/working-with-json-in-dart-for-beginners",
      "title": "Working with JSON in Dart for Beginners",
      "summary": "Learn the essentials of JSON manipulation in Dart using the dart:convert library parse JSON strings with jsonDecode, generate JSON strings with jsonEncode, and handle lists seamlessly. Mastering these fundamentals empowers efficient communication with APIs and data storage in Dart applications.",
      "content_text": "Learn the essentials of JSON manipulation in Dart using the dart:convert library parse JSON strings with jsonDecode, generate JSON strings with jsonEncode, and handle lists seamlessly. Mastering these fundamentals empowers efficient communication with APIs and data storage in Dart applications.",
      "image": "https://monzim.com/blog/og/working-with-json-in-dart-for-beginners.png",
      "date_published": "2024-04-07T00:00:00.000Z",
      "date_modified": "2026-06-13T11:21:23.421Z",
      "tags": [
        "Flutter & Dart"
      ]
    },
    {
      "id": "https://monzim.com/blog/understanding-dapr",
      "url": "https://monzim.com/blog/understanding-dapr",
      "title": "Dapr — Simplifying Distributed Application Development",
      "summary": "Explore how Dapr streamlines the development of distributed applications through its sidecar architecture and rich set of building blocks. Learn how Dapr's platform-agnostic approach simplifies service orchestration across diverse cloud providers, empowering developers to focus on writing code while abstracting away the complexities of distributed systems.",
      "content_text": "Explore how Dapr streamlines the development of distributed applications through its sidecar architecture and rich set of building blocks. Learn how Dapr's platform-agnostic approach simplifies service orchestration across diverse cloud providers, empowering developers to focus on writing code while abstracting away the complexities of distributed systems.",
      "image": "https://monzim.com/blog/og/understanding-dapr.png",
      "date_published": "2024-04-02T00:00:00.000Z",
      "date_modified": "2026-06-13T11:21:06.282Z",
      "tags": [
        "Distributed systems"
      ]
    },
    {
      "id": "https://monzim.com/blog/how-to-configure-aws-codecommit",
      "url": "https://monzim.com/blog/how-to-configure-aws-codecommit",
      "title": "Securing Your Code with AWS CodeCommit | A Step-by-Step Guide",
      "summary": "Learn how to set up AWS CodeCommit seamlessly with these step-by-step instructions, ensuring smooth integration and efficient collaboration for your development projects.",
      "content_text": "Learn how to set up AWS CodeCommit seamlessly with these step-by-step instructions, ensuring smooth integration and efficient collaboration for your development projects.",
      "image": "https://monzim.com/blog/og/how-to-configure-aws-codecommit.png",
      "date_published": "2024-03-15T00:00:00.000Z",
      "date_modified": "2026-06-13T11:20:53.470Z",
      "tags": [
        "Guides"
      ]
    },
    {
      "id": "https://monzim.com/blog/git-and-github-a-comprehensive-guide",
      "url": "https://monzim.com/blog/git-and-github-a-comprehensive-guide",
      "title": "Git And Github | A Comprehensive Guide",
      "summary": "Git and GitHub are powerful tools for version control and collaborative software development. This comprehensive guide will walk you through the basics of using Git and GitHub, explain how they work together, and provide essential tips to enhance your workflow.",
      "content_text": "Git and GitHub are powerful tools for version control and collaborative software development. This comprehensive guide will walk you through the basics of using Git and GitHub, explain how they work together, and provide essential tips to enhance your workflow.",
      "image": "https://monzim.com/blog/og/git-and-github-a-comprehensive-guide.png",
      "date_published": "2024-02-16T00:00:00.000Z",
      "date_modified": "2026-06-13T11:20:34.901Z",
      "tags": [
        "Guides"
      ]
    },
    {
      "id": "https://monzim.com/blog/setting-up-development-environment-for-flutter-a-step-by-step-guide",
      "url": "https://monzim.com/blog/setting-up-development-environment-for-flutter-a-step-by-step-guide",
      "title": "Setting Up Development Environment For Flutter A Step-by-step Guide",
      "summary": "This blog provides a detailed guide on setting up a development environment for Flutter. From installing Git, GitHub CLI, OpenJDK, Flutter SDK, Visual Studio Code, and Android Studio, this comprehensive tutorial will help you set up all the necessary tools for Flutter development.",
      "content_text": "This blog provides a detailed guide on setting up a development environment for Flutter. From installing Git, GitHub CLI, OpenJDK, Flutter SDK, Visual Studio Code, and Android Studio, this comprehensive tutorial will help you set up all the necessary tools for Flutter development.",
      "image": "https://monzim.com/blog/og/setting-up-development-environment-for-flutter-a-step-by-step-guide.png",
      "date_published": "2024-02-06T00:00:00.000Z",
      "date_modified": "2026-06-13T11:20:21.781Z",
      "tags": [
        "Flutter & Dart"
      ]
    },
    {
      "id": "https://monzim.com/blog/a-step-by-step-guide-how-to-use-unizim-app",
      "url": "https://monzim.com/blog/a-step-by-step-guide-how-to-use-unizim-app",
      "title": "A Step-by-step Guide | How To Use Unizim App",
      "summary": "Unizim is an innovative app designed exclusively for UIU students, providing a seamless and efficient way to manage academic activities, collaborate with peers, and stay connected with the UIU community. In this step-by-step guide, we'll walk you through the process of using Unizim to make the most out of your educational journey. Let's get started!",
      "content_text": "Unizim is an innovative app designed exclusively for UIU students, providing a seamless and efficient way to manage academic activities, collaborate with peers, and stay connected with the UIU community. In this step-by-step guide, we'll walk you through the process of using Unizim to make the most out of your educational journey. Let's get started!",
      "image": "https://monzim.com/blog/og/a-step-by-step-guide-how-to-use-unizim-app.png",
      "date_published": "2023-05-25T00:00:00.000Z",
      "date_modified": "2026-06-13T11:20:07.019Z",
      "tags": [
        "Guides"
      ]
    },
    {
      "id": "https://monzim.com/blog/build-a-well-structured-flutter-app-with-mason-brick",
      "url": "https://monzim.com/blog/build-a-well-structured-flutter-app-with-mason-brick",
      "title": "Build A Well-structured Flutter App With Mason Brick",
      "summary": "Explore using Mason brick to structure Flutter projects—install Mason CLI, Flutter project, and A-project Mason bricks. Create a streamlined project with Riverpod, go_router, Google Fonts, and a custom theme. Dive into your next Flutter project effortlessly.",
      "content_text": "Explore using Mason brick to structure Flutter projects—install Mason CLI, Flutter project, and A-project Mason bricks. Create a streamlined project with Riverpod, go_router, Google Fonts, and a custom theme. Dive into your next Flutter project effortlessly.",
      "image": "https://monzim.com/blog/og/build-a-well-structured-flutter-app-with-mason-brick.png",
      "date_published": "2023-05-17T00:00:00.000Z",
      "date_modified": "2026-06-13T11:19:52.825Z",
      "tags": [
        "Flutter & Dart"
      ]
    },
    {
      "id": "https://monzim.com/blog/how-to-add-firebase-to-your-flutter-app",
      "url": "https://monzim.com/blog/how-to-add-firebase-to-your-flutter-app",
      "title": "How To Add Firebase To Your Flutter App?",
      "summary": "In this lesson, we are going to learn how we can add Firebase to our flutter application. And we are going the follow the official documentation.",
      "content_text": "In this lesson, we are going to learn how we can add Firebase to our flutter application. And we are going the follow the official documentation.",
      "image": "https://monzim.com/blog/og/how-to-add-firebase-to-your-flutter-app.png",
      "date_published": "2023-03-14T00:00:00.000Z",
      "date_modified": "2026-06-13T11:19:36.463Z",
      "tags": [
        "Flutter & Dart"
      ]
    },
    {
      "id": "https://monzim.com/blog/how-to-setup-development-environment-for-flutter",
      "url": "https://monzim.com/blog/how-to-setup-development-environment-for-flutter",
      "title": "Quick Setting Up Your Development Environment for Flutter",
      "summary": "Flutter, a powerful and versatile framework for building cross-platform applications, requires a well-configured development environment to unleash its full potential. In this guide, we'll walk you through the step-by-step process of setting up your development environment for Flutter on both Windows and Linux machines.",
      "content_text": "Flutter, a powerful and versatile framework for building cross-platform applications, requires a well-configured development environment to unleash its full potential. In this guide, we'll walk you through the step-by-step process of setting up your development environment for Flutter on both Windows and Linux machines.",
      "image": "https://monzim.com/blog/og/how-to-setup-development-environment-for-flutter.png",
      "date_published": "2022-09-11T00:00:00.000Z",
      "date_modified": "2026-06-13T11:19:15.002Z",
      "tags": [
        "Flutter & Dart"
      ]
    }
  ]
}
