- Before ULPI Tech Stack Matching
- After ULPI Tech Stack Matching
Your AI sees every skill—even irrelevant ones:
- ❌ Laravel repo sees React Component skill (not applicable)
- ❌ React repo sees Laravel Queue Job skill (not applicable)
- ❌ Python repo sees PHP-specific skills (not applicable)
- ❌ Overwhelming list of 50+ irrelevant options
- ❌ AI wastes time reading skills that don’t apply
- ❌ 2 minutes lost per task finding the right skill
- ❌ Risk of AI using wrong skill for your tech stack
Customer Success Story:“Our monorepo has Laravel backend + React frontend. Without tech stack matching, our AI would see 40+ skills—half of them irrelevant. Now it sees exactly 14 skills: 8 Laravel skills and 6 React skills. Our developers find the right skill in 5 seconds instead of 2 minutes.” — Engineering Manager, FinTech Platform with 200K Users
Why Tech Stack Matching Matters
Tech stack matching is ULPI’s intelligent filtering system that ensures your AI assistant only sees skills relevant to your repository’s technologies.Reduce Noise
See only skills that apply to your tech stack. No PHP skills in Python repos, no React skills in Laravel-only projects.
Save Time
Find the right skill in 5 seconds instead of 2 minutes. AI doesn’t waste time reading irrelevant skills.
Prevent Errors
AI can’t accidentally use Laravel patterns in a Django project. Stack-specific skills enforce correct patterns.
Scale Gracefully
As you add more skills, filtering keeps your skill list manageable. 100 total skills → 10 relevant skills per repo.
Real-World Example
Repository: Laravel 12.x + React + MySQL + Redis Without Tech Stack Matching:- 40 skills shown (all public + custom skills)
- Includes Django, Vue.js, .NET, Angular skills (not applicable)
- Developer spends 2 minutes scrolling to find Laravel API skill
- Risk of AI using wrong pattern (e.g., Django ORM instead of Eloquent)
- 14 skills shown (only matching technologies)
- ✅ Create Laravel API Endpoint (PHP, Laravel)
- ✅ Laravel Database Migration (PHP, Laravel, MySQL)
- ✅ Implement Laravel Queue Job (PHP, Laravel, Redis)
- ✅ Write PHPUnit Tests (PHP, Laravel)
- ✅ Create React Component (JavaScript, React)
- ✅ Setup Docker Container (Universal—no filter)
- ✅ Git Commit Best Practices (Universal—no filter)
- ✅ Database Query Optimization (MySQL)
- ❌ Django-specific skills (filtered out)
- ❌ Vue.js-specific skills (filtered out)
- ❌ .NET-specific skills (filtered out)
How Tech Stack Detection Works
ULPI automatically detects your repository’s technologies through a 5-step analysis process when you connect a repository.Step 1: Package Manager Analysis
ULPI scans package manager files to identify your dependencies and frameworks.- JavaScript/TypeScript
- PHP
- Python
- Java
File: Detected Technologies: React, Next.js, TypeScript, NestJS, Node.js
package.jsonStep 2: Configuration File Detection
ULPI looks for framework-specific configuration files to confirm technology presence.Laravel Detection
Laravel Detection
Marker Files:
artisan(Laravel CLI file)bootstrap/app.phpconfig/app.phproutes/web.phpapp/Models/directory
React Detection
React Detection
Marker Files:
jsconfig.jsonortsconfig.json.babelrcorbabel.config.jswebpack.config.jsorvite.config.jssrc/components/directorypublic/index.html
Docker Detection
Docker Detection
Marker Files:
Dockerfiledocker-compose.yml.dockerignore
Database Detection
Database Detection
Marker Files:
.envwithDB_CONNECTION=mysqlknexfile.jsmigrate.config.jsdatabase/migrations/directory
Step 3: Language Detection
ULPI counts file extensions to determine primary and secondary languages. Example Analysis:Step 4: Framework Marker Detection
ULPI identifies framework-specific directory structures.- Laravel
- React
- Django
- Next.js
Step 5: Tool Detection
ULPI identifies DevOps and infrastructure tools used in your project.Docker
Files:
Dockerfileexistsdocker-compose.ymlexists
Git
Files:
.git/directory.gitignorefile
GitHub Actions
Files:
.github/workflows/directory.github/workflows/*.ymlfiles
GitLab CI
Files:
.gitlab-ci.ymlexists
Jenkins
Files:
Jenkinsfileexists
CircleCI
Files:
.circleci/config.ymlexists
Supported Technologies (288+)
ULPI supports 288+ technologies organized into ecosystems. Your skills are automatically filtered based on detected technologies.Programming Languages (15+)
- Backend Languages
- Frontend Languages
- Mobile Languages
- PHP (Laravel ecosystem)
- Python (Django, FastAPI)
- Ruby (Rails)
- Go (Gin, Echo)
- Rust (Actix, Rocket)
- Java (Spring Boot)
- C# (ASP.NET Core)
- Kotlin (Spring, Ktor)
- Scala (Play Framework)
Backend Frameworks (45+)
PHP Frameworks (31 items)
PHP Frameworks (31 items)
Core Frameworks:
- Laravel, Lumen
- Symfony
- CodeIgniter
- Yii, Phalcon
- Livewire, Inertia.js
- Laravel Sanctum (API authentication)
- Laravel Cashier (billing)
- Laravel Horizon (queue monitoring)
- Laravel Scout (search)
- Laravel Telescope (debugging)
- Laravel Passport (OAuth)
- Laravel Socialite (social auth)
- Laravel Pail (log viewer)
- Laravel Vapor (serverless)
- Laravel Octane (performance)
- Laravel Sail (Docker dev)
- Laravel Fortify (authentication)
- Laravel Jetstream (starter kit)
- Laravel Breeze (authentication)
- Laravel Pulse (monitoring)
- Laravel Prompts (CLI)
- Laravel Pennant (feature flags)
- Laravel Reverb (WebSockets)
- Laravel Folio (page routing)
Node.js Frameworks (35+ items)
Node.js Frameworks (35+ items)
Backend Frameworks:
- Express.js (most popular)
- NestJS (enterprise)
- Fastify (performance)
- Koa (modern)
- Hapi (configuration-driven)
- Next.js (React)
- Nuxt.js (Vue)
- SvelteKit (Svelte)
- Remix (React)
Python Frameworks
Python Frameworks
- Django (full-stack)
- FastAPI (modern API)
- Flask (micro-framework)
- Pyramid (flexible)
- Tornado (async)
Other Backend Frameworks
Other Backend Frameworks
- Spring Boot (Java)
- ASP.NET Core (C#)
- Ruby on Rails (Ruby)
- Phoenix (Elixir)
- Gin, Echo (Go)
- Actix, Rocket (Rust)
Frontend Frameworks (46+)
React Ecosystem (46 items)
React Ecosystem (46 items)
Core Framework:
- React
- React Router
- TanStack Router
- Redux, Redux Toolkit
- Zustand
- Jotai
- Recoil
- MobX
- React Query (TanStack Query)
- SWR
- RTK Query
- React Hook Form
- Formik
- React Testing Library
- Jest
- Vitest
- Styled Components
- Emotion
- CSS Modules
- Tailwind CSS
- Material-UI (MUI)
- Ant Design
- Chakra UI
- Shadcn UI
- Framer Motion
- React Spring
- React Native
- Expo
Other Frontend Frameworks
Other Frontend Frameworks
- Vue.js, Nuxt.js
- Angular
- Svelte, SvelteKit
- Solid.js
- Ember.js
- Preact
Databases (25+)
- Relational
- NoSQL
- Search Engines
- In-Memory
- MySQL (most popular)
- PostgreSQL (advanced)
- MariaDB
- SQLite
- Oracle
- SQL Server
DevOps & CI/CD (48+)
Containerization:- Docker, Kubernetes, Docker Compose, Podman
- GitHub Actions, GitLab CI, CircleCI, Jenkins, Travis CI, Azure DevOps
- AWS (95 services), Google Cloud, Azure, DigitalOcean, Heroku, Vercel, Netlify
- Sentry, Datadog, New Relic, Prometheus, Grafana
Build Tools & Package Managers (30+)
JavaScript: npm, Yarn, pnpm, Webpack, Vite, Rollup, Babel, SWC, ESLint, Prettier PHP: Composer, PHP CS Fixer, PHPStan, Psalm Python: pip, Poetry, Pipenv, Black, Flake8 Other: Maven, Gradle (Java), Cargo (Rust), Go ModulesTesting Frameworks (20+)
PHP: PHPUnit, Pest, Mockery JavaScript: Jest, Vitest, Mocha, Chai, Cypress, Playwright, Testing Library Python: pytest, unittestSkill Filtering Algorithm
Skills are filtered using a simple but powerful algorithm:Example Filtering
Repository Technologies:["php", "laravel", "mysql", "redis"]
- Skill 1: Create Laravel API Endpoint
- Skill 2: Create React Component
- Skill 3: Git Commit Best Practices
- Skill 4: Database Query Optimization
Filters:
["php", "laravel"]Match: ✅ YesReason: Both php and laravel are in repository technologiesUniversal Skills
Some skills apply to all repositories regardless of tech stack. These have no filters and are always shown. Universal Skills Examples:Git Commit Best Practices
Version control applies to all projects—PHP, Python, JavaScript, etc.
API Documentation with OpenAPI
API documentation is language-agnostic. Works with Laravel, Django, Express, Spring Boot, etc.
Setup Docker Container
Containerization applies to all tech stacks. Docker works with any language/framework.
Database Query Optimization
SQL optimization concepts are universal across MySQL, PostgreSQL, MariaDB, etc.
- Core development practices (Git, documentation, testing)
- Infrastructure concerns (Docker, deployment, monitoring)
- Cross-cutting topics (performance, security, accessibility)
Manually Adding Technologies
If ULPI doesn’t automatically detect a technology, you can add it manually.1
Navigate to Repository
In ULPI dashboard, go to Repositories → Select your repository
2
View Tech Stack Section
Scroll to Technologies section
3
Click Add Technology
Click + Add Technology button
4
Search Technologies
Search from 288+ supported technologies:
- Start typing (e.g., “Vue”)
- Select from dropdown
- Multiple selections allowed
5
Save
Click Save to update your tech stack
6
Refresh Skills
Restart your IDE to clear MCP cacheSkills will now be filtered with updated tech stack
- Using a technology not in
package.json(e.g., MySQL, Redis) - Using a newer framework not yet auto-detected
- Using internal tools or custom frameworks
- Technology is in a subdirectory ULPI didn’t scan
Tech Stack Examples
Real-world repository configurations showing tech stack detection and skill filtering:- Full-Stack Laravel + React
- Next.js Full-Stack App
- Python FastAPI Microservice
Viewing Your Tech Stack
Via Dashboard
- Navigate to Repositories at app.ulpi.io/repositories
- Click on your repository
- View Technologies section
- See all detected technologies with icons
Via AI Assistant (MCP)
Ask your AI:- All detected technologies
- Which skills are available
- Any missing technologies you should add
Via API
Technology Aliases
Some technologies have multiple names. ULPI handles aliases automatically. Examples:- Node.js:
nodejs,node,node-js(all work) - PostgreSQL:
postgresql,postgres,pg(all work) - MongoDB:
mongodb,mongo(both work) - Kubernetes:
kubernetes,k8s(both work) - TypeScript:
typescript,ts(both work)
Updating Tech Stack
Your tech stack is automatically updated: Automatic Updates:- ✅ Push to repository (via webhooks)
- ✅ Manual refresh in dashboard
- ✅ Re-connection of repository
- Real-time: On webhook events (push, PR merge)
- Hourly: Automatic background sync
- Manual: Click “Refresh” button in dashboard
- Tech stack changes invalidate skill cache
- MCP server refreshes on next request
- Or restart IDE to force immediate refresh
Performance
Tech stack detection is optimized for speed: Detection Time:- Small repos (< 100 files): 1-2 seconds
- Medium repos (100-1,000 files): 3-10 seconds
- Large repos (> 1,000 files): 10-30 seconds
- Detected tech stack cached for 1 hour
- Skills filtered based on cached tech stack
- Full re-detection only on manual refresh or webhooks
- Only scans package manager files and root config
- Doesn’t read entire codebase
- Uses file name patterns for fast detection
- Parallel analysis of multiple detection methods
Troubleshooting
Technology not detected
Technology not detected
Possible Causes:
- Technology not in package manager file
- Files in subdirectory ULPI didn’t scan
- Technology too new or not in ULPI database (288+ supported)
- Add manually in repository settings → Technologies → Add Technology
- Move package file to root (e.g.,
package.json,composer.json) - Contact support to request new technology addition
Wrong technologies detected
Wrong technologies detected
Possible Causes:
- Development dependencies included (e.g., Jest, Prettier in production stack)
- Deprecated packages still in
package.json - Multi-project repository (monorepo with multiple tech stacks)
- Remove unused dependencies from package files
- Clean up old packages (
npm prune,composer update) - Manually remove incorrect technologies in repository settings
- For monorepos, consider separate ULPI repositories for each project
Skills not updating after tech stack change
Skills not updating after tech stack change
Cause: MCP server cache (1 hour TTL)Solutions:
- Restart IDE to clear cache immediately
- Wait 1 hour for automatic cache expiration
- Check “Updated At” timestamp in repository settings to verify detection ran
Too many irrelevant skills
Too many irrelevant skills
Possible Causes:
- Too many technologies detected (e.g., dev dependencies)
- Development dependencies treated as production technologies
- Universal skills feel overwhelming (but they’re supposed to show)
- Review and remove unused technologies in repository settings
- Focus
package.jsonon production dependencies (move dev deps todevDependencies) - Ask AI to filter: “Show only Laravel-specific skills”
- Create custom skills with narrow tech filters
Custom Technology Support
Need a technology ULPI doesn’t support yet?1
Check if Already Supported
Search 288+ technologies in repository settings → Add Technology
2
Submit Request
Email support@ulpi.io with:
- Technology name and website
- Package manager identifier (npm package, composer package, PyPI package, etc.)
- Why your team needs it
- How many projects would benefit
3
Review
We review requests weekly
4
Addition
Popular requests added in 1-2 weeks
5
Notification
You’ll be notified when technology is added
- Create custom skill with your tool’s name
- Manually add technology to repositories
- Skills will match your custom tech stack
Next Steps
Create Custom Skills
Build skills filtered for your tech stack
How Skills Work
Technical deep dive into skill execution
MCP Setup
Configure Skills in 40+ AI tools
Getting Started
Set up Skills from scratch in 10 minutes
Browse Skills
View all 10 public skills
FAQ
Common questions
Questions about tech stack matching? Contact support@ulpi.io or join our Discord.