What it can read

Every framework, database and platform the analyzer can name. This page is built from the analyzer itself, so it cannot promise something the code does not detect.

Not finding yours here does not mean the scan fails. An unrecognised project is reported as inconclusive and its score is capped, rather than being scored as though the absence of evidence were evidence of absence.

Backend

Read from package.json, requirements.txt, pyproject.toml, go.mod, the Gemfile, composer.json and .csproj.

  • Express
  • Next.js
  • NestJS
  • Fastify
  • Hono
  • Elysia
  • Koa
  • AdonisJS
  • SvelteKit
  • Remix
  • Nuxt
  • Nitro
  • Astro
  • Django
  • Flask
  • FastAPI
  • Litestar
  • Sanic
  • Tornado
  • aiohttp
  • Starlette
  • Gin
  • Echo
  • Fiber
  • chi
  • Gorilla
  • Beego
  • Go
  • Rails
  • Sinatra
  • Hanami
  • Roda
  • Grape
  • Ruby
  • Laravel
  • Symfony
  • Slim
  • CodeIgniter
  • CakePHP
  • Yii
  • PHP
  • ASP.NET Core
  • .NET

Frontend

  • React
  • Vite
  • Vue
  • Nuxt
  • Svelte
  • Angular
  • Astro
  • Solid
  • Qwik
  • Preact
  • Remix
  • htmx
  • Tailwind CSS
  • Electron

Mobile

Held to client-application expectations rather than to a backend's.

  • Flutter
  • React Native
  • iOS (native)
  • Android (native)

Databases

  • Postgres
  • MySQL
  • SQLite
  • SQL Server
  • MongoDB
  • Redis
  • Firestore
  • DynamoDB
  • Convex

Hosted data platforms

Recorded separately from the engine underneath, so a rule written about Postgres keeps working whether it is Supabase, Neon or your own server.

  • Supabase
  • Firebase
  • PlanetScale
  • Neon
  • Vercel Postgres
  • Turso
  • Upstash
  • DynamoDB
  • Convex

ORMs

  • Prisma
  • Drizzle
  • TypeORM
  • Sequelize
  • Knex
  • MikroORM
  • Kysely
  • SQLAlchemy
  • Tortoise
  • Peewee

Source languages

Read from the files themselves. A project in a language on this list is analysed; one in a language that is not is reported as partially read rather than scored as if the unread files were empty.

  • TypeScript
  • JavaScript
  • Python
  • PHP
  • Go
  • Ruby
  • Java
  • C#
  • Rust
  • Kotlin
  • Swift
  • Dart

And what it can be judged as

Reading the stack is half of it. The other half is what that kind of product is held to — which is the difference between a report you can act on and a list of things a server would need.

Static Site
Static or primarily frontend site with minimal backend requirements.
Internal Tool
Operational tool for internal users with moderate security and operability expectations.
Game
A game served to players, judged on whether progress survives and assets arrive.
Client application
A tool people use, without accounts to manage or subscriptions to sell.
Mobile application
An app installed on a device its author does not own, shipped through a store.
B2C App
Consumer-facing app with user accounts, privacy duties and abuse exposure.
B2B SaaS
Business SaaS with tenancy, authorization depth, privacy duties and operability expectations.
AI SaaS
AI-powered SaaS with async workloads, upload safety, cost exposure and high observability needs.
Marketplace
Two-sided product where distinct parties transact, requiring role separation, payment integrity and dispute handling.

Or let it decide: the analyzer picks the profile itself and says how sure it is, and where the evidence does not settle it, it says that instead of guessing.

Where a dependency is not enough

Most of the list above is settled by one line in a manifest. These are not, and what settles them changes what the report asks of the project.

Express
the dependency, or an import in the source
Astro
counted as a backend only when configured to serve requests
Django
manage.py, settings.py and urls.py together
Flask
the dependency, or an import in the source
FastAPI
the dependency, or an import in the source
Go
a go.mod with no framework in it — net/http is a real answer
Ruby
a Gemfile with no web framework in it
PHP
PHP sources with no framework in composer.json
ASP.NET Core
the Microsoft.NET.Sdk.Web SDK attribute
.NET
a .csproj with no web SDK
Flutter
pubspec.yaml — classified as a client application, not a backend
React Native
the react-native or expo dependency
iOS (native)
Info.plist, Package.swift, a Podfile or an .xcodeproj in the tree
Android (native)
AndroidManifest.xml, or build.gradle in either dialect
Supabase
recorded alongside the engine it is — Postgres
Firebase
Firestore
PlanetScale
MySQL
Neon
Postgres
Vercel Postgres
Postgres
Turso
SQLite
Upstash
Redis

Run it against your own repository

Everything on this page is the open source analyzer, which runs on your machine and sends nothing anywhere.

$ npm install -g @produtype/core
$ prodkit analyze .

The command is prodkit; the package is @produtype/core. They differ because the short name on npm belongs to an unrelated project.