<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Lauren Lee</title>
    <description>The latest articles on Forem by Lauren Lee (@lolocoding).</description>
    <link>https://forem.com/lolocoding</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F236316%2Fce26420f-318e-4227-9c3c-595213d4fe8c.jpg</url>
      <title>Forem: Lauren Lee</title>
      <link>https://forem.com/lolocoding</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/lolocoding"/>
    <language>en</language>
    <item>
      <title>Midnight network is live</title>
      <dc:creator>Lauren Lee</dc:creator>
      <pubDate>Mon, 30 Mar 2026 14:28:04 +0000</pubDate>
      <link>https://forem.com/devsofmidnight/midnight-network-is-live-1apj</link>
      <guid>https://forem.com/devsofmidnight/midnight-network-is-live-1apj</guid>
      <description>&lt;p&gt;The Midnight network is officially live. This milestone marks the introduction of state continuity and permanence in the network and is a significant achievement for everyone involved. This launch follows years of research, development, and collaboration to develop the fourth generation of blockchain technology to deliver end-to-end privacy that is flexible and enforceable at the protocol level. Scientists, engineers, developers, partners, and the community all made substantial and ongoing contributions to the development of the network from its inception.&lt;/p&gt;

&lt;p&gt;The genesis block marks both a culmination of building toward the network launch and the starting point for the next phase of on-chain network activity. Developers, partners, and institutions will be able to deploy applications and migrate assets on Midnight. This launch triggers the next stage of network and ecosystem expansion as more Midnight-native tools and services come online that will enable end-to-end programmable privacy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Scaling real-world use with fourth-generation blockchain
&lt;/h2&gt;

&lt;p&gt;Midnight, the world's first fourth generation of blockchain addresses the fundamental barriers that have prevented blockchain from supporting the real world at scale. Applications in the real world require the ability to protect sensitive data, execute compliance logic on-chain, and make blockchain as accessible as any other technology. Midnight is designed to solve all three.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://midnight.foundation/news/securing-the-future-of-privacy-and-identity-with-midnights-fourth-generation-technology" rel="noopener noreferrer"&gt;Outlining the journey and roadmap&lt;/a&gt; from the first bitcoin transaction to Midnight’s fourth-generation technology, Founder of &lt;a href="https://iohk.io/" rel="noopener noreferrer"&gt;Input Output&lt;/a&gt; Charles Hoskinson explained how we got to the fourth generation of blockchain: "Satoshi gave us good money; Ethereum gave us programmability; Cardano brought the third generation of interoperability, scale and good governance. Midnight gives us our identity and privacy back”.&lt;/p&gt;

&lt;p&gt;While the previous generations of blockchains achieved scale and programmability, and sparked waves of innovation, they did so on public ledgers. This is why the vast majority of the world’s value remains off-chain. Trillions in real estate, private equity, debt and currency cannot yet be digitized. The lack of privacy and unpredictability of the infrastructure makes digitizing and tokenising their assets an existential risk to institutions and the value they hold.&lt;/p&gt;

&lt;p&gt;Midnight can remove the final hurdle to bringing the world’s economy on-chain. Midnight gives everyone the capability and opportunity to digitize all the world’s value.&lt;/p&gt;

&lt;h3&gt;
  
  
  Unlocking Real-world privacy
&lt;/h3&gt;

&lt;p&gt;For blockchain to support regulated activity, on-chain privacy must be programmable. Midnight allows developers to determine when to apply privacy across both application and transaction layers. This is achieved through a technical architecture that prioritizes data sovereignty and cryptographic verification:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hybrid Ledger Architecture:&lt;/strong&gt; Midnight uniquely combines both public and private data, enabling applications to process and verify sensitive personal, financial, and commercial information without the data ever being exposed to the network.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Client-side proofs:&lt;/strong&gt; Sensitive data stays on the user’s device where it belongs. Using a local proof server, zero-knowledge proofs are generated on the user's machine and submitted to the network for validation, meaning identity, eligibility, credit, and compliance verification can happen without the underlying data ever leaving the user's hands.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shielded &amp;amp; Unshielded Assets:&lt;/strong&gt; Midnight introduces shielded and unshielded assets, giving developers flexibility over if information is shared on-chain. Shielded assets keep balances, counterparties, and transaction flows off the public ledger. Unshielded assets provide the tools for open collaboration and exchange. Confidentiality and auditability are not a choice between one or the other — on Midnight, you have both.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Selective Disclosure:&lt;/strong&gt; Compliance logic can be programmed directly into an application, defining exactly when transaction information must be revealed and to whom. Authorised participants including counterparties, auditors, regulators can be granted visibility into specific records without accessing the underlying data that initiated the transaction. This feature enables identity verification, regulatory checks, and eligibility conditions to be validated on-chain without exposing the underlying data.
Abstracting away the underlying zero-knowledge cryptography, Midnight empowers developers to focus on application logic while providing users with real-world privacy.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Sustainable costs and predictability
&lt;/h3&gt;

&lt;p&gt;Token volatility makes existing blockchain infrastructure commercially unworkable for many real-world use cases. Transaction fees paid in a network's native asset expose operational costs to market price movements, preventing businesses from accurately forecasting operational costs.&lt;/p&gt;

&lt;p&gt;Midnight architecture resolves this through a dual-component economic model. Separating the asset used to govern and secure the network from the resource used to pay for transactions ensures operational costs remain predictable. The Midnight network opens up a path toward a future where users no longer need to hold or manage volatile crypto assets to use the network.&lt;/p&gt;

&lt;h2&gt;
  
  
  Aligning incentives with dual-component tokenomics
&lt;/h2&gt;

&lt;p&gt;Midnight uses a &lt;a href="https://www.shielded.io/blog/midnight-and-solving-the-privacy-trilemma-midnight-summit-keynote" rel="noopener noreferrer"&gt;dual-component economic model designed to align the incentives of users, builders, and validators&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  NIGHT for utility and governance
&lt;/h3&gt;

&lt;p&gt;&lt;a href="http://midnight.network/night" rel="noopener noreferrer"&gt;NIGHT&lt;/a&gt; is the generator for the network’s operational resource, DUST. NIGHT is the unshielded ledger-native governance and utility token. NIGHT generates the DUST resource, which means NIGHT functions as a store of value for the ecosystem without being consumed by daily transactions. NIGHT is also intended to grant governance rights to holders.&lt;/p&gt;

&lt;h3&gt;
  
  
  DUST is the renewable network resource
&lt;/h3&gt;

&lt;p&gt;DUST is the resource required to power transactions. Unlike traditional gas models where tokens are burned or paid out, DUST operates on a recharge model similar to a battery.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Generation:&lt;/strong&gt; DUST is generated proportionally to NIGHT holdings. A NIGHT holder can register NIGHT to generate DUST and designate a recipient to power transactions on the network. That gives NIGHT holders flexibility to choose how to designate their DUST resources.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sustainability:&lt;/strong&gt; DUST regenerates over time until it reaches capacity based on the amount of NIGHT held. It takes seven days for a DUST address to reach full charge, whereas partial recharges take proportionally less time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Self-funding applications:&lt;/strong&gt; Developers can hold NIGHT to generate the DUST required to cover transaction costs for their users. This allows for applications where the end-user does not need to own or even be aware of the underlying tokens to interact with the service.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Abstracting away complexity with Compact programming language
&lt;/h3&gt;

&lt;p&gt;To make advanced cryptography accessible, Midnight uses Compact, a statically-typed domain-specific language (DSL) based on TypeScript. Compact allows developers to manage both private and public states within a single contract. By using familiar syntax, the language removes the requirement for specialized expertise in ZK proof cryptography, enabling more efficient development of sophisticated logic.&lt;/p&gt;

&lt;p&gt;The design of Compact focuses on lowering the technical barrier to building privacy-enhancing technology. Learn more about &lt;a href="https://docs.midnight.network/compact" rel="noopener noreferrer"&gt;Compact in the Midnight documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Launching alongside leading institutions
&lt;/h2&gt;

&lt;p&gt;The Midnight network launch represents the primary milestone of the current development phase, which focuses on strengthening infrastructure and achieving operational stability and security. During this stage, the network expands to include distinct federated node operators that collectively operate the protocol under explicit rules for participation and coordination.&lt;/p&gt;

&lt;p&gt;While these operators already support the Midnight Preprod network, their participation in the Midnight network launch provides the secure, enterprise-grade foundation necessary for live applications to function. By involving leading global institutions, the Midnight Foundation ensures that infrastructure is managed by operators with proven experience handling high-volume, mission-critical data.&lt;/p&gt;

&lt;p&gt;Charles Hoskinson explains, “Midnight is the first public blockchain that gives the world the infrastructure it needs to come on-chain — without sacrificing privacy or compliance. Launching alongside partners like Google Cloud and MoneyGram is a monumental step. For the first time, organisations of this scale have committed not only to running critical infrastructure but also to building and deploying live applications on a public network.”&lt;/p&gt;

&lt;p&gt;Learn more about the federated node partners supporting the network including &lt;a href="https://midnight.network/blog/worldpay-and-bullish-join-midnight-s-alliance-of-federated-node-operators-ahead-of-mainnet" rel="noopener noreferrer"&gt;Worldpay&lt;/a&gt;, &lt;a href="https://midnight.network/blog/worldpay-and-bullish-join-midnight-s-alliance-of-federated-node-operators-ahead-of-mainnet" rel="noopener noreferrer"&gt;Bullish&lt;/a&gt;, &lt;a href="https://midnight.network/blog/expanding-list-of-mainnet-node-operators-revealed" rel="noopener noreferrer"&gt;MoneyGram, Pairpoint by Vodafone, eToro&lt;/a&gt;, &lt;a href="https://midnight.network/blog/expanding-list-of-mainnet-node-operators-revealed" rel="noopener noreferrer"&gt;AlphaTON Capital, Google Cloud, Blockdaemon, and Shielded Technologies&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Multiphase roll-out strategy for stability and security
&lt;/h2&gt;

&lt;p&gt;The rollout of the Midnight network from genesis block follows a structured multi-phase path to decentralization, and will begin with an initial phased application deployment rollout period to ensure operational stability and security. This is essentially an early phase where developers and applications can access the network’s functionality within a protected environment. &lt;/p&gt;

&lt;p&gt;This structured approach allows users to have more confidence that the early DApps and services launching on the network are from developers who have met rigorous readiness criteria.&lt;/p&gt;

&lt;p&gt;To maintain this security during the initial phase:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Development best practices:&lt;/strong&gt; The Midnight Preprod environment is a mirror of the Midnight network. As is common development best practice, all developers should test and deploy to the Preprod environment first to ensure application logic is fully optimized before moving to production.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Infrastructure resilience:&lt;/strong&gt; Federated node operators are protected by a private protected network. This architecture creates a secure, encrypted communication layer, making the network's core infrastructure resilient against potential external attacks.
Fahmi Syed, President of the Midnight Foundation explains the multiphase strategy: “This rollout will be phased, reflecting the importance of introducing privacy-enhancing infrastructure in a deliberate and resilient way. More importantly, this creates the foundations for an entirely new class of on-chain activity. When privacy is built into the system itself, it becomes possible to bring real-world activity and assets on-chain without exposing the underlying data — unlocking entirely new forms of economic value that were previously impossible on transparent infrastructure.”&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Progressive decentralization
&lt;/h3&gt;

&lt;p&gt;As stewards of the network, the Midnight Foundation intends to transition from this federated model to a fully decentralized network. This path to decentralization is designed to be managed thoughtfully and responsibly, ensuring the network maintains security and stability as it matures. This planned evolution allows the ecosystem to scale while moving toward a fully decentralized and permissionless state in &lt;a href="https://midnight.foundation/news/securing-the-future-of-privacy-and-identity-with-midnights-fourth-generation-technology" rel="noopener noreferrer"&gt;subsequent phases of the roadmap&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to do next…
&lt;/h2&gt;

&lt;p&gt;The Midnight network launch is a significant milestone that initiates the next phase of ecosystem growth. This release provides the foundation for a wide range of privacy-preserving applications and institutional integrations.&lt;/p&gt;

&lt;p&gt;See live network metrics at &lt;a href="https://www.midnightexplorer.com/" rel="noopener noreferrer"&gt;Midnight Explorer&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Join the &lt;a href="https://discord.com/invite/midnightnetwork" rel="noopener noreferrer"&gt;community on Discord&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Check the Midnight blog regularly for &lt;a href="http://midnight.network/blog" rel="noopener noreferrer"&gt;more news and information&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>web3</category>
      <category>typescript</category>
      <category>privacy</category>
    </item>
    <item>
      <title>Get your project on the map</title>
      <dc:creator>Lauren Lee</dc:creator>
      <pubDate>Fri, 06 Mar 2026 12:40:58 +0000</pubDate>
      <link>https://forem.com/devsofmidnight/get-your-project-on-the-map-41ma</link>
      <guid>https://forem.com/devsofmidnight/get-your-project-on-the-map-41ma</guid>
      <description>&lt;p&gt;&lt;em&gt;Three quick updates to make sure your work is visible, counted, and recognized as part of the Midnight ecosystem.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://midnight.network/developer-hub" rel="noopener noreferrer"&gt;Midnight&lt;/a&gt; is approaching mainnet. The ecosystem already has hundreds of active developers building with Compact, deploying on Preprod, and shipping real applications. But &lt;strong&gt;activity that isn't attributed doesn't get counted&lt;/strong&gt;, and that invisibility has real consequences for the ecosystem you're helping to build.&lt;/p&gt;

&lt;p&gt;Establishing a clear public record of development activity ensures that the broader blockchain industry recognizes the growth of Midnight Network. Accurate attribution is a functional necessity for the ecosystem and establishes a standardized framework for documenting technical contributions.&lt;/p&gt;

&lt;h2&gt;
  
  
  The attribution process
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.developerreport.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;Electric Capital&lt;/strong&gt;&lt;/a&gt; produces the most widely cited developer report in blockchain. Investors, protocols, and media use it to understand which ecosystems are growing, which are stagnant, and where to pay attention. Their methodology is public: they track GitHub commits, contributor counts, and repository metadata across every major blockchain ecosystem. If your repo doesn't have the right metadata, their tooling won't associate it with Midnight, regardless of how active or high-quality the work is.&lt;/p&gt;

&lt;p&gt;Midnight is submitting its ecosystem map to Electric Capital for the first time, ahead of mainnet. This is a &lt;strong&gt;one-time window&lt;/strong&gt; to establish a credible public record of where the ecosystem stands from day one. Developer counts from the weeks surrounding a mainnet launch are captured in a rolling window that informs how new ecosystems are ranked and covered. Ecosystems that show up in that window with strong numbers get recognized. Ecosystems that don't, start from a deficit they spend months correcting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Compounding developer results
&lt;/h2&gt;

&lt;p&gt;The changes below take under five minutes per repository. They are small, permanent, and consequential. Beyond writing code, implementing these metadata standards is a high-imact action for ecosystem growth.  Every repo that completes them is a developer who gets credited for building on Midnight.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;TL;DR: Midnight's developer ecosystem is real and growing. These three steps make sure that growth is visible to the tools and reports that the wider industry pays attention to.&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Step 1: Add GitHub topics
&lt;/h2&gt;

&lt;p&gt;GitHub topics are how Electric Capital (and other ecosystem trackers) programmatically identify which repos belong to which ecosystem. Without them, even actively maintained repos are invisible to the tooling.&lt;/p&gt;

&lt;p&gt;To add topics to your repository:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Go to your repository on GitHub&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the right-hand sidebar, find the About section&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click the ⚙️ gear icon next to it&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the Topics field, add the relevant topics from the table below&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click Save changes&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Topic&lt;/th&gt;
&lt;th&gt;When to use&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;midnightntwrk&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Required for all Midnight ecosystem projects&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;compact&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Add only if your project uses the Compact language&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Do not use:&lt;/strong&gt; &lt;code&gt;midnight&lt;/code&gt;, &lt;code&gt;midnight-network&lt;/code&gt;, &lt;code&gt;midnight-compact&lt;/code&gt;, or &lt;code&gt;midnight-ecosystem&lt;/code&gt;. These variants are not tracked and will not associate your project with the ecosystem.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Step 2: Add one attribution sentence to your README
&lt;/h2&gt;

&lt;p&gt;Electric Capital's tooling scans README files for signals that confirm a repo's relationship to an ecosystem. One sentence, placed near the top of your README, is sufficient. Please use &lt;strong&gt;exact wording&lt;/strong&gt; from the table below. Customising the phrasing means the automated system may not recognize it.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Your project type&lt;/th&gt;
&lt;th&gt;Attribution sentence&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;dApps, contracts, or tooling that run directly on Midnight&lt;/td&gt;
&lt;td&gt;&lt;em&gt;"This project is built on the Midnight Network."&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SDKs, infrastructure, wallets, or services&lt;/td&gt;
&lt;td&gt;&lt;em&gt;"This project integrates with the Midnight Network."&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Developer tooling, frameworks, or libraries&lt;/td&gt;
&lt;td&gt;&lt;em&gt;"This project extends the Midnight Network with additional developer tooling."&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Step 3: Open a PR to the Awesome dApps list
&lt;/h2&gt;

&lt;p&gt;The Midnight &lt;a href="http://github.com/midnightntwrk/midnight-awesome-dapps" rel="noopener noreferrer"&gt;Awesome dApps list&lt;/a&gt; is the community-maintained directory of ecosystem projects. Opening a PR adds your project to that record and makes it discoverable by other developers, partners, and the teams evaluating the ecosystem.&lt;/p&gt;

&lt;p&gt;Submit your project at: &lt;a href="https://github.com/midnightntwrk/midnight-awesome-dapps" rel="noopener noreferrer"&gt;github.com/midnightntwrk/midnight-awesome-dapps&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Earn Zealy points while you're at it!
&lt;/h2&gt;

&lt;p&gt;Each of the three steps above has a corresponding quest on &lt;a href="https://zealy.io/cw/midnightnetwork/questboard" rel="noopener noreferrer"&gt;Zealy&lt;/a&gt;. Complete them to earn points and appear on the &lt;a href="https://zealy.io/cw/midnightnetwork/leaderboard" rel="noopener noreferrer"&gt;Midnight ecosystem leaderboard&lt;/a&gt;. Links to the three quests are below.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Quest 1:&lt;/strong&gt; &lt;a href="https://zealy.io/cw/midnightnetwork/questboard/admin/2b5850a3-c343-44c1-9478-71aae189837c" rel="noopener noreferrer"&gt;Add the midnightntwrk GitHub topic&lt;/a&gt;   &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Quest 2:&lt;/strong&gt; &lt;a href="https://zealy.io/cw/midnightnetwork/questboard/admin/1c837b8e-b266-419e-a282-a0ea1eee884e" rel="noopener noreferrer"&gt;Add the attribution sentence to your README&lt;/a&gt;  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Quest 3:&lt;/strong&gt; &lt;a href="https://zealy.io/cw/midnightnetwork/questboard/admin/63ed7bac-6c9f-4387-8bb3-36d861d3ec97?tab=properties" rel="noopener noreferrer"&gt;Open a PR to the Midnight Awesome dApps list&lt;/a&gt;  &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Three steps, once per repo, permanent record
&lt;/h2&gt;

&lt;p&gt;These changes don't affect how your code works. They affect how your work is seen. Midnight's first public developer count will be used in every industry report, investor briefing, and ecosystem comparison that references the network for years to come. Your repo being in that count matters.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Questions?&lt;/em&gt; Find us in the &lt;a href="https://discord.com/invite/midnightnetwork" rel="noopener noreferrer"&gt;Midnight Discord&lt;/a&gt; in &lt;strong&gt;#dev-chat&lt;/strong&gt;, or reply to this post.&lt;/p&gt;

</description>
      <category>ecosystem</category>
      <category>web3</category>
      <category>devrel</category>
      <category>midnight</category>
    </item>
    <item>
      <title>Aliit Fellowship Now Accepting Cohort 2 Applications</title>
      <dc:creator>Lauren Lee</dc:creator>
      <pubDate>Thu, 05 Mar 2026 14:48:25 +0000</pubDate>
      <link>https://forem.com/devsofmidnight/aliit-fellowship-now-accepting-cohort-2-applications-g5m</link>
      <guid>https://forem.com/devsofmidnight/aliit-fellowship-now-accepting-cohort-2-applications-g5m</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;The Aliit Fellowship, the technical contributor program for the Midnight network, is now accepting applications for Cohort 2. Cohort 1 is active. The program has evolved. Here's everything you need to know before you apply.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The Aliit Fellowship serves as the primary hub for hands-on contribution to Midnight. The Aliit prioritizes technical expertise and ecosystem development. Fellows engage directly with the protocol, create essential tooling, and produce the documentation required to make zero-knowledge (ZK) technology accessible. Alongside core development, the Fellowship includes dedicated tracks for Education, Advocacy, and Community Leadership which are inclusive of different types of contributions.&lt;/p&gt;

&lt;p&gt;Following the successful launch of Cohort 1, the Fellowship has transitioned to a rolling admission model to better integrate contributors as they ready their projects. Applications for Cohort 2 are now open.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;About the Aliit&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The Aliit is Midnight's technical fellowship. It exists for developers who are actively contributing to the ecosystem in meaningful, hands-on ways, whether through code, tooling, documentation, support, or other technically grounded work.&lt;/p&gt;

&lt;p&gt;The Aliit Fellowship focuses on the technical development of the network rather than social or community reach. While the &lt;a href="https://midnight.network/nightforce-ambassador-program" rel="noopener noreferrer"&gt;Nightforce&lt;/a&gt; program supports community growth and visibility, the Aliit supports contributors who strengthen the technical core of the ecosystem.&lt;/p&gt;

&lt;p&gt;The Aliit Fellowship is looking for contributors who operate with good technical judgment, communicate clearly, and are willing to help unblock others. This Fellowship is built on trust and responsibility.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The Candidacy Structure&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The Aliit Fellowship now runs on a four-stage path:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Candidate&lt;/strong&gt; is where you begin. This is a two-month phase structured within Zealy, with updated quests designed to surface how you think, what you build, and how you show up for the community. Applications to become a Candidate are reviewed on a rolling weekly basis. You can apply to become a Candidate at any point.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tier 1 Fellow&lt;/strong&gt; is the entry point for the Fellowship. If you're accepted into Cohort 2, you’ll become a Tier 1 Fellow. Cohort 1, which graduated from Cohort 0, are already Tier 1 Fellows. This stage is  a four-month commitment, and it's where you'll establish your rhythm of contribution and build alongside the existing Fellows.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tier 2 Fellow&lt;/strong&gt; runs for six months and carries you through the end of the year. Members who progress to Tier 2 have demonstrated consistency and are embedded more deeply in the work of the ecosystem.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tier 3 Fellow&lt;/strong&gt; opens in January 2027. We'll share more about what this looks like as the year develops.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;How Contribution Works: The Four Personas&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;One of the most significant changes in this iteration is the introduction of contribution personas. Rather than prescribing a single mode of participation, we've defined four lanes that reflect how real technical contributors actually work.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Builder&lt;/strong&gt; is the default for every member. This covers development work, tooling, protocol contributions, and anything living in GitHub.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Educator&lt;/strong&gt; is for members who create tutorials, run workshops, write documentation, or help other developers understand complex concepts. If you're the person who makes ZK proofs feel approachable, this is your lane.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Advocate&lt;/strong&gt; covers talks, content creation, and activities that bring new developers into the Midnight ecosystem. If you're actively representing Midnight at events or through original content, this is where that work counts.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community Leader&lt;/strong&gt; recognizes members who organize events, provide ongoing support in developer channels, and help coordinate the broader builder community.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You're not locked to one persona. Each month, you self-report where your contributions landed across as many lanes as apply to you. The reporting is lightweight: GitHub activity plus a monthly summary, nothing more.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Benefits of Fellowship&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The Fellowship provides resources and benefits tailored specifically to technical contributors. Candidates receive access to an exclusive Discord channel and an NFT while in the queue. Fellows receive a package designed to support technical, personal and professional development alongside ecosystem growth including: welcome swag, developer tool credits, NFTs, dedicated Discord access, community spotlight opportunities, fireside speaking slots, public speaking coaching, and conference credits.&lt;/p&gt;

&lt;p&gt;The further you progress, the more the Fellowship supports your ongoing development . Tier 3 Fellows will receive NIGHT rewards on top of all other benefits. More details on that will come as mainnet approaches.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;How Admissions Work&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Applications are accepted on a rolling basis and reviewed weekly. There is no batch deadline. If you're ready, you can apply now.&lt;/p&gt;

&lt;p&gt;During the Candidate phase, we're paying attention to how you engage with the updated Zealy quests, the quality of your contributions in Discord and the developer channels, and how you show up for other builders. Admission decisions reflect that whole picture.&lt;/p&gt;

&lt;p&gt;Once accepted into Tier 1, you'll receive an onboarding from the team and be connected with the existing Fellows. The program is designed to be genuinely collaborative, not just a credential.&lt;/p&gt;

&lt;p&gt;This program was built because Midnight is early, complex, and evolving. The Aliit exists to catch issues early, improve clarity, and help other builders move forward. If that kind of work is what you're already doing, you belong here.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to apply
&lt;/h2&gt;

&lt;p&gt;The admission process operates on a rolling basis, with Candidate applications undergoing regular review. The first formal review of this Candidate pool occurs at the end of April, with official onboarding for Cohort 2 beginning on May 1.&lt;/p&gt;

&lt;p&gt;Early application ensures candidates have sufficient time to establish a record of contribution before the April review.&lt;/p&gt;

&lt;p&gt;If you have questions before applying, &lt;a href="https://discord.com/invite/midnightnetwork" rel="noopener noreferrer"&gt;drop them in the Midnight Discord&lt;/a&gt;. The Fellows and the DevRel team are present and responsive.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://midnight.network/aliit" rel="noopener noreferrer"&gt;Apply to be part of Cohort 2 here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>web3</category>
      <category>community</category>
      <category>blockchain</category>
      <category>privacy</category>
    </item>
    <item>
      <title>DevRel When the Ecosystem Is Still Taking Shape</title>
      <dc:creator>Lauren Lee</dc:creator>
      <pubDate>Mon, 02 Feb 2026 07:22:01 +0000</pubDate>
      <link>https://forem.com/devsofmidnight/devrel-when-the-ecosystem-is-still-taking-shape-dh8</link>
      <guid>https://forem.com/devsofmidnight/devrel-when-the-ecosystem-is-still-taking-shape-dh8</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;What actually works in early-stage developer ecosystems&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  DevRel looks different when developers are building on systems that are still changing underneath them.
&lt;/h3&gt;

&lt;p&gt;Leading Developer Relations at &lt;a href="https://midnight.network/" rel="noopener noreferrer"&gt;Midnight&lt;/a&gt; has meant building an ecosystem from scratch, before launch, while the product is still taking shape underneath us.&lt;/p&gt;

&lt;p&gt;It has been one of the most challenging and instructive experiences of my career. This is my first time leading DevRel pre-launch, with real users, real incentives, and real consequences when things break. When nothing is stable yet, every assumption about DevRel gets pressure-tested &lt;em&gt;fast&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;What actually helps developers move forward becomes very clear, very quickly.&lt;/p&gt;

&lt;p&gt;As we get closer to taking the chain live, these patterns have become impossible to ignore.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff7pgr67kpeqtmvnw5okz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff7pgr67kpeqtmvnw5okz.png" alt=" " width="800" height="532"&gt;&lt;/a&gt;&lt;br&gt;Building before launch, with real developers and real consequences.
  &lt;/p&gt;

&lt;p&gt;In early 2025, I wrote an &lt;a href="https://dev.to/devsofmidnight/devrel-in-web3-building-systems-that-scale-while-the-ecosystem-is-still-taking-shape-35d7"&gt;article&lt;/a&gt; about DevRel at &lt;a href="https://docs.midnight.network/" rel="noopener noreferrer"&gt;Midnight&lt;/a&gt; as a systems problem. Flywheels, journeys, scaffolding for scale. That thinking still holds.&lt;/p&gt;

&lt;p&gt;What changed is that we stopped designing in the abstract and started operating those systems with &lt;em&gt;real&lt;/em&gt; developers, &lt;em&gt;real&lt;/em&gt; incentives, and &lt;em&gt;real&lt;/em&gt; breakage. Some assumptions held. Others collapsed fast.&lt;/p&gt;

&lt;p&gt;This post is not a replacement for that earlier strategy.  It is what survived contact with reality. &lt;/p&gt;

&lt;p&gt;For context, here’s the original piece: &lt;a href="https://dev.to/devsofmidnight/devrel-in-web3-building-systems-that-scale-while-the-ecosystem-is-still-taking-shape-35d7"&gt;DevRel in Web3: Building Systems that Scale While the Ecosystem is Still Taking Shape&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1. Engagement programs are only valuable if they create directional movement&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foh9hzu40ujeyvtuk9t22.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foh9hzu40ujeyvtuk9t22.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Healthy ecosystems help developers move &lt;em&gt;somewhere&lt;/em&gt;, not just participate.&lt;/p&gt;

&lt;p&gt;Quests, fellowships, Discords, events, and content have value only when they push developers forward, from curiosity to first build, from contribution to real ownership. Activity without progression is just motion, not momentum.&lt;/p&gt;

&lt;p&gt;Early-stage programs must teach something concrete and lead to something tangible. Developers should leave knowing more than they did before and having built something they did not have yesterday.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If a program cannot answer “what does this unlock next?” it is not an engagement strategy. It is marketing noise with better branding.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2. Docs, tooling, and support are converging into a single developer experience&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnkdyy12nqh58k85c1s5j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnkdyy12nqh58k85c1s5j.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Developers experience your ecosystem as a single surface, no matter how many teams, orgs, or silos exist behind the scenes.&lt;/p&gt;

&lt;p&gt;From their perspective, documentation, examples, local tooling, error messages, and support are inseparable parts of one experience. When something breaks, they do not diagnose which team owns it. They just decide whether to keep going.&lt;/p&gt;

&lt;p&gt;The ecosystems that feel easy to build on are the ones that design these pieces as a coherent system, not as a collection of disconnected deliverables. Consistency, handoffs, and shared ownership matter more than perfect individual components.&lt;/p&gt;

&lt;p&gt;If it feels smooth to the developer, it is because the org did the hard work to make it so.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3. Early-stage DevRel credibility is earned through consistency, not scale&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvz53deawtaxc9z42kivd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvz53deawtaxc9z42kivd.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Shipping reliably beats launching big, every time.&lt;/p&gt;

&lt;p&gt;Weekly rhythms, predictable programs, clear expectations, and visible follow-through build trust faster than any splashy campaign ever could. It may not look glamorous from the outside, but developers notice when things run on time, work as described, and improve steadily.&lt;/p&gt;

&lt;p&gt;Early-stage ecosystems are experiments by definition. The teams that earn trust are not the ones that avoid mistakes, but the ones that ship quickly, acknowledge what did not work, fix it, and keep moving. Momentum comes from iteration, not perfection.&lt;/p&gt;

&lt;p&gt;Consistency plus learning beats polish every time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F074ir2997sza4u6gxatq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F074ir2997sza4u6gxatq.png" alt=" " width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4. Early-stage DevRel succeeds or fails on &lt;em&gt;unblocking&lt;/em&gt;, not inspiration&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe212hot04itqzdg40b4d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe212hot04itqzdg40b4d.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The most effective DevRel teams are not necessarily the loudest but instead are the fastest at removing friction.&lt;/p&gt;

&lt;p&gt;At early stages, developers do not churn because they lack motivation. They churn because they hit blockers, and no one clears them quickly enough. The teams that win treat DevRel as an unblocker responsibility first, and storytelling second.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;5. Flat teams outperform rigid hierarchies in early ecosystems&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8v28aunp0575usrzr4sk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8v28aunp0575usrzr4sk.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you’re building an ecosystem from zero, no one actually knows what will work yet. The fastest progress comes from teams that invite ideas from everywhere, try things quickly, and course-correct without ego.&lt;/p&gt;

&lt;p&gt;We treat DevRel as a continuous experiment. Ideas come from the team, from builders, from the community. We test them. Some land. Many do not. We learn, adjust, and move forward. That is not chaos, it is disciplined adaptation under uncertainty.&lt;/p&gt;

&lt;p&gt;Decentralized ecosystems demand this mindset. The community ultimately decides what sticks. The role of DevRel is not to dictate direction, but to create the conditions where good ideas surface, get tested, and scale when they earn it.&lt;/p&gt;

&lt;p&gt;Everyone involved brings expertise. Everyone has seen DevRel done well and badly elsewhere. The teams that win are the ones confident enough to listen, humble enough to pivot, and disciplined enough to turn learning into action.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;6. Small, well-instrumented communities outperform large, unmeasured ones&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F25nisezcsf3qeab1f3u1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F25nisezcsf3qeab1f3u1.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You do not need more developers. You need clearer visibility into the ones you already have.&lt;/p&gt;

&lt;p&gt;Early-stage ecosystems win when teams can answer simple questions: who is progressing, who is stuck, and why. But insight alone is not enough. What matters is what you do next.&lt;/p&gt;

&lt;p&gt;Strong communities turn feedback into action. They intervene when builders hit friction, create new paths when momentum stalls, and give developers clear reasons to keep building and deepening ownership.&lt;/p&gt;

&lt;p&gt;Retention does not come from scale. It comes from attention. A smaller group with tight feedback loops, clear progression paths, and visible follow-through will always out-iterate a massive community where signals disappear into the void.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F41xonbevr4d28h8f4vsl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F41xonbevr4d28h8f4vsl.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;7. DevRel is becoming an operating system, not a job title&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fao0png1ujzg5apnzt1do.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fao0png1ujzg5apnzt1do.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The most impactful DevRel work now lives in systems, not individuals.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What scales is not charisma or heroics, but workflows, standards, flywheels, tooling, and feedback loops that keep running week over week. Titles may change, but the work is increasingly about building durable engagement infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Early-stage DevRel is less about growth hacks and more about earning trust under uncertainty.
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmbkkkifgd53eixffaent.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmbkkkifgd53eixffaent.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Join the &lt;a href="https://docs.midnight.network/" rel="noopener noreferrer"&gt;Midnight&lt;/a&gt; Conversation&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;We’d love for you to join this early ecosystem. Hear your feedback and ideas. Drop into &lt;a href="https://discord.gg/BA8Q7CaF" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;, open an &lt;a href="https://github.com/orgs/midnightntwrk/projects/36/views/1" rel="noopener noreferrer"&gt;issue&lt;/a&gt;, or fork a &lt;a href="https://github.com/midnightntwrk/example-counter" rel="noopener noreferrer"&gt;repo&lt;/a&gt; and show us what you’ve built.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;An invitation to fellow DevRel builders&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;If you’re doing DevRel in a web3 ecosystem, especially an early one, I’d love to connect.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you’re building DevRel while the platform is still taking shape, I’d love to compare notes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What broke faster than you expected? What held up under real usage? What did you stop doing entirely?&lt;/p&gt;

&lt;h4&gt;
  
  
  --✨👩🏼‍💻 &lt;a href="https://x.com/LoLoCoding" rel="noopener noreferrer"&gt;lolocoding&lt;/a&gt;
&lt;/h4&gt;

</description>
      <category>devrel</category>
      <category>web3</category>
      <category>community</category>
      <category>learning</category>
    </item>
    <item>
      <title>The Midnight Community Board: Building *With* the Community, Not Just For It</title>
      <dc:creator>Lauren Lee</dc:creator>
      <pubDate>Fri, 01 Aug 2025 14:56:44 +0000</pubDate>
      <link>https://forem.com/devsofmidnight/the-midnight-community-board-building-with-the-community-not-just-for-it-5afo</link>
      <guid>https://forem.com/devsofmidnight/the-midnight-community-board-building-with-the-community-not-just-for-it-5afo</guid>
      <description>&lt;p&gt;I believe a healthy ecosystem isn’t built &lt;em&gt;for&lt;/em&gt; a community. It’s built &lt;em&gt;with&lt;/em&gt; them.&lt;/p&gt;

&lt;p&gt;That’s why the DevRel team at &lt;a href="https://midnight.network/" rel="noopener noreferrer"&gt;Midnight&lt;/a&gt; is thrilled to debut the &lt;strong&gt;Community Board&lt;/strong&gt;, a new GitHub-based hub designed to make collaboration more transparent, inclusive, and efficient.&lt;/p&gt;

&lt;p&gt;Just this week, a longtime partner and contributor shared feedback that struck a chord:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“The real frustration hasn’t been the number of channels. It’s not knowing what happens to our ideas or feedback once they’re shared. Without transparency into follow-up, it feels like issues just disappear.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The Community Board is our solution to that exact problem. It gives developers, partners, and community members visibility into what’s happening with their feedback. And more importantly, a seat at the table to help shape priorities and the opportunity to pick up work themselves.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;How the Community Board Works&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Submission Flow&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Anyone in the community can open an &lt;strong&gt;issue&lt;/strong&gt; in the GitHub Community Hub repository.
&lt;/li&gt;
&lt;li&gt;Issues cover a range of categories:

&lt;ul&gt;
&lt;li&gt;Content Development (blogs, videos, docs, etc.)
&lt;/li&gt;
&lt;li&gt;dApp Development (example apps, new features)
&lt;/li&gt;
&lt;li&gt;Feature Demo Ideas (including i18n/localization)
&lt;/li&gt;
&lt;li&gt;Feature Requests and Suggestions
&lt;/li&gt;
&lt;li&gt;Bug Tracking
&lt;/li&gt;
&lt;li&gt;Midnight Improvement Proposals (MIPs) &lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Triage Process&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An &lt;strong&gt;arbiter committee&lt;/strong&gt; (currently DevRel, expanding over time to include dApp devs, SPOs, partners, and wallet holders) reviews submissions.
&lt;/li&gt;
&lt;li&gt;Submissions are given clear statuses: &lt;em&gt;Needs Discussion, Triaged, Rejected.&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Triage happens transparently, either live during Fireside Hangs or asynchronously on GitHub.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Grab-and-Go Board&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Triaged issues move into the &lt;strong&gt;Grab-and-Go Board&lt;/strong&gt;, a curated space for vetted ideas.
&lt;/li&gt;
&lt;li&gt;From here, contributors can claim work:

&lt;ul&gt;
&lt;li&gt;DevRel team members
&lt;/li&gt;
&lt;li&gt;Partners
&lt;/li&gt;
&lt;li&gt;Ambassadors
&lt;/li&gt;
&lt;li&gt;Ecosystem builders and developers&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Community Voting&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Issues on the Grab-and-Go Board can be upvoted with emoji reactions.
&lt;/li&gt;
&lt;li&gt;Voting provides &lt;strong&gt;constituency-driven signals&lt;/strong&gt;, helping us prioritize based on real demand.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Execution and Integration&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Picked-up issues flow through columns:
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;To Do → In Progress → Needs Review → Done.&lt;/em&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Where needed, issues flagged for internal ownership move to the engineering teams' Jira board.
&lt;/li&gt;
&lt;li&gt;Over time, the Community Board could become a central part of the &lt;strong&gt;Midnight Improvement Proposal (MIP) process&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Automation&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub Actions automatically label issues, move them into the right boards, and reduce manual overhead, keeping the workflow fast and efficient.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why this matters&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ends fragmentation&lt;/strong&gt;: One place for all community ideas and feedback
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Provides visibility&lt;/strong&gt;: Everyone can see what stage a submission is in
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enables contribution&lt;/strong&gt;: Community members can pick up vetted tasks directly
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Democratizes prioritization&lt;/strong&gt;: Voting ensures the roadmap reflects community demand
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Broadens our builder base&lt;/strong&gt;: Reduces pressure on core teams and grows a contributor ecosystem
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Streamlines collaboration&lt;/strong&gt;: Clear swimlanes, automation, and transparent triage keep the process efficient&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is still a work in progress, and we’ll continue refining it. But it’s a big step toward making &lt;a href="https://midnight.network/" rel="noopener noreferrer"&gt;Midnight&lt;/a&gt; a truly builder-driven ecosystem.&lt;/p&gt;

&lt;p&gt;👉 Watch an overview/explainer &lt;a href="https://youtu.be/r6voeOFWzVs" rel="noopener noreferrer"&gt;video&lt;/a&gt;&lt;br&gt;&lt;br&gt;
👉 Explore the Community Board on &lt;a href="https://github.com/orgs/midnightntwrk/projects/36/views/1" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;A huge thank you to Stevan Lohja and the DevRel team for building this, and to our community members for not just sharing feedback but leaning in to build alongside us. Together, we’re proving that privacy-first technology can be built in public, by and for the builders who believe in it. 🌱&lt;/p&gt;

</description>
      <category>web3</category>
      <category>devrel</category>
      <category>community</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Say Hello to example-counter and example-bboard</title>
      <dc:creator>Lauren Lee</dc:creator>
      <pubDate>Tue, 15 Jul 2025 10:45:00 +0000</pubDate>
      <link>https://forem.com/devsofmidnight/say-hello-to-example-counter-and-example-bboard-1inp</link>
      <guid>https://forem.com/devsofmidnight/say-hello-to-example-counter-and-example-bboard-1inp</guid>
      <description>&lt;p&gt;&lt;a href="https://midnight.network/" rel="noopener noreferrer"&gt;Midnight's Developer Relations team&lt;/a&gt; is actively shaping how developers learn, build, and experiment with privacy-first apps. In this post, we take a closer look at how DevRel is lowering the barrier to entry for new builders, supporting open-source tools, and helping the community navigate the unique challenges of developing on a privacy-preserving blockchain.&lt;/p&gt;

&lt;h2&gt;
  
  
  From ZIP Files to GitHub: Opening the Gates
&lt;/h2&gt;

&lt;p&gt;Midnight is entering a new phase in our developer journey. Until now, developers had to download ZIP files from our documentation site just to get started. No versioning, no collaboration, no visibility.&lt;/p&gt;

&lt;p&gt;That changes today.&lt;/p&gt;

&lt;p&gt;The DevRel team is proud to share our first two open source example repositories: &lt;a href="https://github.com/midnightntwrk/example-counter" rel="noopener noreferrer"&gt;&lt;code&gt;example-counter&lt;/code&gt;&lt;/a&gt; and &lt;a href="https://github.com/midnightntwrk/example-bboard" rel="noopener noreferrer"&gt;&lt;code&gt;example-bboard&lt;/code&gt;&lt;/a&gt;. These projects are more than demos. They’re intentionally scoped, composable references designed to help developers explore what’s possible with Midnight’s privacy-first architecture.&lt;/p&gt;

&lt;p&gt;While our broader engineering team continues to open source core protocol components, these repos mark a different kind of milestone: showing others how to build on top of Midnight’s foundation. With versioned code and public visibility, developers can now fork, remix, and build with confidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Simple Contract With a Purpose
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/midnightntwrk/example-counter" rel="noopener noreferrer"&gt;&lt;code&gt;example-counter&lt;/code&gt;&lt;/a&gt; is a minimal dApp that introduces the fundamentals of building on Midnight. It walks through the full development flow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Writing a Compact smart contract
&lt;/li&gt;
&lt;li&gt;Running and compiling locally
&lt;/li&gt;
&lt;li&gt;Using public state
&lt;/li&gt;
&lt;li&gt;Deploying to the Midnight testnet
&lt;/li&gt;
&lt;li&gt;Sending transactions
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;pragma&lt;/span&gt; &lt;span class="nx"&gt;language_version&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.16&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;CompactStandardLibrary&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// public state&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="nx"&gt;ledger&lt;/span&gt; &lt;span class="nx"&gt;round&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Counter&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// transition function changing public state&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="nx"&gt;circuit&lt;/span&gt; &lt;span class="nf"&gt;increment&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;round&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;increment&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It’s designed to build foundational literacy in Compact and Midnight’s dev tooling. It’s a simple but powerful way to learn Compact and become familiar with the development flow on Midnight.&lt;/p&gt;

&lt;p&gt;Think of it as a &lt;code&gt;“Hello, World”&lt;/code&gt; for privacy-enhancing dApp development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enforcing Rules Without Revealing Identity
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/midnightntwrk/example-bboard" rel="noopener noreferrer"&gt;&lt;code&gt;example-bboard&lt;/code&gt;&lt;/a&gt; goes further. It simulates a public bulletin board, where users can post messages, and only the original author can remove their own post.&lt;/p&gt;

&lt;p&gt;It’s a small app that teaches a big concept: Midnight enables identity-aware rules without revealing identity.&lt;/p&gt;

&lt;p&gt;This repo covers how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Combine public and private state in a Compact contract
&lt;/li&gt;
&lt;li&gt;Use zero-knowledge proofs to enforce permissions
&lt;/li&gt;
&lt;li&gt;Validate ownership locally without exposing identity
&lt;/li&gt;
&lt;li&gt;Design UI flows that respect user privacy by default
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s especially useful for teams exploring anonymous messaging, private voting, or access control without identity leakage.&lt;/p&gt;

&lt;h2&gt;
  
  
  What It Means to Build in the Open
&lt;/h2&gt;

&lt;p&gt;Speaking personally, I’ve spent most of my DevRel career working in open source. But this is the first time I’ve been part of a company transitioning into it.&lt;/p&gt;

&lt;p&gt;Open sourcing code isn’t just a technical milestone. It’s a culture shift. Releasing code publicly changes how a team thinks and operates.&lt;/p&gt;

&lt;p&gt;It means moving from perfectionism to progress. From private Slack threads to public GitHub Issues. From “we’ll fix it internally” to “anyone can help improve it.”&lt;/p&gt;

&lt;p&gt;It’s a commitment to building alongside others, not just for them.&lt;/p&gt;

&lt;p&gt;These first example repos mark the beginning of that shift for Midnight. They’re designed to help others learn by doing and to demonstrate that &lt;strong&gt;privacy and collaboration can coexist&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Docs Are Up Next
&lt;/h2&gt;

&lt;p&gt;We’re also preparing to open source our &lt;a href="https://github.com/midnightntwrk/midnight-docs" rel="noopener noreferrer"&gt;Midnight Docs repo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This is a major step toward transparency, trust, and co-creation. We want the documentation to grow alongside the ecosystem, which means making it easier for contributors to suggest improvements, fix issues, and help shape the developer experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s Next?
&lt;/h2&gt;

&lt;p&gt;This is just the start. In the coming months, the DevRel team will:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Publish more example dApps (and build them from scratch in the open)
&lt;/li&gt;
&lt;li&gt;Create reusable components and templates
&lt;/li&gt;
&lt;li&gt;Contribute improvements upstream to core tooling
&lt;/li&gt;
&lt;li&gt;Document real-world use cases for easier onboarding
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We’re building in the open, for those who want to build with us.&lt;/p&gt;

&lt;h2&gt;
  
  
  Explore the Code
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/midnightntwrk/example-counter" rel="noopener noreferrer"&gt;&lt;code&gt;example-counter&lt;/code&gt;&lt;/a&gt;  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/midnightntwrk/example-bboard" rel="noopener noreferrer"&gt;&lt;code&gt;example-bboard&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Join the Conversation
&lt;/h2&gt;

&lt;p&gt;We’d love to hear your feedback, contributions, and ideas. Drop into &lt;a href="https://discord.gg/midnightnetwork" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;, open an issue, or fork a repo and show us what you’ve built.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>opensource</category>
      <category>blockchain</category>
      <category>privacy</category>
    </item>
    <item>
      <title>Why We’re Shipping Curriculum Before It’s “Done” (And Why You Should Too)</title>
      <dc:creator>Lauren Lee</dc:creator>
      <pubDate>Wed, 28 May 2025 11:14:43 +0000</pubDate>
      <link>https://forem.com/devsofmidnight/why-were-shipping-curriculum-before-its-done-and-why-you-should-too-3pkf</link>
      <guid>https://forem.com/devsofmidnight/why-were-shipping-curriculum-before-its-done-and-why-you-should-too-3pkf</guid>
      <description>&lt;p&gt;At Midnight, we’re building a new kind of blockchain. One focused on data protection, developer experience, and real-world impact.&lt;/p&gt;

&lt;p&gt;And as we grow our developer ecosystem, we’re doing something many teams are afraid to do.&lt;/p&gt;

&lt;p&gt;We’re releasing our developer curriculum before it’s “done.”&lt;/p&gt;

&lt;p&gt;Not because we’re lazy.&lt;/p&gt;

&lt;p&gt;Because we believe that early feedback, real-world usage, and community collaboration will lead us to a stronger, more usable learning experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Trap of Waiting for Perfect
&lt;/h2&gt;

&lt;p&gt;Too many developer education teams hold back content until it’s “finished.” Polished. Market-ready.&lt;/p&gt;

&lt;p&gt;But the truth is, good curriculum is &lt;em&gt;never&lt;/em&gt; truly finished.&lt;/p&gt;

&lt;p&gt;As someone who’s been both a high school English teacher and a DevRel leader, I’ve seen firsthand that the best learning doesn’t come from a perfect script. It comes from iteration. From shipping. From engaging with students/learners while the material is still taking shape.&lt;/p&gt;

&lt;p&gt;So we’re taking a different approach.&lt;/p&gt;

&lt;p&gt;We're &lt;em&gt;shipping early and learning in the open.&lt;/em&gt; We're publishing usable content early, inviting feedback, and improving it alongside the developers who use it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introducing the Midnight Developer Academy
&lt;/h2&gt;

&lt;p&gt;Recently, we quietly launched &lt;a href="https://docs.midnight.network/academy" rel="noopener noreferrer"&gt;Midnight Developer Academy&lt;/a&gt;: our educational hub for developers who want to become experts in Zero-Knowledge Proofs and learn how to build DApps with data protection at the core.&lt;/p&gt;

&lt;p&gt;Here’s what’s live now:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;👩‍🎓 The first &lt;strong&gt;3 of 8&lt;/strong&gt; core modules
&lt;/li&gt;
&lt;li&gt;✍️ Written, direct, and focused on hands-on learning
&lt;/li&gt;
&lt;li&gt;⚡ Designed for usability, not perfection&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And here’s what’s on the roadmap/coming soon:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🎥 Video content and interactive labs
&lt;/li&gt;
&lt;li&gt;🌍 University partnerships and blockchain society integrations
&lt;/li&gt;
&lt;li&gt;💻 Self-paced learning on major online platforms
&lt;/li&gt;
&lt;li&gt;🧑‍🏫 Cohort-based workshops and live office hours
&lt;/li&gt;
&lt;li&gt;🤝 Partner-contributed modules on advanced use cases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This isn’t about checking a box. It’s about delivering real value &lt;em&gt;now&lt;/em&gt; and letting our developers help shape what comes next.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Love This Approach
&lt;/h2&gt;

&lt;p&gt;By shipping early, we’re already seeing wins:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers are completing the first modules and asking for more&lt;/li&gt;
&lt;li&gt;We’re collecting specific, actionable feedback to guide the next releases&lt;/li&gt;
&lt;li&gt;Our community feels &lt;em&gt;involved&lt;/em&gt;, not sidelined&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is our bet:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Progress beats perfection&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Trust is built through transparency&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gatekeeping (is toxic and) slows learning&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you’re in DevRel, developer education, documentation, or product enablement, ask yourself:&lt;/p&gt;

&lt;p&gt;👉 What’s the cost of waiting until it’s “done”?&lt;br&gt;&lt;br&gt;
👉 What opportunities are you missing while you polish?&lt;br&gt;&lt;br&gt;
👉 Could your community be helping you &lt;em&gt;right now&lt;/em&gt;?&lt;/p&gt;

&lt;h2&gt;
  
  
  Build &lt;em&gt;With&lt;/em&gt;, Not Just &lt;em&gt;For&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;We believe that building with developers, not just for them, is how ecosystems thrive.&lt;/p&gt;

&lt;p&gt;That means opening the door earlier. Listening harder. And iterating out in the open.&lt;/p&gt;

&lt;p&gt;So here’s our call to action to the Midnight community:&lt;/p&gt;

&lt;p&gt;💥 Dive into the &lt;a href="https://docs.midnight.network/academy" rel="noopener noreferrer"&gt;first three modules&lt;/a&gt;&lt;br&gt;&lt;br&gt;
📝 Tell us what’s missing&lt;br&gt;&lt;br&gt;
📣 Help shape what comes next&lt;/p&gt;

&lt;p&gt;We’re not waiting for perfect.&lt;/p&gt;

&lt;p&gt;We’re learning, shipping, and growing together!&lt;/p&gt;

</description>
      <category>devrel</category>
      <category>blockchain</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>DevRel in Web3: Building Systems that Scale While the Ecosystem is Still Taking Shape</title>
      <dc:creator>Lauren Lee</dc:creator>
      <pubDate>Wed, 23 Apr 2025 09:09:15 +0000</pubDate>
      <link>https://forem.com/devsofmidnight/devrel-in-web3-building-systems-that-scale-while-the-ecosystem-is-still-taking-shape-35d7</link>
      <guid>https://forem.com/devsofmidnight/devrel-in-web3-building-systems-that-scale-while-the-ecosystem-is-still-taking-shape-35d7</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Don’t optimize for today. Build the scaffolding for scale.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Intro
&lt;/h2&gt;

&lt;p&gt;The pace of web3 is &lt;em&gt;dizzying&lt;/em&gt;. Protocols evolve weekly. Docs lag behind releases. Tooling is in flux. Community sentiment shifts with the market. For Developer Relations teams, that means operating in a state of constant motion and navigating uncertainty while trying to create structure and momentum.&lt;/p&gt;

&lt;p&gt;On our DevRel team at &lt;a href="https://midnight.network/" rel="noopener noreferrer"&gt;Midnight&lt;/a&gt;, we’re not just reacting, we're designing systems that can outlast us. This blog post is a look inside how we're thinking about DevRel in an emerging ecosystem, and what it takes to build not just community, but infrastructure for community.&lt;/p&gt;




&lt;h2&gt;
  
  
  From tasks to systems: The DevRel Flywheel
&lt;/h2&gt;

&lt;p&gt;The traditional DevRel playbook doesn’t hold up when the ground keeps shifting. That’s why I’ve shifted from thinking in terms of tasks, such as “write this guide” and “host that hackathon,” to thinking in terms of systems.&lt;/p&gt;

&lt;p&gt;Enter the &lt;strong&gt;DevRel Flywheel.&lt;/strong&gt; A concept originated by &lt;a href="https://developerrelations.com/reports/hoopy-devrel-flywheel-report.pdf" rel="noopener noreferrer"&gt;Matthew Revell&lt;/a&gt; that we’ve adapted for web3. Here’s how it works at Midnight:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Developer activity&lt;/strong&gt; sparks early traction and interest
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community engagement&lt;/strong&gt; amplifies that momentum
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trust and support&lt;/strong&gt; build confidence and&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ecosystem visibility&lt;/strong&gt; brings new builders and use cases
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;New projects&lt;/strong&gt; fuel more developer activity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5letpivzs68kvl3xrgag.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5letpivzs68kvl3xrgag.png" alt="circle image with four words in the arrows: activity &amp;gt; community &amp;gt; credibility &amp;gt; projects" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The more we feed the flywheel with education, support, and visibility, the less we need to push manually. Our role becomes about &lt;em&gt;momentum maintenance&lt;/em&gt;, not manual motion.&lt;/p&gt;




&lt;h2&gt;
  
  
  Mapping the developer journey at &lt;a href="https://docs.midnight.network/" rel="noopener noreferrer"&gt;Midnight&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;To make the flywheel spin faster, we have mapped the journey a developer typically takes within our ecosystem. This helps us design the right interventions at each stage, and it aligns with Phil Leggetter's &lt;a href="https://www.leggetter.co.uk/aaarrrp/" rel="noopener noreferrer"&gt;&lt;strong&gt;AAARRRP framework&lt;/strong&gt;&lt;/a&gt; (Awareness, Acquisition, Activation, Retention, Referral, Revenue, Product) used across DevRel and growth teams.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Stage&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Midnight Journey&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;AAARRRP Phase&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;First Touch&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Social, talks, blogs, conferences&lt;/td&gt;
&lt;td&gt;Awareness + Acquisition&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Education&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Tutorials, Discord livestreams, ZK workshops&lt;/td&gt;
&lt;td&gt;Activation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Documentation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Quickstarts, use-case driven docs, APIs + SDKs&lt;/td&gt;
&lt;td&gt;Retention&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Hackathon&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Build events, project feedback, prizes&lt;/td&gt;
&lt;td&gt;Retention + Referral&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Ecosystem Contributor&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;PRs, mentoring, writing, core feedback&lt;/td&gt;
&lt;td&gt;Referral + Product Growth&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This journey acts as both a map and a compass. It gives us clarity on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Where we’re losing developers&lt;/li&gt;
&lt;li&gt;Where we can accelerate outcomes&lt;/li&gt;
&lt;li&gt;How to tailor support, education, and incentives at each stage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We don’t just hope developers stick around. We &lt;strong&gt;design&lt;/strong&gt; the journey so they thrive at every stage.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbzocg6nh9qnt0gs2ypg8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbzocg6nh9qnt0gs2ypg8.png" alt="map of dev journey: first touch &amp;gt; education &amp;gt; docs &amp;gt; hackathon &amp;gt; ecosystem contributor" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What we’re learning (and unlearning)
&lt;/h2&gt;

&lt;p&gt;We’re early in this journey, and we’re experimenting constantly. Here are a few unexpected lessons from our DevRel systems design so far:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Education should drive contribution&lt;/strong&gt;, not just consumption
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docs should meet developers by intent&lt;/strong&gt;, not by section
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Example apps should collect feedback&lt;/strong&gt;, not just showcase use
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Support should default to public and persistent&lt;/strong&gt;, not private DMs
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Incentives should build reputation&lt;/strong&gt;, not just distribute prizes
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not everything from web2 works in web3. And sometimes, what didn’t work &lt;em&gt;there&lt;/em&gt; is what works &lt;em&gt;here&lt;/em&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Rethinking hackathons in web3
&lt;/h2&gt;

&lt;p&gt;I used to be skeptical of hackathons. I worried they were just prize-driven traffic spikes with no long-tail return. But at Midnight? They’re proving to be launchpads.&lt;/p&gt;

&lt;p&gt;We’re seeing multiple hackathon teams/projects go on to receive grants, and we’re now actively investing in the winners' journeys. This doesn’t mean we won’t keep evolving the format (we will), but it’s changed how I think about incentives, retention, and early-stage builder support across the board.&lt;/p&gt;




&lt;h2&gt;
  
  
  A system that feeds itself
&lt;/h2&gt;

&lt;p&gt;What we’re building now will shape the culture and sustainability of our developer community for years to come. If we only optimize for today (fix this doc, answer that question), we’ll burn out before we ever get to scale.&lt;/p&gt;

&lt;p&gt;So instead, we’re asking:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How can we structure support so that our community helps itself?
&lt;/li&gt;
&lt;li&gt;How can we collect feedback so that every new tutorial gets smarter?
&lt;/li&gt;
&lt;li&gt;How can we build with devs, not just for them?&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  An invitation to fellow web3 DevRel builders
&lt;/h2&gt;

&lt;p&gt;If you’re doing DevRel in a web3 ecosystem, especially an early one, I’d love to connect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What’s working for you? What isn’t? What does your flywheel look like?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let’s swap notes. Let’s compare scars. Let’s collaboratively build systems that make it easier for the next wave of builders to build what matters! &lt;/p&gt;

&lt;p&gt;-- ✨👩🏼‍💻 &lt;a href="https://x.com/LoLoCoding" rel="noopener noreferrer"&gt;&lt;strong&gt;lolocoding&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>devrel</category>
      <category>community</category>
    </item>
    <item>
      <title>We Belong in Web3</title>
      <dc:creator>Lauren Lee</dc:creator>
      <pubDate>Wed, 08 Mar 2023 18:14:21 +0000</pubDate>
      <link>https://forem.com/lolocoding/we-belong-in-web3-3143</link>
      <guid>https://forem.com/lolocoding/we-belong-in-web3-3143</guid>
      <description>&lt;p&gt;There's no denying that representation in the tech industry is &lt;em&gt;pretty terrible&lt;/em&gt;. I've been the only woman on countless engineering teams, and it frankly sucks. &lt;/p&gt;

&lt;p&gt;Not only does it suck, but the world has seen time after time how a lack of diversity has negatively impacted systems and designs. (Such as when Google's image recognition services made &lt;a href="https://www.wsj.com/articles/BL-DGB-42522" rel="noopener noreferrer"&gt;offensive classifications of minorities&lt;/a&gt;, Microsoft's chatbots &lt;a href="https://www.google.com/search?q=chatbots+adopted+hate+speech&amp;amp;oq=chatbots+adopted+hate+speech&amp;amp;aqs=chrome..69i57j33i160l2j33i299l2.290j0j4&amp;amp;sourceid=chrome&amp;amp;ie=UTF-8" rel="noopener noreferrer"&gt;adopted hate speech&lt;/a&gt;, and Amazon technology &lt;a href="https://www.nytimes.com/2019/01/24/technology/amazon-facial-technology-study.html" rel="noopener noreferrer"&gt;failed to recognize users with darker skin colors&lt;/a&gt;.) &lt;/p&gt;

&lt;p&gt;Initiatives like &lt;a href="https://girlswhocode.com/" rel="noopener noreferrer"&gt;Girls Who Code&lt;/a&gt; and &lt;a href="https://adadevelopersacademy.org/" rel="noopener noreferrer"&gt;Ada Developers Academy&lt;/a&gt; are working to change this and are dedicated to making tech more representative of society at large. But, it's an ongoing battle, as women still only hold &lt;a href="https://builtin.com/women-tech/women-in-tech-workplace-statistics" rel="noopener noreferrer"&gt;1/4 of tech-related jobs&lt;/a&gt;. &lt;/p&gt;

&lt;h2&gt;
  
  
  When it came to Web3/crypto,
&lt;/h2&gt;

&lt;p&gt;I always viewed it as just another boys club, a toxic niche - with limited utility - within the already adversarial wider tech space. Just another subset of tech where I didn't feel represented or welcome. When I heard about the Bitcoin conference &lt;a href="https://nypost.com/2018/02/05/bitcoin-conference-hosts-networking-party-at-strip-club/" rel="noopener noreferrer"&gt;renting out a strip club&lt;/a&gt; for a networking party a few years back, I rolled my eyes and decided it was just another area of tech probably not worth investing my time.  &lt;/p&gt;

&lt;p&gt;That all changed for me the day I stumbled upon a &lt;a href="https://www.youtube.com/watch?v=ouMK-Q9S7cc&amp;amp;t=111s" rel="noopener noreferrer"&gt;video&lt;/a&gt; of Gavin Wood, the founder of Polkadot and Ethereum, speaking about his vision of creating a better internet and society - one where technology is used to forge new ways to collaborate, organize, and trust one another. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Web3 is really about allowing people to come together and coordinate their efforts for something greater than the sum of its parts." &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And that really resonated with me. I soon learned about &lt;a href="https://polkadot.network/" rel="noopener noreferrer"&gt;Polkadot's&lt;/a&gt; green approach to uniting blockchains forming the basis for a truly interoperable decentralized web. It genuinely has the capability to transform technology and society itself, and I knew I wanted to be involved.  &lt;/p&gt;

&lt;p&gt;Yes, the same problems exist with representation/toxicity in Web3 as there are in tech in general. But we have to remember it is &lt;em&gt;still early days&lt;/em&gt; when it comes to Web3 and blockchain tech. &lt;/p&gt;

&lt;h3&gt;
  
  
  It's still possible to improve the community before it reaches a tipping point.
&lt;/h3&gt;

&lt;p&gt;Women and gender minorities can get involved now and help steer the direction. We are now, but we don't have to be minorities within the space.   &lt;/p&gt;

&lt;p&gt;And think of how powerful that could be if we get involved while things are still shaping! &lt;/p&gt;

&lt;p&gt;Sure, some bros have made some mistakes while at the helm so far, but why not jump in and course correct while we still can?  &lt;/p&gt;

&lt;h3&gt;
  
  
  It's not too late. It's still possible to help Web3 not repeat the mistakes of the wider tech industry.
&lt;/h3&gt;

&lt;p&gt;So that's what I'm doing. &lt;em&gt;That's why I'm now here in the Web3 space.&lt;/em&gt; I'm beyond inspired by Polkadot's mission and feel equally excited about being a part of it all.   &lt;/p&gt;

&lt;p&gt;Yes, I want to be a part of building the decentralized web, but more importantly, I want other women to join me.&lt;br&gt;&lt;br&gt;
I want to create space for them to feel welcome, included, and a part of that journey.&lt;/p&gt;

&lt;h3&gt;
  
  
  Let's close the gender gap in Web3.
&lt;/h3&gt;

&lt;p&gt;The new season of my podcast, &lt;a href="https://webelongpodcast.com/index.html" rel="noopener noreferrer"&gt;We Belong Here&lt;/a&gt;, has recently launched - and it's completely dedicated to celebrating the stories of those who are diversifying the Web3 space!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq2cdkxtpoh43vj60b8cf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq2cdkxtpoh43vj60b8cf.png" alt="We Belong Here Season 2" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  🎙Check out to &lt;a href="https://open.spotify.com/show/0YilCmVxb3t9dHAYCQoExC?si=d0f6cddcfa974fd0" rel="noopener noreferrer"&gt;We Belong Here&lt;/a&gt; today🎙
&lt;/h4&gt;

&lt;p&gt;I've always hated when people gatekeep and make tech seem cool by claiming how difficult it is to learn. There's, without a doubt, an opportunity to humanize Web3 and blockchain technology and make it more approachable.   &lt;/p&gt;

&lt;p&gt;As a prior high school teacher, I know how important it is to break down complex topics and make them engaging and accessible to all styles of learners.   &lt;/p&gt;

&lt;p&gt;I'm excited to share my learning journey with anyone curious about Web3 but have never felt welcomed or encouraged to learn more.  &lt;/p&gt;

&lt;h3&gt;
  
  
  I want to unlock the complexities.
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Share my discoveries.
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Invite newbies to ask questions.
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Share resources.
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Build community.
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Learn together!
&lt;/h3&gt;

&lt;p&gt;So join me. I promise to remove my ego, to be vulnerable, and to share my learnings with you - to document my confusion and my dumb questions - so you don't feel alone if you're confused too.  &lt;/p&gt;

&lt;p&gt;No Crypto Bros here, just me, a new mom who's stoked to build decentralized applications and who will teach you how to too.  &lt;/p&gt;

&lt;p&gt;-- 👩🏼‍💻Lauren (&lt;a href="https://lolocoding.com/" rel="noopener noreferrer"&gt;lolocoding.com&lt;/a&gt;) &lt;/p&gt;

</description>
      <category>programming</category>
      <category>blockchain</category>
      <category>web3</category>
      <category>wecoded</category>
    </item>
    <item>
      <title>Nevertheless, Lauren Focused on Community✨</title>
      <dc:creator>Lauren Lee</dc:creator>
      <pubDate>Thu, 04 Mar 2021 13:34:53 +0000</pubDate>
      <link>https://forem.com/lolocoding/nevertheless-lauren-focused-on-her-coding-community-13h8</link>
      <guid>https://forem.com/lolocoding/nevertheless-lauren-focused-on-her-coding-community-13h8</guid>
      <description>&lt;p&gt;Hi! My name is Lauren 👩🏼‍💻, I sometimes go by &lt;a href="https://twitter.com/LoLoCoding" rel="noopener noreferrer"&gt;@LoLoCoding&lt;/a&gt;, my pronouns are she/her, and I'm &lt;em&gt;so excited&lt;/em&gt; to know you. &lt;/p&gt;

&lt;p&gt;I realized today that I started my podcast, &lt;a href="https://webelongpodcast.com/" rel="noopener noreferrer"&gt;&lt;em&gt;We Belong Here: Lessons from Unconventional Paths to Tech&lt;/em&gt;&lt;/a&gt; exactly two years ago! &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz1041bfh432qrxu722pc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz1041bfh432qrxu722pc.png" alt="podcast thumbnail" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As a bootcamp grad and career changer myself, I remember &lt;strong&gt;craving community&lt;/strong&gt; and wanting &lt;strong&gt;to know that I was not alone in my journey to tech&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I was curious to learn how other people framed their untraditional routes to tech as an asset to recruiters, their future employers, and colleagues.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa84hjiz5mcv46g0poejd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa84hjiz5mcv46g0poejd.png" alt="new podcast" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What transferable skills did the ballerina/barista/lawyer/scientist/teacher turned coder bring to the table and how did they differentiate themselves from CS grads?   &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;My curiosity led to me asking a similar set of questions to my bootcamp classmates about their experiences in the industry. Slowly, I expanded beyond that network and began to record those conversations.&lt;/p&gt;

&lt;h2&gt;
  
  
  These are the questions I asked my guests:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Can you tell me more about the experiences you had before you entered the tech industry? Take me back in time and tell me what you studied in school or your early life passions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How did you decide to learn to code and how exactly did you learn it? &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What kept you from entering the tech industry before you did?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How has your past as &lt;code&gt;an xyz&lt;/code&gt; helped you today in your role as a developer?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Or rather, do you ever find yourself using the skills you learned from those experiences today? &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How do you spin your past and present it as an asset? &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Can you tell me about a time you felt like an outsider and how you have dealt with that feeling?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Can you share any life lessons you’ve learned from your transition to tech? &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Do you have any advice for those wanting to transition into tech that you can share? &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuah9253ncqzz695q3kgl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuah9253ncqzz695q3kgl.png" alt="I'm an outsider" width="800" height="752"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  All in an effort to create a community for career changers and those diversifying the tech industry.
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;So, in celebration of &lt;a href="https://www.internationalwomensday.com/" rel="noopener noreferrer"&gt;International Women’s Day&lt;/a&gt;, the two-year anniversary of the &lt;a href="https://webelongpodcast.com/" rel="noopener noreferrer"&gt;#WeBelongHere podcast&lt;/a&gt;, and the &lt;a href="https://dev.to/t/shecoded"&gt;#SheCoded&lt;/a&gt; movement, I thought I’d look back and share the lessons I’ve learned from those conversations and this incredible community:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ecszbu53otks35ul432.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ecszbu53otks35ul432.png" alt="do not apologize for your nontraditional background" width="800" height="789"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is &lt;em&gt;so much&lt;/em&gt; to learn in tech that it is easy to become overwhelmed by it all. Try to learn one thing a day. Even if it’s incredibly small.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc6xgncq2br3cot930ymo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc6xgncq2br3cot930ymo.png" alt="reframe the narrative" width="800" height="807"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Be kind and give yourself the freedom to take days off from that learning goal though. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1fshccyiolsa5m5kui21.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1fshccyiolsa5m5kui21.png" alt="code can empower us" width="800" height="811"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Keep a journal/log of what you’re learning.&lt;/p&gt;

&lt;p&gt;When you’re battling with a particularly tough bug in your code and/or facing feelings of imposter syndrome and self-doubt, you’ll have a tangible reminder of all the things you’ve achieved along the way.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6w3ellptdz5sme5qy3qh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6w3ellptdz5sme5qy3qh.png" alt="be kind to yourself" width="800" height="805"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Speaking of &lt;strong&gt;imposter syndrome&lt;/strong&gt;, let me just say this now, &lt;em&gt;we ALL face it&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;You’ll hear tons of people giving advice on how to combat, avoid, or overcome it. But frankly, I’ve learned to just own it. As in, to embrace it. To name it and move on throughout my day.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw46zcmoq8dp1dnshdzqv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw46zcmoq8dp1dnshdzqv.png" alt="nontraditional route is something to celebrate" width="800" height="664"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When those familiar feelings inevitably creep up and whisper the reminders that, I don’t belong or I’m not smart enough, I’ve decided to simply acknowledge the emotion, welcome her to the party, and get to work. I don’t let it overpower me - instead I allow myself to hold two truths at the same time: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I may be nervous or intimidated&lt;/li&gt;
&lt;li&gt;But I am &lt;em&gt;also&lt;/em&gt; capable and prepared &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuuxa2yan43cq02gj6t0z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuuxa2yan43cq02gj6t0z.png" alt="Alt Text" width="800" height="795"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Speaking of feeling nervous or out of my comfort zone, I’ve learned to stop hiding from them and that there is joy to found when sharing those emotions with others.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In 2020, I dove headfirst into Twitch and live streaming. I started a series called, &lt;a href="https://www.youtube.com/watch?v=S_a1V6JexOk&amp;amp;list=PLWYngsniPr_mKKnyYbcl46HIo3FFUsmUX" rel="noopener noreferrer"&gt;&lt;em&gt;Lauren Learns Things&lt;/em&gt;&lt;/a&gt; where I quite literally, tried to learn new things live each episode.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;A bunch of STRANGERS watching me debug or try to understand a new language??&lt;/em&gt; &lt;strong&gt;Talk about a vulnerable-making experience.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnbnhz14d57v4lc69zotg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnbnhz14d57v4lc69zotg.png" alt="Lauren Learns Things series on Twitch" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At first, it felt terrifying.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I was going to admit that I hadn’t ever written in PHP to everyone and try to build something alongside an expert? What was I thinking? Everyone would discover that I don’t know anything! &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But instead. I discovered the power of celebrating &lt;em&gt;what I don’t know&lt;/em&gt;. How incredibly fun it can be to say, "Yeah I don’t know what’s going on right now in the code, but let’s figure it out together! That sounds fun, doesn't it?!"&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/RM3Q4wvZRao"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;I learned how relationships can grow from that sort of honesty. &lt;/p&gt;

&lt;p&gt;When we model and share our vulnerabilities, authentic relationships can flourish from that honesty. &lt;/p&gt;

&lt;p&gt;I’ve learned to stop struggling alone. And that community is, frankly, everything. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fteylbnkmy8qq3nqs09yf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fteylbnkmy8qq3nqs09yf.png" alt="confidence is key" width="800" height="798"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’re learning to code, it’s more enjoyable to do it collaboratively! Twitter can be great for that, but there are also a ton of online meetup groups such as &lt;a href="https://www.womenwhocode.com/" rel="noopener noreferrer"&gt;Women Who Code&lt;/a&gt; that offer a sense of togetherness. &lt;/p&gt;

&lt;p&gt;I’ve decided to only surround myself with people who embrace my authentic self and remind myself daily that the journey of learning is a part of the fun.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs3ejkz3g8o0b2fr1ct5q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs3ejkz3g8o0b2fr1ct5q.png" alt="compare myself to me" width="800" height="798"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’ve learned to speak up when confused. And to not suffer silently.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqgu1xaukd1hss1q1u9dm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqgu1xaukd1hss1q1u9dm.png" alt="speak about yourself in a confident manner" width="800" height="796"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’ve embraced being a &lt;code&gt;forever-student&lt;/code&gt; &lt;/p&gt;

&lt;p&gt;Sure, it is ego-boosting and sometimes fun to be an expert, but it’s more rewarding to always be challenging myself to learn new things. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsrqfw43sqhlgodjsbx2n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsrqfw43sqhlgodjsbx2n.png" alt="let's try it" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It’s easy to get overwhelmed by all the things you don’t know, but if you spin it to see it all as just new and exciting opportunities to learn, I think it becomes less daunting.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fejino3xdv2wisyb6s2iq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fejino3xdv2wisyb6s2iq.png" alt="I am many things" width="800" height="726"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’ve learned that growth comes from being uncomfortable. From pushing ourselves and our community to step outside of our safe spaces and learning from one another and from our mistakes. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpjglan9lbpla4cnlocio.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpjglan9lbpla4cnlocio.png" alt="self doubt" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is room for all of us at the top. Collaboration over competition. Let’s lift one another up and create space and opportunity for each other. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz418alb3bdh9ruhi0iw9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz418alb3bdh9ruhi0iw9.png" alt="your journey will be different" width="800" height="807"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ultimately, I’m so grateful for the podcast and the community we’ve created as it has grown into a space where we can connect, share resources, mentor, be vulnerable, know that we're never alone, and build community. &lt;/p&gt;

&lt;p&gt;Be sure to &lt;a href="https://podcasts.apple.com/us/podcast/we-belong-here-lessons-from-unconventional-paths-to-tech/id1455784370" rel="noopener noreferrer"&gt;subscribe&lt;/a&gt; wherever you find your podcasts to never miss a future episode✨&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;And come join the &lt;a href="https://discord.gg/y8cp5FSyVX" rel="noopener noreferrer"&gt;We Belong Here Discord&lt;/a&gt; and be a part of the community! &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxlsb5i2piyoc8mkxox38.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxlsb5i2piyoc8mkxox38.jpeg" alt="#webelonghere stickers" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading! And for being my internet friend 💖 Happy #IWD2021 everyone 😊&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;📬If you want to be a guest on the pod, or know a career changer I should interview, be sure to &lt;a href="https://docs.google.com/forms/d/e/1FAIpQLSdI3TuoDJO09-YnE2L7GHQMXA2GJ_RbIHVxMx4afqY0Y6jKNg/viewform" rel="noopener noreferrer"&gt;NOMINATE&lt;/a&gt; them!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;--&lt;br&gt;
✨ Lauren Lee &lt;br&gt;
&lt;a href="https://twitter.com/LoLoCoding" rel="noopener noreferrer"&gt;@LoLoCoding&lt;/a&gt;&lt;/p&gt;

</description>
      <category>wecoded</category>
      <category>choosetochallenge</category>
      <category>womenintech</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>A Retrospective for Men in Tech</title>
      <dc:creator>Lauren Lee</dc:creator>
      <pubDate>Thu, 05 Mar 2020 13:11:05 +0000</pubDate>
      <link>https://forem.com/lolocoding/a-retrospective-for-men-in-tech-3i53</link>
      <guid>https://forem.com/lolocoding/a-retrospective-for-men-in-tech-3i53</guid>
      <description>&lt;p&gt;Happy International Women’s Day, everyone! Heck YES, a day to celebrate being a woman in tech!&lt;/p&gt;

&lt;p&gt;In honor of the holiday's spirit, there’s bound to be countless articles, videos, and Instagram captions about the #shecoded movement, on the topic of female empowerment, and what it in general means to be a #girlboss in tech in 2020. &lt;/p&gt;

&lt;p&gt;And while I’m obviously all for that content, I thought I’d author something for those who may be feeling a little left out today: the men! (I kid, I kid, &lt;em&gt;every other day is your day&lt;/em&gt; when you’re a man in tech!) &lt;/p&gt;

&lt;p&gt;Having existed in both a female-dominated industry as a high school English teacher for nearly a decade and now having spent the past few years in the exact opposite space as a software engineer and a woman in tech, I figured it’s about time to hold my very own retrospective on gender in tech. &lt;/p&gt;

&lt;p&gt;Allow me to briefly woman-splain a &lt;strong&gt;retrospective&lt;/strong&gt; for you, dear reader: retros are meetings held by software development teams at the end of either a sprint or project. They’re an opportunity for the team to evaluate its past working cycle and make actionable plans for improvements to be made in the future. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fq20rgnj2msmx26dg31f4.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fq20rgnj2msmx26dg31f4.jpg" alt="image of folks doing a retro" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thus I thought it’d be fun to reflect on the lessons and opportunities for improvement addressed to the majority of my fellow coders, colleagues, and peers in tech. Yes, that means you, gentlemen! &lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Retrospective for Men in Tech:&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Caveat:&lt;/em&gt; In this piece, I’m speaking for myself and not for women in general. These are my personal observations &amp;amp; it’s important to recognize my privilege as a cis white woman living in the US. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Start&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Note:&lt;/strong&gt; I know some of you are already doing some of these things. Thank you, and please, keep it up! Just shift these points to your own Continue column.&lt;/em&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Believing women. &lt;/li&gt;
&lt;li&gt;Calling out other men’s bullshit, even when it makes you uncomfortable. Actually, especially if it does.&lt;/li&gt;
&lt;li&gt;If a woman is in a tech space, assume that they’re technical, don’t assume they’re someone’s +1&lt;/li&gt;
&lt;li&gt;Believing that I belong here even if my interests don’t include video games. &lt;/li&gt;
&lt;li&gt;Looking for women at your company. In your org. On your team. If you don’t see them represented in one of those spaces, speak up, and ask why. &lt;/li&gt;
&lt;li&gt;Developing an awareness of intersectionality. And understanding that intersectional feminism is a thing. If you don’t yet, learn about it. We are more than just our identity as a woman.
&lt;/li&gt;
&lt;li&gt;Perceiving this sort of work as self-development and critical work. &lt;/li&gt;
&lt;li&gt;Identifying and finding other men that are doing this crucial work well and learn from them.&lt;/li&gt;
&lt;li&gt;When hunting for a new role, ask for stats on the team/company’s diversity and inclusion during your interviews.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Stop&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Thinking it's a compliment when you say, “You don't look like a software developer!” &lt;/li&gt;
&lt;li&gt;Asking the one woman on your team to be the voice of all women. I do not speak on behalf of us all. &lt;/li&gt;
&lt;li&gt;Assuming tech is a system of meritocracy and that if there aren’t women on your team that it’s because they didn’t earn a spot on the team. &lt;/li&gt;
&lt;li&gt;Putting the responsibility on us to fix your sexism.
&lt;/li&gt;
&lt;li&gt;Assuming I’ll do the front end when collaborating on a project (and associating front end with femininity). &lt;/li&gt;
&lt;li&gt;Expecting me to educate you on how to make the other woman on our team feel welcome. &lt;/li&gt;
&lt;li&gt;Making a joke in the lunchroom that I am the diversity hire on the engineering team. &lt;/li&gt;
&lt;li&gt;Assuming women in the office will organize birthday cards and presents. &lt;/li&gt;
&lt;li&gt;Taking up the talk space in meetings. And repeating what I said and framing it as your own idea.&lt;/li&gt;
&lt;li&gt;Using the word “female” or infantilizing terms for your coworkers like “girls”.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Continue&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Being an ally. &lt;/li&gt;
&lt;li&gt;Calling your coworker out when they use gendered language.&lt;/li&gt;
&lt;li&gt;Speaking up for me when I don’t have a seat at the table. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Alright, I'll acknowledge that this list may feel like a LOT of information to process! But, I hate to break this to you, but this is quite literally JUST the beginning. There's &lt;strong&gt;so much more&lt;/strong&gt; that could be said and complex nuances to be acknowledged. But I think for the sake of setting tangible goals and chunking learning opportunities into consumable action items, that’s all I’ll say today. I hope that there are at least a few pieces of actionable changes that you can put into place after reading this retro. &lt;/p&gt;

&lt;p&gt;Again, &lt;strong&gt;it is not a woman’s responsibility to educate men.&lt;/strong&gt; So I don’t feel the need to hold your hand through this journey with you. It’s on you. But genuinely, thank you for taking the time to read this and embark on an important path to equality. &lt;/p&gt;

&lt;p&gt;And if you're up for it and not &lt;em&gt;too ridiculously triggered&lt;/em&gt; after reading this piece, please feel free to reach out at &lt;a href="https://twitter.com/LoLoCoding" rel="noopener noreferrer"&gt;@lolocoding&lt;/a&gt;. Be sure to share actions you take to be a &lt;strong&gt;#shecodedally&lt;/strong&gt; and let's engage in some healthy dialogue and highlight the folks who are doing this sort of work every. single. damn. day. &lt;/p&gt;

</description>
      <category>wecoded</category>
      <category>inclusion</category>
      <category>womenintech</category>
      <category>career</category>
    </item>
    <item>
      <title>How to Build a Dashboard of Live Conversations with Flask, React, and Nexmo</title>
      <dc:creator>Lauren Lee</dc:creator>
      <pubDate>Wed, 25 Sep 2019 15:58:22 +0000</pubDate>
      <link>https://forem.com/vonagedev/how-to-build-a-dashboard-of-live-conversations-with-flask-react-and-nexmo-1kdh</link>
      <guid>https://forem.com/vonagedev/how-to-build-a-dashboard-of-live-conversations-with-flask-react-and-nexmo-1kdh</guid>
      <description>&lt;p&gt;Nexmo recently introduced the &lt;a href="https://developer.nexmo.com/conversation/overview" rel="noopener noreferrer"&gt;Conversation API&lt;/a&gt;. This API  enables you to have different styles of communication (voice, messaging, and video) and connect them all to each other.&lt;/p&gt;

&lt;p&gt;It's now possible for multiple conversations within an app to coincide and to retain context across all of those channels! Being able to record and work with the history of a conversation is incredibly valuable for businesses and customers alike so, as you can imagine, we're really excited about this.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Find out more of what can be done with programmable conversations at Vonage Campus, our first customer and developer conference taking place in San Francisco on October 29-30. It's free to attend, so &lt;a href="https://web.cvent.com/event/9bba9ffb-c9b5-4022-a9b8-3a8184c70aa8/register" rel="noopener noreferrer"&gt;request your invite now&lt;/a&gt;!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What The Dashboard Does
&lt;/h2&gt;

&lt;p&gt;This tutorial covers how to build a dashboard with Flask and React that monitors all current conversations within an &lt;a href="https://developer.nexmo.com/conversation/concepts/application" rel="noopener noreferrer"&gt;application&lt;/a&gt;. The goal is to showcase relevant data from the live conversations that are currently happening in real-time.&lt;/p&gt;

&lt;p&gt;When a single &lt;a href="https://developer.nexmo.com/conversation/concepts/conversation" rel="noopener noreferrer"&gt;conversation&lt;/a&gt; is selected from the list of current conversations, the connected &lt;a href="https://developer.nexmo.com/conversation/concepts/member" rel="noopener noreferrer"&gt;members&lt;/a&gt; and &lt;a href="https://developer.nexmo.com/conversation/concepts/event" rel="noopener noreferrer"&gt;events&lt;/a&gt; will be displayed. An individual member can then be selected to reveal even more information related to that particular &lt;a href="https://developer.nexmo.com/conversation/concepts/user" rel="noopener noreferrer"&gt;user&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.nexmo.com/wp-content/uploads/2019/09/5d894f3a32766539224729.gif" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.nexmo.com%2Fwp-content%2Fuploads%2F2019%2F09%2F5d894f3a32766539224729.gif" alt="dashboard gif" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What Does The Conversation API Do?
&lt;/h2&gt;

&lt;p&gt;The Nexmo &lt;a href="https://developer.nexmo.com/conversation/overview" rel="noopener noreferrer"&gt;Conversation API&lt;/a&gt; enables you to build conversation features where communication can take place across multiple mediums including IP Messaging, PSTN Voice, SMS, and WebRTC Audio and Video. The context of the conversations is maintained through each communication event taking place within a conversation, no matter the medium.&lt;/p&gt;

&lt;p&gt;Think of a conversation as a container of communications exchanged between two or more Users. There could be a single interaction or the entire history of all interactions between them.&lt;/p&gt;

&lt;p&gt;The API also allows you to create Events and Legs to enable text, voice, and video communications between two Users and store them in Conversations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Workflow of The Application
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.nexmo.com/wp-content/uploads/2019/09/flowofapp.png" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.nexmo.com%2Fwp-content%2Fuploads%2F2019%2F09%2Fflowofapp.png" alt="flow of app" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Create A Nexmo Application
&lt;/h3&gt;

&lt;p&gt;To work through this tutorial, you will need a &lt;a href="https://dashboard.nexmo.com/sign-up?utm_source=DEV_REL&amp;amp;utm_medium=github&amp;amp;utm_campaign=https://github.com/nexmo-community/nexmo-python-capi" rel="noopener noreferrer"&gt;Nexmo account&lt;/a&gt;. You can sign up now for free if you don’t already have an account.&lt;/p&gt;

&lt;p&gt;This tutorial also assumes that you will be running &lt;a href="https://ngrok.com/" rel="noopener noreferrer"&gt;Ngrok&lt;/a&gt; to run your &lt;a href="https://developer.nexmo.com/concepts/guides/webhooks" rel="noopener noreferrer"&gt;webhook&lt;/a&gt; server locally.&lt;/p&gt;

&lt;p&gt;If you are not familiar with Ngrok, please refer to our &lt;a href="https://www.nexmo.com/blog/2017/07/04/local-development-nexmo-ngrok-tunnel-dr/" rel="noopener noreferrer"&gt;Ngrok tutorial&lt;/a&gt; before proceeding.&lt;/p&gt;

&lt;p&gt;First, you will need to create a Nexmo Application:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nexmo app:create &lt;span class="s2"&gt;"Conversation App"&lt;/span&gt; http://demo.ngrok.io:3000/webhooks/answer http://demo.ngrok.io:3000/webhooks/event &lt;span class="nt"&gt;--keyfile&lt;/span&gt; private.key
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next, assuming you have already rented a Nexmo Number (&lt;code&gt;NEXMO_NUMBER&lt;/code&gt;), you can link your Nexmo Number with your application via the command line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nexmo &lt;span class="nb"&gt;link&lt;/span&gt;:app NEXMO_NUMBER APP_ID
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Clone &lt;a href="https://github.com/nexmo-community/nexmo-python-capi" rel="noopener noreferrer"&gt;Git Repo&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;To get this app up and running on your local machine, start by cloning &lt;a href="https://github.com/nexmo-community/nexmo-python-capi" rel="noopener noreferrer"&gt;this repository&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/nexmo-community/nexmo-python-capi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then install the dependencies:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copy the example &lt;code&gt;.env.example&lt;/code&gt; file with the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cp&lt;/span&gt; .env.example &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; .env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open that new &lt;code&gt;.env&lt;/code&gt; file and fill in the Application ID and path to your &lt;code&gt;private.key&lt;/code&gt; that we just generated when creating our Nexmo Application.&lt;/p&gt;

&lt;h3&gt;
  
  
  Flask Backend
&lt;/h3&gt;

&lt;p&gt;The important doc to inspect within our Flask files is the &lt;code&gt;server.py&lt;/code&gt; one as it establishes all of the different endpoints the &lt;code&gt;Conversation API&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The function, &lt;code&gt;make_capi_request()&lt;/code&gt; connects to Nexmo and authenticates the application:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;make_capi_request&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_uri&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
   &lt;span class="n"&gt;nexmo_client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nexmo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
       &lt;span class="n"&gt;application_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;APPLICATION_ID&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;private_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;PRIVATE_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
   &lt;span class="p"&gt;)&lt;/span&gt;
   &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
       &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nexmo_client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;_jwt_signed_get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;request_uri&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;api_uri&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
   &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="n"&gt;nexmo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;errors&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ClientError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
       &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;

   &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;jsonify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Underneath that, we create the necessary routes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nd"&gt;@app.route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;index&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;  &lt;span class="c1"&gt;# Index page structure
&lt;/span&gt;   &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;render_template&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;index.html&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nd"&gt;@app.route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/conversations&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;conversations&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;  &lt;span class="c1"&gt;# List of conversations
&lt;/span&gt;   &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;make_capi_request&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_uri&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/beta/conversations&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;span class="nd"&gt;@app.route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/conversation&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;conversation&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;&lt;span class="c1"&gt;# Conversation detail
&lt;/span&gt;   &lt;span class="n"&gt;cid&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;cid&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
   &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;make_capi_request&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_uri&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/beta/conversations/&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;cid&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nd"&gt;@app.route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;user&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;  &lt;span class="c1"&gt;# User detail
&lt;/span&gt;   &lt;span class="n"&gt;uid&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;uid&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
   &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;make_capi_request&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_uri&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/beta/users/&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;uid&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nd"&gt;@app.route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/events&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;events&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="c1"&gt;# Event detail
&lt;/span&gt;   &lt;span class="n"&gt;cid&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;cid&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
   &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;make_capi_request&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_uri&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/beta/conversations/&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;cid&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;/events&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once authenticated, each of these routes accesses the Conversation API based on the Application ID and eventually the Conversation or User ID.&lt;/p&gt;

&lt;h3&gt;
  
  
  React Frontend
&lt;/h3&gt;

&lt;p&gt;We’ll make use of React's ability to break our code into modularized and reusable components. The components we’ll need are:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.nexmo.com/wp-content/uploads/2019/09/components.png" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.nexmo.com%2Fwp-content%2Fuploads%2F2019%2F09%2Fcomponents.png" alt="components - react tree" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At the &lt;code&gt;App.js&lt;/code&gt; level, notice that the &lt;code&gt;"/conversations"&lt;/code&gt; endpoint is called within the constructor. Meaning that if there are any current conversations within the application, they are immediately displayed onto the page.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/conversations&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;
  &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setState&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;conversations&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;_embedded&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;conversations&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="nx"&gt;err&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The user then will have the option to select one of the conversations from the list and the meta details of that conversation, such as name and timestamp, will be displayed.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;article&lt;/span&gt; &lt;span class="nx"&gt;className&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;message is-info&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt; &lt;span class="nx"&gt;className&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;message-header&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;p&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;conversation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;uuid&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/p&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt; &lt;span class="nx"&gt;className&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;message-body&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;ul&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;conversation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/li&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;ttl&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;conversation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;properties&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ttl&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/li&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Timestamp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;conversation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;created&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/li&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/ul&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/article&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Tabs&lt;/span&gt;
    &lt;span class="nx"&gt;members&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;conversation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;members&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="nx"&gt;events&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;events&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="nx"&gt;conversation&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;conversation&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Notice that once a particular &lt;code&gt;conversation&lt;/code&gt; has been selected two tabs become visible: &lt;code&gt;Events&lt;/code&gt; and &lt;code&gt;Members&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Members&lt;/code&gt; is set as the default state, meaning that is displayed first. It is at this point that the &lt;code&gt;"/conversation"&lt;/code&gt; and &lt;code&gt;"/events"&lt;/code&gt; endpoints are called. Using the &lt;code&gt;cid&lt;/code&gt; that is passed within the state, the details of the current members and events are now available.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;refreshMembers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/conversation?cid=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;conversation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;uuid&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;results&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setState&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;members&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;members&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="nx"&gt;refreshEvents&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/events?cid=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;conversation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;uuid&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;results&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setState&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;events&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;MembersList.js&lt;/code&gt; component will call the &lt;code&gt;/user&lt;/code&gt; endpoint to retrieve even more data on that particular user, which then is shown within the &lt;code&gt;MemberDetail.js&lt;/code&gt; component.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;showMemberDetails&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;user_id&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/user?uid=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;user_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;results&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setState&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;member&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Connect It All Together
&lt;/h3&gt;

&lt;p&gt;To start up the backend, run the Flask command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;FLASK_APP&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;server.py &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; flask run
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And in another tab within your terminal, run the React command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;frontend-react &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; npm start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open up &lt;code&gt;http://localhost:3000&lt;/code&gt; in a browser, and your app will be up and running!&lt;/p&gt;

&lt;p&gt;Any conversations that are currently running within that connected application will now be visible within this dashboard. &lt;/p&gt;

&lt;p&gt;Congrats! You've now created an application with Flask, React, and Nexmo's &lt;a href="https://developer.nexmo.com/conversation" rel="noopener noreferrer"&gt;Conversation API&lt;/a&gt;. You now can now monitor all sorts of things related to your application's conversations. We encourage you to continue playing with and exploring this API's capabilities. &lt;/p&gt;

&lt;h3&gt;
  
  
  Contributions And Next Steps
&lt;/h3&gt;

&lt;p&gt;At Nexmo, the &lt;a href="https://developer.nexmo.com/conversation" rel="noopener noreferrer"&gt;Conversation API&lt;/a&gt; is currently in beta and is ever-evolving based on your input and feedback. As always, we are happy to help with any questions in our &lt;a href="https://developer.nexmo.com/community/slack" rel="noopener noreferrer"&gt;community slack&lt;/a&gt; or &lt;a href="mailto:support@nexmo.com"&gt;support@nexmo.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://www.nexmo.com/blog/2019/09/24/how-to-build-a-dashboard-of-live-conversations-with-flask-and-react-dr" rel="noopener noreferrer"&gt;How to Build a Dashboard of Live Conversations with Flask and React&lt;/a&gt; appeared first on &lt;a href="https://www.nexmo.com/blog" rel="noopener noreferrer"&gt;Nexmo Developer Blog&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>flask</category>
      <category>react</category>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
