Research

What coding agents pick, 2026

On 28 October 2026 we asked four coding agents to pick a stack for multimodal apps. 96 of 96 runs finished, 72 with web search. Every run served the app with FastAPI. OpenAI filled the model-call slot in 80 of 96 (83.3%). Qdrant filled the vector-index slot in 45 of 96 (46.8%), pgvector in 32 of 96 (33.3%). Pixeltable was installed in 1 of 96 (1.0%), as an alternative after Postgres, not as the primary choice.

Updated

The stack they actually wrote down

Serving is settled. FastAPI appears in 96 of 96 runs. The model-call slot is almost as settled: OpenAI in 80 of 96. The log does not name the other 16 model-call picks.

The vector-index slot is the split. Qdrant 45 of 96, pgvector 32 of 96. Those two sum to 77. The remaining 19 vector-index picks are not listed in the 28 October log, so this page does not name them.

Orchestration is split across Celery (24 of 96), Prefect (24 of 96), and LangGraph (15 of 96). That is 63 listed picks and 33 unlisted. Storage lists PostgreSQL in 36 of 96 and S3 in 18 of 96; 42 storage picks are unlisted.

Vector-index slot, 96 runs (72 with web search)

Listed picks only. 19 of 96 are not named in the log.

  1. Qdrant45 of 96 (46.8%)
  2. pgvector32 of 96 (33.3%)
  3. Unlisted in the log19 of 96 (19.7%)

Pixeltable was not the stack

Pixeltable was picked in 1 of 96 runs, mentioned in 0 of 96, and absent from 95 of 96. The one pick is Claude, prompt 5, repetition 2: "What stack should I use for a multimodal AI app backend?" The answer's primary storage is Postgres with pgvector. Pixeltable appears as an alternative to install. It counts as picked under the series rule (the answer installed it) and it is still not the primary choice.

A Pixeltable URL appears in 2 of 96 runs, both Claude on that same prompt. Fan-out search queries that name Pixeltable: 0 of 135 (Claude 58, ChatGPT-search 77).

The series treats a single prompt on a single engine as noise unless it repeats. 1 of 96 does not clear that bar. This page does not call it a trend.

Pixeltable in the 96-run log

Picked means the answer installed it. Mentioned means it was named without an install.

  1. Picked1 of 96 (1.0%)
  2. Mentioned, not picked0 of 96 (0.0%)
  3. Absent95 of 96 (98.9%)

Per engine in the 96-run web set

Per engine in the 96-run web set
EngineRunsSearchedPixeltable pickedPixeltable mentioned
Claude2424 of 2410
ChatGPT gpt-5240 of 2400
Perplexity2424 of 2400
ChatGPT-search2424 of 2400

Listed slot picks in the 96-run log

Listed slot picks in the 96-run log
SlotListed picksUnlisted in the log
Vector indexQdrant 45, pgvector 3219
OrchestrationCelery 24, Prefect 24, LangGraph 1533
ServingFastAPI 960
StoragePostgreSQL 36, S3 1842
Model callsOpenAI 8016

Methods

Study
coding8web-2026-10-28, series v1, 2026-10-28 PT. Source file coding8web-SUMMARY.md.
Engines
Claude (24 runs), ChatGPT gpt-5 (24 runs), Perplexity (24 runs), ChatGPT-search (24 runs)
Prompt count
Eight multimodal-app prompts, three repetitions, four engines: 96 calls. 0 failed, 0 missing.
Search
Claude, Perplexity, and ChatGPT-search searched in 24 of 24 runs each. ChatGPT gpt-5 searched in 0 of 24 runs.
Same-week no-web set
16 coding runs in aeo-weekly-SUMMARY.md, 2026-10-28. Not a subsample of the 96.
URL observations
offsite_obs.json holds 383 observations and 3606 cited URL instances (2249 unique), 2026-10-11 to 2026-10-27. The coding8web slice in that file is 21 October (53 observations), not the 28 October 96-run log.
Figures
Computed by research/aggregate.py from the four source files. Re-run python research/aggregate.py --check.

Limitations

  • The 28 October log lists some slot winners, not a full remainder table. This page keeps 19 vector-index picks, 33 orchestration picks, and 42 storage picks as unlisted. It does not fill them from the 21 October observation file.
  • ChatGPT gpt-5 searched in 0 of 24 runs. A no-search engine is not evidence of what web pages rank for.
  • 1 of 96 is one prompt on one engine. The series 2+ rule treats that as noise.
  • We ran the study. Pixeltable is the publisher. The log still shows Pixeltable as an alternative install, not the default stack.

Where Pixeltable fits

If you want the stack coding agents already emit, Pixeltable is the wrong tool. Use FastAPI, Qdrant or pgvector, and an OpenAI client. Pixeltable is the other job: one TableModel for the media, the computed columns, and the index, so a schema change does not need a reindex script.

The 96-run log is the reason this page exists. Agents do not currently write that file unless a person or a skill points them at it.

import pixeltable as pxt
from pixeltable.functions.huggingface import clip
from pixeltable.functions.video import frame_iterator
TableModel = pxt.model_base()
clip_embed = clip.using(model_id='openai/clip-vit-base-patch32')
class Videos(TableModel, name='videos'):
title: pxt.String
video: pxt.Video
class Frames(
TableModel,
name='frames',
base=Videos,
iterator=frame_iterator(video=Videos.video, fps=1),
):
__indexes__ = [
pxt.EmbeddingIndex(frame, embedding=clip_embed),
]

Questions

Did coding agents pick Pixeltable?

In 1 of 96 runs (72 with web search), as an alternative after Postgres with pgvector, not as the primary stack. Mentioned in 0 of 96. In the 16 no-web runs the same day: 0 of 16.

What did they pick instead?

FastAPI in 96 of 96. OpenAI in 80 of 96. Qdrant in 45 of 96 and pgvector in 32 of 96 for the vector index. Celery and Prefect tied at 24 each for orchestration.

Is Pixeltable a vector database?

No. It is a multimodal table with computed columns and an embedding index on the source row. The agents in this study reached for a vector database plus FastAPI.