App Analysis
An automated tool that logs into apps, navigates their features, and produces quality reports. Also supports manual app profiling for apps that can't be browsed, with pricing comparison and product packaging.
Mode 1: Automated Browser Analysis
Uses the Docker/Playwright infrastructure from the E2E testing service.
What It Measures
| Category | Metrics |
|---|---|
| Performance | Page load time, Largest Contentful Paint, First Input Delay, Cumulative Layout Shift, Time to Interactive |
| Accessibility | axe-core violations (critical, serious, moderate, minor), colour contrast, ARIA usage, keyboard navigation |
| Responsiveness | Layout at 1440px, 1024px, 768px, 375px — screenshot at each, detect overflow/overlap |
| Features | Pages discovered, interactive elements found, forms detected, navigation structure |
| Error Handling | What happens with invalid form input, 404 pages, network errors |
| UX Quality | Empty states, loading states, error messages, success feedback, transitions |
How It Works
- Provide app URL + test credentials
- Service spins up a Playwright Docker container
- Crawler discovers all links from the starting page
- Visits each page, executing a standard test suite:
- Take screenshots at multiple viewports
- Run axe-core accessibility scan
- Measure Core Web Vitals
- Try form submissions (with test data)
- Check for empty states
- Check error handling (submit invalid data, visit non-existent routes)
- Produces a structured report
Mode 2: Manual App Profile
For desktop apps, mobile apps, or services with access restrictions:
- Builder manually enters: name, description, feature list, pricing tiers, screenshots
- Or: provide a public URL and the tool scrapes landing page + pricing page
- AI-powered analysis (via Norman) generates:
- Standardized feature comparison matrix
- Pricing recommendations (based on comparable products)
- Market positioning suggestions
- Product packaging: how to present this as a saleable product on ShellApps
All AI features are billed via Norman tokens, same as translations.
API Endpoints
| Method | Path | Auth | Description |
|---|---|---|---|
POST | /api/v1/analysis/scan | Bearer | Trigger automated scan |
GET | /api/v1/analysis/scans | Bearer | List scans |
GET | /api/v1/analysis/scans/:id | Bearer | Scan results |
POST | /api/v1/analysis/profile | Bearer | Create manual app profile |
GET | /api/v1/analysis/profiles | Bearer | List app profiles |
GET | /api/v1/analysis/compare | Bearer | Compare apps |
POST | /api/v1/analysis/pricing-suggest | Bearer | AI pricing recommendations |
See the full API Reference for details.