ATProto Browser

ATProto Browser

Experimental browser for the Atmosphere

Post

🚀 Want to structure your #Ktor project for long-term growth? In this step-by-step guide for building a minimalistic CRM, my colleague @antonarhipov.bsky.social shows you how to apply domain-driven design concepts. Check it out 👇 blog.jetbrains.com/kotlin/2025/... #kotlin #DDD

May 5, 2025, 8:30 AM

Record data

{
  "uri": "at://did:plc:e66chf4auvpeahjkzeccs36t/app.bsky.feed.post/3lofxbdq6ls22",
  "cid": "bafyreiafeyjm7szbwchpnbii7le4fgbqlwbx42alzrguuu23mhwboqdrmq",
  "value": {
    "text": "🚀 Want to structure your #Ktor project for long-term growth?\n\nIn this step-by-step guide for building a minimalistic CRM, my colleague @antonarhipov.bsky.social shows you how to apply domain-driven design concepts.\n\nCheck it out 👇\n\nblog.jetbrains.com/kotlin/2025/...\n\n#kotlin  #DDD",
    "$type": "app.bsky.feed.post",
    "embed": {
      "$type": "app.bsky.embed.external",
      "external": {
        "uri": "https://blog.jetbrains.com/kotlin/2025/04/domain-driven-design-guide/",
        "thumb": {
          "$type": "blob",
          "ref": {
            "$link": "bafkreifsixk7iopbvctukyfpi4bmnfxii7adjysqj4f54xrc5pm3xe3k7u"
          },
          "mimeType": "image/jpeg",
          "size": 357345
        },
        "title": "Structuring Ktor Projects Using Domain-Driven Design (DDD) Concepts: A Step-by-Step Guide With a Minimalistic CRM | The Kotlin Blog",
        "description": "In this guide, we’ll show you how to structure a project using domain-driven design (DDD) concepts, step by step, by building a minimalistic CRM system."
      }
    },
    "langs": [
      "en"
    ],
    "facets": [
      {
        "index": {
          "byteEnd": 33,
          "byteStart": 28
        },
        "features": [
          {
            "tag": "Ktor",
            "$type": "app.bsky.richtext.facet#tag"
          }
        ]
      },
      {
        "$type": "app.bsky.richtext.facet",
        "index": {
          "byteEnd": 163,
          "byteStart": 138
        },
        "features": [
          {
            "did": "did:plc:3zhcfblo6vsf5dbi3y4cwtuv",
            "$type": "app.bsky.richtext.facet#mention"
          }
        ]
      },
      {
        "index": {
          "byteEnd": 272,
          "byteStart": 238
        },
        "features": [
          {
            "uri": "https://blog.jetbrains.com/kotlin/2025/04/domain-driven-design-guide/",
            "$type": "app.bsky.richtext.facet#link"
          }
        ]
      },
      {
        "index": {
          "byteEnd": 281,
          "byteStart": 274
        },
        "features": [
          {
            "tag": "kotlin",
            "$type": "app.bsky.richtext.facet#tag"
          }
        ]
      },
      {
        "index": {
          "byteEnd": 287,
          "byteStart": 283
        },
        "features": [
          {
            "tag": "DDD",
            "$type": "app.bsky.richtext.facet#tag"
          }
        ]
      }
    ],
    "createdAt": "2025-05-05T08:30:05.586Z"
  }
}