# Adaptive Cards, what else can you use them for?

> Many people think Adaptive Cards is something Microsoft invented to be used in MS Teams or Power Platform and the alike and while that is totally true it's only half the picture. Adaptive Cards and the technology behind, including the templating engine, can be used for so much more!

2022-08-30 · Tim Cadenbach · https://www.tcdev.de/blog/adaptive-cards-what-else-can-you-use-them-for/

---

<div class="is it iu iv iw">
<div class="">
<h1 id="7735" class="pw-post-title ix iy iz bo ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv gz" data-selectable-paragraph="">Adaptive Cards, what else can you use them for?</h1>
</div>
<p id="0185" class="pw-post-body-paragraph jw jx iz jy b jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt is gz" data-selectable-paragraph="">As usual, if you don&rsquo;t know what Adaptive Cards are you probably want to read a bit about them first. The easiest start is by just going to<span>&nbsp;</span><a class="au ku" href="http://www.adaptivecards.io/" rel="noopener ugc nofollow" target="_blank">www.adaptivecards.io</a>, play a bit with the designer there, have a look at the samples and get a feeling what all this is about. Just come back here whenever you&rsquo;re done and don&rsquo;t forget me :)</p>
<p id="ad30" class="pw-post-body-paragraph jw jx iz jy b jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt is gz" data-selectable-paragraph="">Many people think Adaptive Cards is something Microsoft invented to be used in MS Teams or Power Platform and the alike and while that is totally true it's only half the picture. Adaptive Cards and the technology behind, including the templating engine, can be used for so much more!</p>
</div>
<div class="o dd kv kw ie kx" role="separator"><span class="ky gv cu kz la lb"></span><span class="ky gv cu kz la lb"></span><span class="ky gv cu kz la"></span></div>
<div class="is it iu iv iw">
<p id="e7ca" class="pw-post-body-paragraph jw jx iz jy b jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt is gz" data-selectable-paragraph="">Let's just have a closer look at what the website says here:</p>
<blockquote class="lc ld le">
<p id="d25e" class="jw jx lf jy b jz ka kb kc kd ke kf kg lg ki kj kk lh km kn ko li kq kr ks kt is gz" data-selectable-paragraph="">Adaptive Cards are platform-agnostic snippets of UI, authored in JSON, that apps and services can openly exchange. When delivered to a specific app, the JSON is transformed into native UI that automatically adapts to its surroundings.</p>
</blockquote>
<p id="19cc" class="pw-post-body-paragraph jw jx iz jy b jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt is gz" data-selectable-paragraph="">That, to me, doesn&rsquo;t necessarily say anything about any Microsoft product as such. No! You can use it in your apps, your websites, your mobile apps. Basically, wherever you like and everything you need to do so is included in the library itself on Github, NPM or Nuget. (https://www.github.com/microsoft/adaptivecards)</p>
<p id="db26" class="pw-post-body-paragraph jw jx iz jy b jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt is gz" data-selectable-paragraph="">In the last year, as part of my work for Teamwork.com we used Adaptive Cards for various things. Our MS Teams App (available in Beta, just ask us ) is using cards for various notifications and UI pieces.</p>
<p id="77e5" class="pw-post-body-paragraph jw jx iz jy b jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt is gz" data-selectable-paragraph="">The Visual Studio Code Extension is fully made with Cards and was showcased during Build and MS Ignite last year. If you want to have a look, here it is:<br /><a class="au ku" href="https://github.com/Teamwork/vscode-projects" rel="noopener ugc nofollow" target="_blank">https://github.com/Teamwork/vscode-projects</a><br /><a class="au ku" href="https://marketplace.visualstudio.com/items?itemName=Teamwork.twp" rel="noopener ugc nofollow" target="_blank">https://marketplace.visualstudio.com/items?itemName=Teamwork.twp</a></p>
<blockquote class="lc ld le">
<p id="f70f" class="jw jx lf jy b jz ka kb kc kd ke kf kg lg ki kj kk lh km kn ko li kq kr ks kt is gz" data-selectable-paragraph="">Isn&rsquo;t that still a Microsoft product?</p>
</blockquote>
<p id="09fd" class="pw-post-body-paragraph jw jx iz jy b jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt is gz" data-selectable-paragraph="">So&hellip; yea someone said to me on Ignite, its great yea but VSCode is still a Microsoft product. Even if VS Code is Electron-based, yea maybe true. I get that. However, I have more to talk about for you :)</p>
<p id="416a" class="pw-post-body-paragraph jw jx iz jy b jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt is gz" data-selectable-paragraph="">This is a screenshot of one of our upcoming desktop apps. Written in Electron and vue.js. We used Adaptive Cards here to show some file details and allow adding comments on files.</p>
<figure class="lk ll lm ln gr lo gf gg paragraph-image">
<div role="button" class="lp lq ct lr ea ls" tabindex="0">
<div class="gf gg lj"><img alt="" class="ea lt lu" src="/blog/img/legacy/adaptive-cards-what-else-can-you-use-them-for-inline-1.jpg" width="700" height="455" role="presentation" /></div>
</div>
<figcaption class="lv ej gh gf gg lw lx bo b bp bq fc" data-selectable-paragraph="">Teamwork Document Editor V2 using Adaptive Cards for a few features</figcaption>
</figure>
<p id="fd18" class="pw-post-body-paragraph jw jx iz jy b jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt is gz" data-selectable-paragraph="">Its again, similar to VS Code obviously an Electron app, the same thing again and before someone says anything, let's get a bit crazier :)</p>
</div>
<div class="o dd kv kw ie kx" role="separator"><span class="ky gv cu kz la lb"></span><span class="ky gv cu kz la lb"></span><span class="ky gv cu kz la"></span></div>
<div class="is it iu iv iw">
<h1 id="0169" class="ly lz iz bo ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv gz" data-selectable-paragraph="">Why not build a somewhat full app UI with basically just Adaptive Cards?</h1>
<p id="c616" class="pw-post-body-paragraph jw jx iz jy b jz mw kb kc kd mx kf kg kh my kj kk kl mz kn ko kp na kr ks kt is gz" data-selectable-paragraph="">Yeah right, sounds crazy, some people might not even think that's doable but here we are, have a look at these two screenshots:</p>
<figure class="lk ll lm ln gr lo gf gg paragraph-image">
<div role="button" class="lp lq ct lr ea ls" tabindex="0">
<div class="gf gg nb"><img alt="" class="ea lt lu" src="/blog/img/legacy/adaptive-cards-what-else-can-you-use-them-for-inline-2.png" width="700" height="233" role="presentation" /></div>
</div>
<figcaption class="lv ej gh gf gg lw lx bo b bp bq fc" data-selectable-paragraph="">Person listing, made with just Bootstrap and Cards</figcaption>
</figure>
<figure class="lk ll lm ln gr lo gf gg paragraph-image">
<div role="button" class="lp lq ct lr ea ls" tabindex="0">
<div class="gf gg nc"><img alt="" class="ea lt lu" src="/blog/img/legacy/adaptive-cards-what-else-can-you-use-them-for-inline-3.png" width="700" height="490" role="presentation" /></div>
</div>
<figcaption class="lv ej gh gf gg lw lx bo b bp bq fc" data-selectable-paragraph="">Adaptive Card used to grab person details</figcaption>
</figure>
<p id="153c" class="pw-post-body-paragraph jw jx iz jy b jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt is gz" data-selectable-paragraph="">In the last roughly one hour I build an example app you can see on the screenshots. The only things this app is using are Bootstrap, Vue.JS and Adaptive Cards. There&rsquo;s no input field or anything in the code itself, Vue.js is only used for routing and data/state management, Bootstrap for grid and positioning.</p>
<p id="4bd6" class="pw-post-body-paragraph jw jx iz jy b jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt is gz" data-selectable-paragraph="">The app is mainly made with two cards, one for the list view and the other one for edit/create.</p>
<p id="b721" class="pw-post-body-paragraph jw jx iz jy b jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt is gz" data-selectable-paragraph="">List Card:<span>&nbsp;</span><a class="au ku" href="https://github.com/DeeJayTC/AdaptiveCardsPeopleApp/blob/master/AdaptiveCardsVuePeople/src/assets/personCard.json" rel="noopener ugc nofollow" target="_blank">https://github.com/DeeJayTC/AdaptiveCardsPeopleApp/blob/master/AdaptiveCardsVuePeople/src/assets/personCard.json</a></p>
<p id="a15d" class="pw-post-body-paragraph jw jx iz jy b jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt is gz" data-selectable-paragraph="">Edit Card:<span>&nbsp;</span><a class="au ku" href="https://github.com/DeeJayTC/AdaptiveCardsPeopleApp/blob/master/AdaptiveCardsVuePeople/src/assets/personCreate.json" rel="noopener ugc nofollow" target="_blank">https://github.com/DeeJayTC/AdaptiveCardsPeopleApp/blob/master/AdaptiveCardsVuePeople/src/assets/personCreate.json</a></p>
<p id="c369" class="pw-post-body-paragraph jw jx iz jy b jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt is gz" data-selectable-paragraph="">We can use the same card for edit and create as the templating engine will omit empty values and just show the placeholder, when showing the create modal we sent no data and the templating engine automatically just shows the placeholder and no value.</p>
<pre class="language-javascript"><code>{
    "type": "Input.Text",
    "placeholder": "Person full name",
    "value": "{$root.displayName}",
    "id": "name"
},</code></pre>
<figure class="lk ll lm ln gr lo">
<div class="m l ct">
<div class="ys ne l"></div>
<div class="ys ne l"></div>
</div>
</figure>
<p id="900f" class="pw-post-body-paragraph jw jx iz jy b jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt is gz" data-selectable-paragraph="">But lets just not talk about stuff, demo&rsquo;s are the best proof, just have a look at this, the full app available and working online:<span>&nbsp;</span><a class="au ku" href="https://deejaytc.github.io/AdaptiveCardsPeopleApp/" rel="noopener ugc nofollow" target="_blank">https://deejaytc.github.io/AdaptiveCardsPeopleApp/</a></p>
<p id="974f" class="pw-post-body-paragraph jw jx iz jy b jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt is gz" data-selectable-paragraph="">Full source available here:<span>&nbsp;</span><a class="au ku" href="https://github.com/DeeJayTC/AdaptiveCardsPeopleApp" rel="noopener ugc nofollow" target="_blank">https://github.com/DeeJayTC/AdaptiveCardsPeopleApp</a></p>
<h2 id="f409" class="nf lz iz bo ma ng nh ni me nj nk nl mi kh nm nn mm kl no np mq kp nq nr mu ns gz" data-selectable-paragraph="">Now, why am I talking to you about this?</h2>
<p id="094e" class="pw-post-body-paragraph jw jx iz jy b jz mw kb kc kd mx kf kg kh my kj kk kl mz kn ko kp na kr ks kt is gz" data-selectable-paragraph="">Well, as said in the beginning, Adaptive Cards and everything related is a lot more than just a technology used for Microsoft products. It's highly flexible and can be used for a ton of things. This article pretty much should just explain that you can do more with Cards than you might have thought by now.</p>
<p id="183f" class="pw-post-body-paragraph jw jx iz jy b jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt is gz" data-selectable-paragraph="">Just start thinking&hellip;what else can I use this for? I&rsquo;m sure you&rsquo;ll find a few great things.</p>
<p id="8d25" class="pw-post-body-paragraph jw jx iz jy b jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt is gz" data-selectable-paragraph="">Let me know what you use Cards for today and let's talk!</p>
</div>
