Internal Phone Book as a Teams App — Developed with Replit

    Back to Blog
    Replit & Vibe Coding

    Internal Phone Book as a Teams App — Developed with Replit

    Case study of an internal Teams contact directory with SSO, CSV export, and SharePoint backups, including security and operational limits.

    July 22, 20265 min read read
    Marcel Haas

    Marcel Haas

    Solution Architect, CEO

    marcel.haas@cnext.ch

    Quick Answer

    Case study of an internal Teams contact directory with SSO, CSV export, and SharePoint backups, including security and operational limits.

    An internal phone book sounds simple. In practice, it needs to be available where staff already work: Microsoft Teams.

    A tailored web application was therefore developed as a Teams tab for Maurus Schifferli's firm.

    Technical review date: 8 September 2026. The SSO description follows Microsoft's Teams tab SSO documentation. Statements about Replit are qualified using its documentation on project geography and the shared responsibility model.

    Starting point and functions

    The firm manages employees, partners, and project contributors with contact details, roles, teams, and project relationships. The app allows users to search and filter contacts, open Teams actions where supported by the client and policy, assign projects, and export all or filtered records to a BOM-encoded CSV file.

    Daily and manual exports can be stored in SharePoint and an available export can be used for restoration. A backup reduces risk but cannot guarantee “no data loss”. Retention, encryption, access, restore testing, and deletion need a documented operating procedure.

    The app is embedded as a Teams tab. Feature behaviour must be tested in the supported desktop, browser, and mobile clients rather than promised for every platform without qualification.

    Teams SSO is not the whole access-control model

    With Teams SSO, the tab requests a Microsoft Entra access token through the Teams JavaScript SDK. The backend must validate its signature, issuer, audience, expiry, and required permissions, then perform its own role-based authorisation for each operation.

    A valid token does not make an application inaccessible from outside Teams by itself. Exposure also depends on publishing, network, and application configuration. Separate user passwords may be unnecessary, but identity lifecycle and application permissions still need active administration.

    Development and operation

    The application uses React/Vite, Express with Drizzle ORM, and PostgreSQL. Replit was used as the development environment. The production host and data location are separate architecture choices.

    Replit documents an EU project geography for published applications, but not a Swiss region. Workspace geography and publishing geography are separate. Under Replit's shared responsibility model, the operator remains responsible for application logic, permissions, privacy notices, dependencies, monitoring, and app-specific testing.

    What the project demonstrates

    An embedded app can reduce searching and context switches. “Production-ready” is not a property of the development tool alone; it requires verified authentication and authorisation, privacy controls, monitoring, tested recovery, and a maintained operating model.

    ReplitVibe CodingTeamsSchweiz
    Teilen:

    This article was created with the support of AI and reviewed by our team. We use AI tools to produce high-quality content efficiently — the editorial responsibility always lies with our experts.

    Marcel Haas

    Marcel Haas

    Solution Architect, CEO

    6x Microsoft Applied Skills

    Have questions about this topic?

    Our experts are happy to advise you – free and without obligation.