{"id":263,"date":"2024-10-09T19:21:51","date_gmt":"2024-10-09T19:21:51","guid":{"rendered":"https:\/\/uat.esri.com\/en-us\/software-engineering\/blog\/?post_type=blog&#038;p=263"},"modified":"2026-02-19T14:49:09","modified_gmt":"2026-02-19T14:49:09","slug":"beyond-words-developing-doc-for-devs","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/articles\/beyond-words-developing-doc-for-devs","title":{"rendered":"Beyond words: Developing doc for devs"},"content":{"rendered":"\n<p class=\"undefined block-editor-paragraph\">Our team creates documentation for ArcGIS Maps SDKs for Native Apps. Developers use our product to add mapping and spatial analysis to their apps. It includes SDKs for <a href=\"https:\/\/developers.arcgis.com\/kotlin\/\" target=\"_blank\" rel=\"noreferrer noopener\">Kotlin<\/a>, <a href=\"https:\/\/developers.arcgis.com\/net\/\" target=\"_blank\" rel=\"noreferrer noopener\">.NET<\/a>, <a href=\"https:\/\/developers.arcgis.com\/qt\/\" target=\"_blank\" rel=\"noreferrer noopener\">Qt<\/a>, <a href=\"https:\/\/developers.arcgis.com\/swift\/\" target=\"_blank\" rel=\"noreferrer noopener\">Swift<\/a>, <a href=\"https:\/\/developers.arcgis.com\/java\/\" target=\"_blank\" rel=\"noreferrer noopener\">Java<\/a>, and <a href=\"https:\/\/developers.arcgis.com\/flutter\/\" target=\"_blank\" rel=\"noreferrer noopener\">Flutter<\/a> (beta), and supports deployment on several mobile and desktop platforms. In this article, I\u2019ll provide some background on our documentation processes. I\u2019ll also describe some of the work we\u2019ve done to try to deliver better documentation more efficiently.<\/p>\n\n\n\n<p class=\"undefined block-editor-paragraph\">As our product documentation evolves, we strive to continuously introduce improvements in some key areas:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Documentation by developers, for developers:<\/strong> Using tools and processes that manage documentation content the same way our development team manages their code.&nbsp;<\/li>\n\n\n\n<li><strong>Eating our own dog food:<\/strong> Evaluating the documentation from a developer\u2019s perspective and working to make it more useful.&nbsp;<\/li>\n\n\n\n<li><strong>Feedback is a gift:<\/strong> Being agile to quickly provide updates to the live documentation.&nbsp;<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-documentation-by-developers-for-developers\"><strong>Documentation by developers, for developers<\/strong><\/h2>\n\n\n\n<p class=\"undefined block-editor-paragraph\">How do you document a product created by and for developers? We started by making the doc creation tools and processes feel like those developers use. Most of the product information resides in the heads of the developers who create the product. We therefore wanted a system with tools and processes familiar to developers and software engineers.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-learning-from-our-mistakes\">Learning from our mistakes<\/h3>\n\n\n\n<p class=\"undefined block-editor-paragraph\">In addition to the teams working on each SDK, new product features are developed by small teams of developers. Early on, we realized that a few writers synthesizing information from more than a dozen development teams was not scalable. Our original processes for getting content from subject matter experts were not well-defined. This resulted in updates from several sources (email, messaging, verbal communication), often without a publicly visible history or context. Additionally, doc authors often worked in silos according to the API or features they supported. Since resources available for each API differed, so did the quality of the documentation. We also relied on proprietary tools, with only a few licensed users able to directly work with the content. Internal previews of the documentation also became a bottleneck. Only a few users were able to publish a preview, and all work in progress was published to the same site. As a result, the doc team became gatekeepers for the content but still relied on subject matter experts for information. In our system, there was a stark disconnect between the technical experts and the content creation. The lack of familiar tools and procedures for previewing and reviewing updates made it frustrating for those outside the doc team to contribute content. For doc team members, the inability to efficiently share content across APIs and to quickly provide website previews created a lot of duplicated effort and a slow, error-prone review process.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-a-more-open-and-accessible-system\">A more open and accessible system<\/h3>\n\n\n\n<p class=\"undefined block-editor-paragraph\">Our updated approach uses open-source tools that are readily available for anyone who wants to contribute to the documentation. Our developer experience team extends this framework with a set of custom tools. These include utilities for validating content and custom website components for displaying things like code blocks, notes, or expandable sections. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/MDX-Gatsby-doc-system-Esri.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"452\" src=\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/MDX-Gatsby-doc-system-Esri-1024x452.png\" alt=\"\" class=\"wp-image-378\" srcset=\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/MDX-Gatsby-doc-system-Esri-1024x452.png 1024w, https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/MDX-Gatsby-doc-system-Esri-300x133.png 300w, https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/MDX-Gatsby-doc-system-Esri-768x339.png 768w, https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/MDX-Gatsby-doc-system-Esri-1536x679.png 1536w, https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/MDX-Gatsby-doc-system-Esri.png 1562w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Custom MDX components for rendering specialized content in the page: Term, Note, CodeBlock.<\/figcaption><\/figure>\n\n\n\n<p class=\"undefined block-editor-paragraph\">Here\u2019s a summary of the tools we now use to maintain and publish our product documentation website:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.gatsbyjs.com\/docs\" target=\"_blank\" rel=\"noreferrer noopener\">Gatsby<\/a>: A React-based open-source framework that creates HTML pages from content stored in an extended Markdown format (.mdx). This <a href=\"https:\/\/en.wikipedia.org\/wiki\/Static_site_generator\" target=\"_blank\" rel=\"noreferrer noopener\">static site generation<\/a> approach was a fundamental break from our previous database-driven content management system.&nbsp;<\/li>\n\n\n\n<li>Custom <a href=\"https:\/\/react.dev\/\" target=\"_blank\" rel=\"noreferrer noopener\">React<\/a> components: Components for rendering page elements like code blocks, demo apps, tables, and videos. These have been developed internally by our developer experience team and integrated into the Gatsby build system. Such components help simplify authoring by encouraging modularity, reusability, and clear abstractions.&nbsp;<\/li>\n\n\n\n<li><a href=\"https:\/\/code.visualstudio.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Visual Studio Code<\/a>: Content for our website is authored in <a href=\"https:\/\/mdxjs.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">MDX<\/a> format (.mdx), an extension to Markdown that lets you include JSX. We author documentation content using VS Code and use the <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=unifiedjs.vscode-mdx\" target=\"_blank\" rel=\"noreferrer noopener\">MDX Visual Studio Code extension<\/a> to provide language support for MDX.&nbsp;<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub<\/a>: All code and content needed to generate our website is maintained in our GitHub Enterprise repositories. Edits to the website are handled using familiar GitHub workflows.&nbsp;<\/li>\n\n\n\n<li><a href=\"https:\/\/www.jenkins.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">Jenkins<\/a>: We use the open-source automation server for building our production website as well as an unlimited number of on-demand internal preview sites for testing.<\/li>\n<\/ul>\n\n\n\n<p class=\"undefined block-editor-paragraph\">Many of these tools, such as GitHub (for managing content) and Jenkins (for automating processes), were already used by the developers who create ArcGIS Maps SDKs for Native Apps. These tools improve our means of gathering information from experts, sharing content, and streamlining the review process. Documentation content is now stored in a GitHub repo alongside the code for the product and uses familiar processes for issue tracking and content management. Like the product, automated jobs build the documentation several times daily to ensure there aren&#8217;t errors. The documentation processes and tools are now much more aligned with those used by the product developers.&nbsp;&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"600\" src=\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/doc-dev-tools.png\" alt=\"\" class=\"wp-image-247\" srcset=\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/doc-dev-tools.png 800w, https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/doc-dev-tools-300x225.png 300w, https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/doc-dev-tools-768x576.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<p class=\"undefined block-editor-paragraph\">These changes have reduced headwinds for subject matter experts&#8217; contributions, freed the doc team from being the gatekeepers (and bottleneck) for creating documentation, and brought documentation processes more in line with product development processes.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-eating-our-own-dog-doc-food\"><strong>Eating our own dog (doc?) food<\/strong><\/h2>\n\n\n\n<p class=\"undefined block-editor-paragraph\">As Native Maps SDKs continue to add and enhance functionality, we strive to improve the overall quality of the documentation. These higher-level updates include things like adding new guide topics, reorganizing the presentation of content, and improving information discoverability. With each release, we document new features by first writing code to try them out. This helps us get a developer\u2019s perspective on the new API, provides code snippets to illustrate the use of the API, and often directs the approach we take with the documentation. If we run into gotchas or points of confusion that other users may experience, we want to call those out to reduce frustration. While this hands-on approach helps, it doesn\u2019t always capture the perspective of someone new to our SDKs (or perhaps new to geospatial technology). Most of us on the team are seasoned ArcGIS users who have worked with our product for some time. It\u2019s often hard to take an objective, high-level look at our doc from a new user\u2019s perspective \u2026 until a new author or intern joins the team.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-getting-a-fresh-perspective\">Getting a fresh perspective<\/h3>\n\n\n\n<p class=\"undefined block-editor-paragraph\">Even if they\u2019re new to GIS, it doesn\u2019t take long before a fresh doc author is down in the weeds with us. Before that happens, we do our best to capture their feedback from a noob perspective as they onboard with us. We give them some basic GIS requirements and ask them to implement an app using a Native Maps SDK of their choice. To complete the app, they can refer only to the following publicly available sources of documentation: <a href=\"https:\/\/developers.arcgis.com\/kotlin\/\" target=\"_blank\" rel=\"noreferrer noopener\">developer guide<\/a>, <a href=\"https:\/\/developers.arcgis.com\/swift\/tutorials\/\" target=\"_blank\" rel=\"noreferrer noopener\">tutorials<\/a>, <a href=\"https:\/\/developers.arcgis.com\/qt\/toolkit\/\" target=\"_blank\" rel=\"noreferrer noopener\">toolkit<\/a>, <a href=\"https:\/\/developers.arcgis.com\/net\/api-reference\/index.html\" target=\"_blank\" rel=\"noreferrer noopener\">API reference<\/a>, and <a href=\"https:\/\/developers.arcgis.com\/net\/maui\/sample-code\/\" target=\"_blank\" rel=\"noreferrer noopener\">samples<\/a>. If they get stuck, they can use Esri community to look for help, but shouldn\u2019t ask the team (or anyone at Esri).<\/p>\n\n\n\n<p class=\"undefined block-editor-paragraph\">Upon completing the assignment, they spend some time describing their experience. They let us know what resources they found most helpful, and where they were frustrated and offer suggestions for improvement. The fresh perspective we gain from these exercises is enlightening and helpful. We implement many straightforward suggestions where we can, while many others simply give us more to think about. Some common frustrations for experienced developers who are not familiar with ArcGIS are difficulty understanding some common GIS terms; confusion with the use cases for query, selection, or identify (when to use each); how to set the visible map area; difficulty navigating between help resources (conceptual doc, API reference, and samples, for example); and a poor documentation search experience.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-feedback-is-a-gift\"><strong>Feedback is a gift<\/strong><\/h2>\n\n\n\n<p class=\"undefined block-editor-paragraph\">It\u2019s frustrating to find an obvious mistake on our documentation website and not be able to correct it immediately. Maybe it\u2019s a sentence that\u2019s been repeated, a broken link that lots of users will click, a blatant misspelling, or a grammatical error. We used to have to wait up to one week before we could get such fixes onto the production website. What if a friend told you that you had some of the pizza you had for lunch hanging off your chin, but you had to wait a week to wipe it off? That\u2019s what waiting to fix an embarrassing blemish on the doc site often felt like.&nbsp;<\/p>\n\n\n\n<p class=\"undefined block-editor-paragraph\">While we still take our time to implement larger updates (like creating a new topic), we try to address smaller fixes as soon as we can. User-reported errors and suggestions are especially important to us and are prioritized as they come in. With our current tooling, we can push updates to the live website twice a day if needed, meaning the longest we\u2019d have to wait to make an update is less than a day unless it\u2019s over the weekend. (As fast as that is for a doc fix, I\u2019d still recommend wiping pizza from your chin as soon as you\u2019re notified).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"929\" height=\"601\" src=\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/developer-site-preview.png\" alt=\"\" class=\"wp-image-353\" srcset=\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/developer-site-preview.png 929w, https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/developer-site-preview-300x194.png 300w, https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/developer-site-preview-768x497.png 768w\" sizes=\"auto, (max-width: 929px) 100vw, 929px\" \/><figcaption class=\"wp-element-caption\">An internal preview site of the ArcGIS Maps SDK for .NET developer guide. Anyone with write access to the documentation repository can create a preview of their updates for review before going live.<\/figcaption><\/figure>\n\n\n\n<p class=\"undefined block-editor-paragraph\">We spend a lot of time looking over new content before it goes live on our website. Once it\u2019s there, we\u2019ll likely read through it several more times without seeing any problems. That doesn\u2019t mean that issues aren\u2019t there, only that we don\u2019t see them. That\u2019s why we appreciate it when our users provide feedback and suggestions for the documentation. It may be a simple glitch like a misspelled word, a grammatical error, a broken link, or something more fundamental like contradictory or confusing information. We are always grateful when someone takes the time to point out such problems for us.<\/p>\n\n\n\n<p class=\"undefined block-editor-paragraph\">Most pages in our developer guide have a feedback widget so the user can let us know whether or not the current page is helpful by simply clicking a thumbs-up or thumbs-down icon. After clicking, we encourage the user to pass along additional details.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"849\" height=\"379\" src=\"https:\/\/uat.esri.com\/en-us\/software-engineering\/blog\/wp-content\/uploads\/2024\/09\/DocFeedbackForm.png\" alt=\"\" class=\"wp-image-248\" srcset=\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/DocFeedbackForm.png 849w, https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/DocFeedbackForm-300x134.png 300w, https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/DocFeedbackForm-768x343.png 768w\" sizes=\"auto, (max-width: 849px) 100vw, 849px\" \/><\/figure>\n\n\n\n<p class=\"undefined block-editor-paragraph\">This feedback is routed into a centralized system monitored by several members of the documentation team (and other stakeholders). If the submitter includes an email address, we\u2019ll follow up as soon as possible to offer help where we can or at least to say \u201cthanks\u201d for the feedback. If a fix is needed to address the feedback, we\u2019ll immediately create a new issue in our documentation repository and prioritize it as a user-submitted bug.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"503\" src=\"https:\/\/uat.esri.com\/en-us\/software-engineering\/blog\/wp-content\/uploads\/2024\/09\/devex-feedback-service-1024x503.png\" alt=\"\" class=\"wp-image-355\" srcset=\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/devex-feedback-service-1024x503.png 1024w, https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/devex-feedback-service-300x147.png 300w, https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/devex-feedback-service-768x377.png 768w, https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/devex-feedback-service.png 1328w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">User feedback can be filtered according to date, keywords, and product. Doc team members can respond to the user if an email is provided.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-summary\">Summary<\/h2>\n\n\n\n<p class=\"undefined block-editor-paragraph\">The ArcGIS Maps SDKs for Native Apps documentation team works to improve the quality of our content by collaborating with the experts who create the product, working on the documentation from a developer\u2019s perspective, and responding to our user\u2019s needs. I hope this article helped provide additional context about our approach to our documentation and the areas we strive to improve.&nbsp;&nbsp;<\/p>\n\n\n\n<p class=\"undefined block-editor-paragraph\">Feel free to reach out if you&#8217;d like more information about how we create our documentation. I&#8217;d also love to hear from you if you&#8217;d like to discuss different documentation strategies or share suggestions and insights from your experiences. If you&#8217;re a student and interested in an internship with our team, check out the <a href=\"https:\/\/www.esri.com\/en-us\/about\/careers\/student-jobs\">student programs at Esri<\/a>.<\/p>\n\n\n\n<p class=\"undefined block-editor-paragraph\"><\/p>\n","protected":false},"author":13,"featured_media":0,"parent":0,"menu_order":0,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[23],"tags":[31,30,29],"class_list":["post-263","blog","type-blog","status-publish","format-standard","hentry","category-developer-experience","tag-documentation","tag-documentation-as-code","tag-static-site-generation"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.2 (Yoast SEO v25.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Beyond Words: Developing Doc for Devs - Esri Software Engineering Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/articles\/beyond-words-developing-doc-for-devs\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Beyond words: Developing doc for devs\" \/>\n<meta property=\"og:description\" content=\"Our team creates documentation for ArcGIS Maps SDKs for Native Apps. Developers use our product to add mapping and spatial analysis to their apps. It includes SDKs for Kotlin, .NET, Qt, Swift, Java, and Flutter (beta), and supports deployment on several mobile and desktop platforms. In this article, I\u2019ll provide some background on our documentation [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/articles\/beyond-words-developing-doc-for-devs\" \/>\n<meta property=\"og:site_name\" content=\"Esri Software Engineering Blog\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-19T14:49:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/MDX-Gatsby-doc-system-Esri.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1562\" \/>\n\t<meta property=\"og:image:height\" content=\"690\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/articles\/beyond-words-developing-doc-for-devs\",\"url\":\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/articles\/beyond-words-developing-doc-for-devs\",\"name\":\"Beyond words: Developing doc for devs - Esri Software Engineering Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/articles\/beyond-words-developing-doc-for-devs#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/articles\/beyond-words-developing-doc-for-devs#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/MDX-Gatsby-doc-system-Esri-1024x452.png\",\"datePublished\":\"2024-10-09T19:21:51+00:00\",\"dateModified\":\"2026-02-19T14:49:09+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/articles\/beyond-words-developing-doc-for-devs#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/articles\/beyond-words-developing-doc-for-devs\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/articles\/beyond-words-developing-doc-for-devs#primaryimage\",\"url\":\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/MDX-Gatsby-doc-system-Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/MDX-Gatsby-doc-system-Esri.png\",\"width\":1562,\"height\":690},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/articles\/beyond-words-developing-doc-for-devs#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Beyond words: Developing doc for devs\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/#website\",\"url\":\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/\",\"name\":\"Esri Software Engineering Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Beyond Words: Developing Doc for Devs - Esri Software Engineering Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/articles\/beyond-words-developing-doc-for-devs","og_locale":"en_US","og_type":"article","og_title":"Beyond words: Developing doc for devs","og_description":"Our team creates documentation for ArcGIS Maps SDKs for Native Apps. Developers use our product to add mapping and spatial analysis to their apps. It includes SDKs for Kotlin, .NET, Qt, Swift, Java, and Flutter (beta), and supports deployment on several mobile and desktop platforms. In this article, I\u2019ll provide some background on our documentation [&hellip;]","og_url":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/articles\/beyond-words-developing-doc-for-devs","og_site_name":"Esri Software Engineering Blog","article_modified_time":"2026-02-19T14:49:09+00:00","og_image":[{"width":1562,"height":690,"url":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/MDX-Gatsby-doc-system-Esri.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/articles\/beyond-words-developing-doc-for-devs","url":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/articles\/beyond-words-developing-doc-for-devs","name":"Beyond words: Developing doc for devs - Esri Software Engineering Blog","isPartOf":{"@id":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/articles\/beyond-words-developing-doc-for-devs#primaryimage"},"image":{"@id":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/articles\/beyond-words-developing-doc-for-devs#primaryimage"},"thumbnailUrl":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/MDX-Gatsby-doc-system-Esri-1024x452.png","datePublished":"2024-10-09T19:21:51+00:00","dateModified":"2026-02-19T14:49:09+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/articles\/beyond-words-developing-doc-for-devs#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/articles\/beyond-words-developing-doc-for-devs"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/articles\/beyond-words-developing-doc-for-devs#primaryimage","url":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/MDX-Gatsby-doc-system-Esri.png","contentUrl":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/MDX-Gatsby-doc-system-Esri.png","width":1562,"height":690},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/articles\/beyond-words-developing-doc-for-devs#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog"},{"@type":"ListItem","position":2,"name":"Beyond words: Developing doc for devs"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/#website","url":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/","name":"Esri Software Engineering Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"text_date":"October 9, 2024","author_name":"Thad Tilton","author_page":false,"custom_image":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/developer-docs-article-gray.png","primary_product":false,"tag_data":[{"term_id":31,"name":"documentation","slug":"documentation","term_group":0,"term_taxonomy_id":31,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":30,"name":"documentation as code","slug":"documentation-as-code","term_group":0,"term_taxonomy_id":30,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":29,"name":"static site generation","slug":"static-site-generation","term_group":0,"term_taxonomy_id":29,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"}],"category_data":[{"term_id":23,"name":"Developer Experience","slug":"developer-experience","term_group":0,"term_taxonomy_id":23,"taxonomy":"category","description":"Articles on enhancing developer productivity, tools, processes, and creating a positive developer environment.","parent":22,"count":2,"filter":"raw"}],"product_data":{"errors":{"invalid_taxonomy":["Invalid taxonomy."]},"error_data":[]},"primary_product_link":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/","short_description":"The ArcGIS Maps SDKs for Native Apps team uses a documentation as code approach to facilitate cooperation among technical writers and developers.","image":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/app\/uploads\/2024\/09\/developer-docs-article-thumb.png","_links":{"self":[{"href":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/wp-json\/wp\/v2\/article\/263","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/wp-json\/wp\/v2\/article"}],"about":[{"href":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/wp-json\/wp\/v2\/users\/13"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/wp-json\/wp\/v2\/article\/263\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/wp-json\/wp\/v2\/media?parent=263"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/wp-json\/wp\/v2\/categories?post=263"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/en-us\/software-engineering\/blog\/wp-json\/wp\/v2\/tags?post=263"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}