Build a retrospective tailored to your needs!
Retroforge is an interactive web application that helps agile teams discover and select the most suitable retrospective format for their needs. Using two engaging modes—Hammer Swipe (swipe-based) and Deep Anvil (question-based)—teams can quickly match with retrospective formats that fit their current situation.
- 🔨 Hammer Swipe Mode: Tinder-style swipe interface to quickly browse and select retrospectives
- ⚒️ Deep Anvil Mode: Answer targeted questions to get personalized retrospective recommendations
- 🌐 Multilingual: Full support for English and French
- 📱 Responsive Design: Works seamlessly on desktop, tablet, and mobile devices
- 🎨 Modern UI: Built with TailwindCSS 4 and Framer Motion for smooth animations
- 📊 Retrospective Matching: Smart algorithm that scores and recommends retrospectives based on your answers
- Frontend Framework: React 19 + React Router v7
- Language: TypeScript 5.8
- Styling: TailwindCSS 4
- Animations: Framer Motion
- Internationalization: i18next + react-i18next
- Build Tool: Vite
- Package Manager: Yarn 4.7.0
- Monitoring: Microsoft Application Insights
Retroforge is deployed as an Azure Static Web App with the following resources:
Subscription: SAP-LaRucheCloud-DEV-MG Resource Group: INTERNALTOOLSEUNLARUCHERG
The deployment includes two resources:
- retroforge - Static Web App hosting the application
- retroforge-app-insights - Application Insights instance for tracking metrics and telemetry
Application Insights is integrated to track:
- Page views and user interactions
- Performance metrics
- Custom telemetry events
To view metrics:
- Navigate to the
retroforge-app-insightsresource in Azure Portal - Go to Investigate → Search
- Apply filters to analyze user behavior and performance
Access to the application is restricted to authorized networks only. The staticwebapp.config.json file contains IP range configurations that allow access exclusively from:
- Office network
- VPN connections
This ensures the application is only accessible to internal team members.
The project uses GitHub Actions for continuous integration and deployment.
- Trigger: Automatic deployment on push to the
mainbranch - Build: Application is built using React Router build system
- Deploy: Automatically deployed to Azure Static Web Apps
- Pull Requests: Preview deployments for PRs, automatically closed when PR is merged
The GitHub Actions workflow is defined in .github/workflows/azure-static-web-apps-agreeable-coast-0ec1fdc03.yml.
Push to main → GitHub Actions → Build → Deploy to Azure → Live!
- Node.js (v18 or higher recommended)
- Yarn 4.7.0
# Install dependencies
yarn install# Start development server
yarn devThe application will be available at http://localhost:5173 (or the port shown in the console).
# Build for production
yarn buildThe built files will be in the build/ directory.
# Run TypeScript type checking
yarn typecheck# Run ESLint
yarn lintretroforge/
├── app/
│ ├── common/ # Shared components, types, and utilities
│ │ ├── assets/ # Static assets and locales
│ │ ├── components/ # Reusable components
│ │ ├── computations/ # Business logic and algorithms
│ │ ├── context/ # React context providers
│ │ ├── hooks/ # Custom React hooks
│ │ ├── types/ # TypeScript type definitions
│ │ └── ui/ # UI component library
│ ├── deep-anvil/ # Deep Anvil mode components
│ ├── hammer-swipe/ # Hammer Swipe mode components
│ ├── layouts/ # Layout components
│ ├── retrospectives/ # Retrospective listing and details
│ └── routes/ # Route components
├── docs/ # Documentation and screenshots
├── .github/
│ └── workflows/ # GitHub Actions CI/CD
├── staticwebapp.config.json # Azure Static Web App configuration
└── package.json
- Home Screen: Users choose between Hammer Swipe or Deep Anvil mode
- Answer Questions: Users interact with questions about their team's situation
- Matching Algorithm: The app calculates scores for retrospectives based on answers
- Results: Users see a ranked list of recommended retrospectives
- Browse All: Users can explore all available retrospectives
- Create a feature branch from
main - Make your changes
- Ensure tests pass and linting is clean
- Create a pull request to
main - Once approved and merged, changes are automatically deployed
Internal tool for SAP LaRucheCloud team.
For issues or questions, please contact the internal development team.

