Library / SDK
OfficeDev/Microsoft-Teams-Samples avatar
OfficeDev/Microsoft-Teams-Samples

Microsoft Teams Samples: Choosing Teams SDK, TeamsJS, and Archived Code

Welcome to the Microsoft Teams samples repository. Here you will find task-focused samples in C#, JavaScript and TypeScript to help you get started with the Microsoft Teams App!

1,411 stars927 forksUnknownMIT

At a glance

What is it?
OfficeDev/Microsoft-Teams-Samples is a collection of focused examples for building apps and agents inside Microsoft Teams with Teams SDK and TeamsJS. Its main adoption issue is choosing the current SDK samples while recognizing that much of the repository contains archived implementations built with deprecated frameworks.
Who is it for?
Teams app developers should start with the current Teams SDK or TeamsJS directories, while teams operating an existing Bot Framework SDK agent should use the official Teams SDK migration guide before selecting a replacement sample. The first verification should be the selected sample's own README, especially its framework, supported Teams capabilities, setup instructions, and whether it uses a deprecated dependency.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 12 days ago.
What is it written in?
GitHub does not report a main language for this repository.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What OfficeDev/Microsoft-Teams-Samples Covers

OfficeDev/Microsoft-Teams-Samples addresses a specific problem: developers need working examples before they can decide how a Teams app or agent should interact with the Teams host. The repository does not present one unified application. Instead, it groups task-focused examples across Teams SDK, TeamsJS, and an archived collection. This makes it useful when a developer needs a reference for a particular capability or wants to inspect Microsoft-maintained approaches in C#, JavaScript, or TypeScript.

The intended audience is developers building collaborative applications and agents for Microsoft Teams. Teams SDK targets server-side application logic and offers Teams-specific abstractions, native AI capabilities, and a stated reduction in boilerplate and external dependencies. TeamsJS targets the client side of an app hosted inside Teams. Its browser-facing APIs connect application code to the host so the interface can participate in Teams-specific, contextual experiences.

That division matters for adoption. A developer looking only for a Teams UI capability may start in the wrong collection, while a developer looking for an agent implementation may need the Teams SDK directory. The repository README describes a curated set of newer Teams SDK samples and a larger TeamsJS catalog, but it does not claim that the two technologies are interchangeable.

How TeamsSDK and TeamsJS Samples Fit Together

Based on the repository layout, the application path is split between a backend represented by Teams SDK examples and a client represented by TeamsJS examples. A Teams SDK sample can establish application or agent behavior on the server. A TeamsJS sample can use client-side APIs to integrate its interface with the Microsoft Teams host. The README does not provide one universal data-flow diagram or claim that every sample contains both sides, so individual sample folders are the authoritative starting point.

TeamsJS is the more direct mechanism for host integration. Its APIs expose context and interaction capabilities to code running within Teams, allowing a page to request platform behavior rather than treating Teams as an ordinary browser. Teams SDK provides separate abstractions for building the application or agent itself, including stated support for native AI capabilities.

The repository also includes `samples/tab-add-in-combined/`, which indicates at least one combined sample area, but the README does not describe its architecture or setup. It would be unsafe to assume that it represents the required composition of all current samples. Developers should inspect the README inside the exact sample they intend to copy, because the top-level repository is an index of examples rather than a shared runtime with one configuration.

Current Teams SDK Samples and the Archived Collection

The current focus is the `samples/TeamsSDK/` directory, which the README describes as eight condensed examples built with Teams SDK. The archived collection contains 100+ older samples and is available within the Teams SDK folder. That scale difference can make the archive useful for finding implementation ideas, but it also raises the cost of evaluating dependencies and platform compatibility.

The most important warning concerns the Bot Framework SDK. The repository states that some samples using it are now archived and that the SDK is deprecated. Existing customers may continue using it without disruption, but support tickets are no longer serviced as of December 31, 2025. The repository directs existing agents toward Teams SDK and links to a migration guide covering core changes and migration steps.

This creates a clear selection boundary. A new project should not begin with an archived Bot Framework SDK sample merely because its directory contains more examples. The README's distinction between current SDK samples and archived material is more relevant than the total number of available folders. An existing application may still require continuity during migration, but adopting a deprecated sample as the starting point for new work would carry forward maintenance work that the repository itself warns about.

Finding a First Sample Without an Install Command

The top-level README does not provide an installation command for the repository as a whole. That is reasonable for a sample collection because each example can have its own language, package manager, credentials, and Teams configuration. The README directs developers to the Teams Platform developer documentation and states that every sample contains a README describing its scenario and platform features. No root-level command can therefore be copied without guessing.

A first use begins by choosing the technology that matches the required side of the application. Use the Teams SDK collection for a sample centered on application or agent behavior. Use TeamsJS when the immediate requirement is a client-side Teams host integration. If an existing agent uses Bot Framework SDK, consult the linked Teams SDK migration guide before trying to treat an archived sample as current guidance.

After selecting a directory, read its local README before copying files. The repository does not document one shared install command, manifest, environment variable, authentication method, or startup command. That means the correct first-use check is whether the sample README identifies a current SDK and explains the exact setup needed for its own scenario.

TeamsJS Catalog Versus the Teams SDK Surface

TeamsJS is the closest documented alternative within this repository for teams whose immediate need is a browser-side Teams experience. The approach differs from a Teams SDK sample. TeamsJS calls client-side APIs that communicate with the Teams host, while Teams SDK provides application-side abstractions and native AI capabilities for apps and agents. Neither description makes one a universal replacement for the other.

The README lists 58 TeamsJS samples, compared with eight newer condensed Teams SDK samples. The larger TeamsJS catalog may offer more task-specific starting points, but repository count does not establish quality or suitability. The selection should follow the required behavior: choose TeamsJS for host-facing client integration, and choose Teams SDK when the sample needs its application or agent model.

This distinction is especially relevant for developers who interpret the term Microsoft Teams app broadly. A tab interface, contextual interaction, and server-side agent are separate concerns in the documentation. Because the README does not provide compatibility mappings between individual samples, adoption decisions must be checked folder by folder rather than inferred from the repository title.

Maintenance, Licensing, and Upgrade Boundaries

The repository's last push was on 2026-10-13. It is not archived, and the available release record contains no GitHub releases. This means upgrades may arrive through repository commits rather than a release package documented by the repository. The repository is licensed under MIT, so source reuse is governed by that license, but this review does not interpret its legal implications.

The larger maintenance concern is dependency age. Bot Framework SDK is deprecated, support tickets stopped on December 31, 2025, and affected samples are archived. A developer copying one of those examples must account for migration and support costs rather than treating repository-level activity as a guarantee that every included sample is current.

The README also reports that issues and bugs in the SDK can be filed directly on the relevant SDK repository, where the engineering team is expected to respond. That division matters when a sample fails. The top-level repository indexes scenarios, while Teams SDK has separate .NET, TypeScript, and Python repositories, and TeamsJS has its own repository. Before investing in a sample, verify that the underlying SDK is the one the README recommends rather than an archived framework.

Editorial conclusion

Teams app developers should start with the current Teams SDK or TeamsJS directories, while teams operating an existing Bot Framework SDK agent should use the official Teams SDK migration guide before selecting a replacement sample. The first verification should be the selected sample's own README, especially its framework, supported Teams capabilities, setup instructions, and whether it uses a deprecated dependency. This repository is suitable as a starting point for scenario discovery, but it is not a single installable framework or an application that users deploy unchanged.

Frequently asked questions

Where should a developer start in Microsoft-Teams-Samples?

The README separates current Teams SDK examples, TeamsJS examples, and archived samples. Choose `samples/TeamsSDK/` for current SDK-based app or agent examples and `samples/TeamsJS/` for client-side Teams host integrations, then read that sample's local README.

Can developers use the archived Microsoft Teams samples for new projects?

The repository warns that Bot Framework SDK is deprecated and identifies affected samples as archived. Existing customers may continue without disruption, but new projects should use the current Teams SDK samples or follow the linked Teams SDK migration guide.

How is Microsoft Teams Samples licensed?

The repository lists the MIT license. Review the repository's `LICENSE` file for the applicable license text when reusing or redistributing sample code.

Official sources

  1. Issues
  2. License: MIT
  3. OfficeDev/Microsoft-Teams-Samples on GitHub
  4. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/officedev-microsoft-teams-samples.svg)](https://hysenlabs.com/projects/officedev-microsoft-teams-samples)

Was this useful?