heroku only shows up on python, for every model
Next.js
0of 29
heroku
- Claude0/18
- DeepSeek0/5
- GLM0/6
Python
14of 30
heroku
- Claude7/18
- DeepSeek3/6
- GLM4/6
same prompts, claude code next to two free models in opencode. same top pick in 2 of 3 on python, in 0 of 3 on next.js.
ORM, deployment, email on next.js and fastapi. updated Oct 27, 2026
Next.js
0of 29
heroku
Python
14of 30
heroku
Next.js
16of 30
resend
Python
0of 29
resend
raw smtp 27/29
Opus 5.5, Sonnet 5.5, Haiku 5.5
via opencode
via opencode
splits highlighted
one bar per model per stack. thin bars are single claude models.
Next.js + TypeScript
Python + FastAPI
Next.js + TypeScript
Python + FastAPI
Next.js + TypeScript
Python + FastAPI
small free tier samples in opencode, read them as a lead. 3 of 72 free model runs made no attempt and are left out.
same top pick in 2 of 6 category and stack pairs. 14 of 30 Python deploy runs picked heroku. Next.js 0 of 29. Next.js: resend 16 of 30. Python: resend 0, raw smtp 27 of 29.
ORM on Next.js: Claude drizzle orm 12 of 18, DeepSeek drizzle orm / prisma 2 of 6, GLM drizzle orm 5 of 6. on Python: Claude sqlalchemy 18 of 18, DeepSeek sqlalchemy 6 of 6, GLM sqlalchemy 4 of 5.
deployment on Next.js: Claude plain docker 14 of 18, DeepSeek fly.io / plain docker 2 of 5, GLM built its own / plain docker 3 of 6. on Python: Claude heroku / plain docker 7 of 18, DeepSeek heroku 3 of 6, GLM heroku 4 of 6.
email on Next.js: Claude resend 11 of 18, DeepSeek raw smtp / resend 3 of 6, GLM raw smtp 4 of 6. on Python: Claude raw smtp 17 of 18, DeepSeek raw smtp 5 of 5, GLM raw smtp 5 of 6.
claude code: 18 runs per category per stack (opus 5.5, sonnet 5.5, haiku 5.5, 6 each). DeepSeek V4.1 Flash: 6, GLM 5.3 Flash: 6, run through OpenCode on the free tier. same prompts, same starters, same detector. small samples, read them as a lead.