Internal Phone Book as a Microsoft Teams App — Built with Replit

    Back to Blog
    Replit & Vibe Coding

    Internal Phone Book as a Microsoft Teams App — Built with Replit

    For a Swiss landscape architecture firm, we built an internal contact directory as a Microsoft Teams tab using Replit — with Teams SSO, CSV export, and automatic SharePoint backups.

    July 22, 20265 min read read
    Marcel Haas

    Marcel Haas

    Solution Architect, CEO

    marcel.haas@cnext.ch
    20+ Jahreexperience·6×Microsoft Applied Skills·SharePoint & Microsoft Copilot
    6x Microsoft Applied Skills

    Quick Answer

    For a Swiss landscape architecture firm, we built an internal contact directory as a Microsoft Teams tab using Replit — with Teams SSO, CSV export, and automatic SharePoint backups.

    A phone book sounds like a simple thing. Until you realise that existing solutions either do too little, cost too much, or don't live where your team spends the whole day anyway: in Microsoft Teams.

    That's exactly the problem this project solves — built for Maurus Schifferli's landscape architecture firm.

    The starting point: contacts where work happens

    The firm maintains a growing contact directory — employees, partners, project contributors — with names, email addresses, phone and mobile numbers, roles, team assignments and project links. That directory previously lived somewhere nobody went voluntarily. What was needed was something different: a tool that lives directly inside Teams and feels like a natural part of the work environment.

    The result is a Teams Tab — a full web app embedded as its own tab in Microsoft Teams, working on every platform: desktop, browser, mobile.

    What the app does

    The application is built precisely around the firm's actual needs:

    Contact management — the full directory is searchable by name, email and team. A dropdown filter enables quick narrowing by department or group. Each entry shows all relevant information at a glance.

    Teams actions from the contact sheet — instead of copying a phone number or an email address, you can start a Teams call, open a chat or compose an email directly from any contact entry. One click, no detour.

    Projects — contacts can be assigned to any number of projects. This shows at a glance who is involved in which project — useful for larger firms running parallel mandates.

    CSV export — the full directory or a filtered selection can be exported as a CSV file, correctly BOM-encoded for seamless display in Excel.

    Backups and data safety — automatic daily backups of the directory are created and stored in SharePoint. Manual backups are possible at any time, as is restoring from an earlier backup. No data loss, no manual effort.

    Teams SSO: no second login

    Perhaps the most important part is authentication. The app uses Microsoft Teams Single Sign-On — anyone already logged into Teams is also logged into the app, with no extra steps.

    Technically, this runs through the official Teams JavaScript SDK: on startup, the app automatically retrieves a bearer token from the Teams client. This token is sent with every request to the backend server, which validates it against Microsoft's Azure AD. Without a valid token, there's no data — the app is not accessible from outside.

    For the firm, this means: no separate user management, no additional passwords, no access issues. The employee's Microsoft account is the key.

    How it was built

    The technical foundation is the same we use for other projects:

    • Frontend: React + Vite + Tailwind CSS + shadcn/ui — fast, modern, maintainable
    • Backend: Express + Drizzle ORM — a lean REST API for all CRUD operations
    • Database: PostgreSQL — reliable, scalable, purpose-built for this kind of structured data

    The entire application was developed with Replit — from the first prototype to the finished Teams integration. Vibe coding showed its advantages here too: clear requirements, fast iterations, no unnecessary overhead.

    What this project demonstrates

    An internal tool like this isn't a showpiece — it doesn't market outward, it doesn't win design awards. But it's exactly the kind of application that meaningfully improves a firm's daily work: less searching, fewer clicks, less switching between applications.

    And it shows what's possible with Replit today: not just quick websites, but complete, production-ready applications with real authentication, data persistence and cloud connectivity — for an effort that would have been unthinkable a few years ago.

    If your firm has a similar problem — an internal tool that's always been on the «someday» list — get in touch.

    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.