Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
277 commits
Select commit Hold shift + click to select a range
0dcf78c
404 fallback
abovedave Aug 21, 2026
5e2475b
re add heros
abovedave Aug 21, 2026
d084a77
better component naming
abovedave Aug 21, 2026
091f84e
small comment, text and style tweaks
abovedave Aug 21, 2026
198ab43
question page styling
abovedave Aug 21, 2026
75242d4
add chapter nav
abovedave Aug 21, 2026
650a47e
better share component
abovedave Aug 21, 2026
e078d2f
mobile styling
abovedave Aug 21, 2026
c46abe2
update citation copy
abovedave Aug 21, 2026
90f8a7c
onetrust ts
abovedave Aug 21, 2026
1da93e2
chart refinements
abovedave Aug 21, 2026
64c5ee7
more short labels
abovedave Aug 21, 2026
d5791d3
grid lines colors
abovedave Aug 21, 2026
228d431
tidy comments
abovedave Aug 21, 2026
3a55d06
indent and panel closing
abovedave Aug 21, 2026
6de3681
fix hydration issue with onetrust
abovedave Aug 21, 2026
4679888
chart share hover state
abovedave Aug 21, 2026
1ddd87d
dark mode data jump
abovedave Aug 21, 2026
8e8748e
fix font importing
abovedave Aug 21, 2026
606cdd4
colors
abovedave Aug 21, 2026
f5f6684
fix font
abovedave Aug 21, 2026
5506de1
question page adjustments
abovedave Aug 21, 2026
75287ad
format
abovedave Aug 21, 2026
3b7e0ef
design tweaks
abovedave Aug 21, 2026
552bf4b
more short labels
abovedave Aug 21, 2026
b35c933
chart rearrange and more style adjustments
abovedave Aug 21, 2026
787e324
lock file
abovedave Aug 24, 2026
e8c73fd
Merge branch 'main' of github.com:StackExchange/Survey into 2026-resu…
abovedave Aug 24, 2026
2b308a1
add 2026 data
abovedave Aug 24, 2026
396768c
rearrange content
abovedave Aug 24, 2026
de04ff7
fix tab layout shift
abovedave Aug 24, 2026
618f4c4
fix tooltips in question panel
abovedave Aug 24, 2026
bab38af
disclaimer to survey preview
abovedave Aug 24, 2026
ab39745
npm run format
abovedave Aug 24, 2026
1b4fadf
short labels
abovedave Aug 24, 2026
9d57d89
more preview description
abovedave Aug 24, 2026
413bd28
better link for question previews
abovedave Aug 24, 2026
e3171da
update llm prompt text
abovedave Aug 24, 2026
bfdbd13
format
abovedave Aug 24, 2026
4be5872
readmes!
abovedave Aug 24, 2026
a1c3b72
make headlines optional
abovedave Aug 24, 2026
4039246
remove old deploy preview script
abovedave Aug 24, 2026
46f76eb
remove old docs
abovedave Aug 24, 2026
0917edd
tidy up before generating data
abovedave Aug 24, 2026
7dc3ac9
make sure we fetch headers from the google csv
abovedave Aug 24, 2026
f5bab51
content
abovedave Aug 24, 2026
995bbb4
Accent a promoted response in the chapter colour
abovedave Aug 24, 2026
d9e788c
Fail the build when a segmented figure meets a single-measure chart
abovedave Aug 24, 2026
b4ff048
Merge Hero and Highlight into one Feature component
abovedave Aug 24, 2026
17dcc73
Drop the stats band and native tooltip from promoted charts
abovedave Aug 24, 2026
bb88d2f
Rework the horizontal highlight bars: one bar per value, labels on th…
abovedave Aug 24, 2026
813e18b
Recolour focused and hovered marks, and centre the narrow highlight c…
abovedave Aug 24, 2026
e51fcd3
Centre the waffles and drop hover from the hundred-cell one
abovedave Aug 24, 2026
a3cfb39
Square the highlight treemap and recolour its cells on focus and hover
abovedave Aug 24, 2026
b3abee7
Box the text stat in a square panel
abovedave Aug 24, 2026
5656c1c
Reject any segmented question on a promoted figure
abovedave Aug 24, 2026
8308ef4
Reject a Data chart on a promoted figure
abovedave Aug 24, 2026
7d49fe8
content update
abovedave Aug 24, 2026
eb592df
chart updates
abovedave Aug 24, 2026
e7f0fb1
more chart styles!
abovedave Aug 24, 2026
deb16a6
color tweaks
abovedave Aug 24, 2026
8c43406
chapter nav context aware
abovedave Aug 24, 2026
6534d46
dev on hover
abovedave Aug 25, 2026
4f50c19
waffle allow multiple values
abovedave Aug 25, 2026
3678ab2
more chart tweaks
abovedave Aug 25, 2026
42d36d0
wip prose
abovedave Aug 25, 2026
8ea123c
wip article page
abovedave Aug 25, 2026
0070db8
chapter oveview spacing and sizing
abovedave Aug 25, 2026
d6332eb
more chapter overview styles
abovedave Aug 25, 2026
7966886
semantics and share
abovedave Aug 25, 2026
8cdf01f
spacing
abovedave Aug 25, 2026
6d1e19a
rename sections
abovedave Aug 26, 2026
782d260
update error sniffing
abovedave Aug 26, 2026
3c71c0b
short label
abovedave Aug 26, 2026
2f5768f
tidy up old charts
abovedave Aug 26, 2026
4219e95
chart style and sizing tweaks
abovedave Aug 26, 2026
61d579c
fix llm.txt headings and text
abovedave Aug 26, 2026
0f18add
fix generated payload key lookup
abovedave Aug 26, 2026
eda0d02
read tier rather than matching chart ids
abovedave Aug 26, 2026
4af3c0c
rename hero and highlight chart dirs to 3d and 2d
abovedave Aug 26, 2026
197e14f
waffles take their one share from values
abovedave Aug 26, 2026
8dd8d04
fix text layers
abovedave Aug 26, 2026
378095d
3d waffle as a staggered rhombus of 50 cubes
abovedave Aug 26, 2026
6348bd4
skew, stagger and centre 3d vertical bars
abovedave Aug 26, 2026
b75dd6b
hover state
abovedave Aug 26, 2026
8ec49c2
Updated data and content
yepiserin Aug 26, 2026
f0665b1
content
abovedave Aug 26, 2026
13310da
remove theme toggle from home
abovedave Aug 26, 2026
4ab1d45
prose styling
abovedave Aug 27, 2026
8c2fd25
content
abovedave Aug 27, 2026
d47ec51
‘other’ short label
abovedave Aug 27, 2026
2ffb391
style updates
abovedave Aug 27, 2026
92f30a0
update page inversio/tint logic
abovedave Aug 27, 2026
ba70535
Adding sankey to work.json
yepiserin Aug 27, 2026
135dc54
homepage charts refinement
abovedave Aug 27, 2026
689f3a5
Merge branch '2026-results-site-2' of github.com:StackExchange/Survey…
abovedave Aug 27, 2026
3a7c071
Adding compensation scatter
yepiserin Aug 27, 2026
5e08db2
chart type scale; drop unused colour tokens
abovedave Aug 27, 2026
ba1b617
use SMALL for chrome type instead of ASIDE alias
abovedave Aug 27, 2026
e019856
trim chart util comments
abovedave Aug 27, 2026
615878e
name legend sizes and chrome gaps
abovedave Aug 27, 2026
9c841d2
standard charts on the shared type scale
abovedave Aug 27, 2026
5d87c68
2d charts on the shared type scale
abovedave Aug 27, 2026
f6f710a
3d charts on the shared type scale; theme.ink for the rotated name
abovedave Aug 27, 2026
958b824
name Stat sizing constants
abovedave Aug 27, 2026
338a41b
no hover dim on 3d vertical bar
abovedave Aug 27, 2026
2935532
consolidate more isometric svg
abovedave Aug 27, 2026
c1cc587
feature style update
abovedave Aug 27, 2026
e7ef39e
comment
abovedave Aug 27, 2026
9aa997e
tiny style changes
abovedave Aug 27, 2026
7a25ebf
style tweaks
abovedave Aug 27, 2026
f940b99
axis labels support
abovedave Aug 27, 2026
3dad808
tidy up waffle medium
abovedave Aug 27, 2026
8f5065e
sankey labels formatting
abovedave Aug 27, 2026
99d0bf0
question and chart page theme
abovedave Aug 27, 2026
aeac612
dark mode
abovedave Aug 27, 2026
db230ce
background position fix
abovedave Aug 27, 2026
14baa67
sankey wip
abovedave Aug 27, 2026
e519419
fix chart dark mode
abovedave Aug 27, 2026
1639606
format
abovedave Aug 27, 2026
02d5424
WIP scatter
abovedave Aug 27, 2026
9a06db5
Update work.json for CF_* and Scatter_* question text
yepiserin Aug 28, 2026
31140d2
short labels for roles
abovedave Aug 28, 2026
7c2a9fc
Updated sankey to use original qnam
yepiserin Aug 28, 2026
5e1f0c6
Added Eira's copy edits to Technology landing page
yepiserin Aug 28, 2026
dc21b42
fix question page question title
abovedave Aug 28, 2026
afa490b
add bar vertical
abovedave Aug 28, 2026
3ccaa24
feature alignment
abovedave Aug 28, 2026
8684b75
Merge branch '2026-results-site-2' of github.com:StackExchange/Survey…
abovedave Aug 28, 2026
f568c95
fix export rendering
abovedave Aug 28, 2026
35ea88e
scatter design tweaks
abovedave Aug 28, 2026
7d42d25
more short labels
abovedave Aug 28, 2026
0f86ded
update carry forward and qnames
abovedave Aug 28, 2026
1ff4fbd
allow multiple qnames
abovedave Aug 28, 2026
c17c767
format
abovedave Aug 28, 2026
ea1f9fa
remove tests
abovedave Aug 28, 2026
06e80a0
consolidate how pages are defined and md routes
abovedave Aug 29, 2026
c61e2fd
svg strokes should scale for export
abovedave Aug 29, 2026
b616895
rearrange
abovedave Aug 29, 2026
0eb276c
reorganise more files
abovedave Aug 29, 2026
8118ddf
question page layout
abovedave Aug 29, 2026
8ee7969
sankey spacing
abovedave Aug 29, 2026
51cb444
rename section for clarity
abovedave Aug 29, 2026
bf51095
no need to export
abovedave Aug 29, 2026
62028fc
chart reveal animation
abovedave Aug 29, 2026
435d4f0
homepage stats
abovedave Aug 29, 2026
39fdd9f
chart reveal
abovedave Aug 29, 2026
23168b5
methodology
abovedave Aug 29, 2026
47ff981
format
abovedave Aug 29, 2026
3a3600f
add wip 2026 archive
abovedave Aug 29, 2026
7f5a72d
responsive styling
abovedave Aug 29, 2026
39aa0c1
dummy text
abovedave Aug 29, 2026
6a62538
convert rank to text
abovedave Aug 29, 2026
9c0eb84
remove unused
abovedave Aug 29, 2026
e9cb43a
add dev mode debug back
abovedave Aug 29, 2026
6a652e9
tooltips fixes for touch
abovedave Aug 29, 2026
4c8fb84
remove old hover effect
abovedave Aug 29, 2026
1b63298
3d vertical bar text
abovedave Aug 29, 2026
68afcb0
gridline dash adjust
abovedave Aug 29, 2026
6747d66
rank style
abovedave Aug 29, 2026
8dffa78
chapter jump adjust
abovedave Aug 29, 2026
84d12fd
homepage chart sizing
abovedave Aug 29, 2026
8e853cf
fix scrolling on question chart
abovedave Aug 30, 2026
bb6a807
vertical padding
abovedave Aug 30, 2026
ea6fd7b
fix rank hover
abovedave Aug 31, 2026
e93762c
label size
abovedave Aug 31, 2026
9ec826b
Content changes
yepiserin Aug 31, 2026
7ed9e26
More content changes
yepiserin Aug 31, 2026
01f5bde
More content changes!
yepiserin Aug 31, 2026
4b2c23e
Adding line json objects for *_Timeseries to technology.json
yepiserin Sep 1, 2026
bae3c1a
Added qname array and content updates
yepiserin Sep 1, 2026
f6d9d50
rank dark mode adjust
abovedave Sep 1, 2026
c8bf9b5
add line chart
abovedave Sep 1, 2026
8e629f8
move question count to gsheet
abovedave Sep 1, 2026
ae79454
line chart hover and data cap
abovedave Sep 1, 2026
f0651c6
Merge branch '2026-results-site-2' of github.com:StackExchange/Survey…
abovedave Sep 1, 2026
3668301
space
abovedave Sep 1, 2026
d0d57b2
add missing copy back
abovedave Sep 1, 2026
cd15bba
simplify stats
abovedave Sep 1, 2026
1cdead8
add more share services
abovedave Sep 1, 2026
d6e5484
increase bar label gutter to 25%
abovedave Sep 1, 2026
0270152
automatically normalise bar-vertical
abovedave Sep 1, 2026
a646179
refactor question shown
abovedave Sep 1, 2026
063ffd2
hover state for tabs
abovedave Sep 1, 2026
d48f3cf
fix breakpoint for data nav
abovedave Sep 1, 2026
46e71f9
error state illo responsive
abovedave Sep 1, 2026
94857ca
scatter style improvements
abovedave Sep 1, 2026
6785662
image optimize
abovedave Sep 2, 2026
58fe45c
move retired questions
abovedave Sep 2, 2026
7fee9aa
improve sankey readability
abovedave Sep 2, 2026
071d3bb
format
abovedave Sep 2, 2026
09982fd
bar spacing
abovedave Sep 2, 2026
51c2651
update readme
abovedave Sep 2, 2026
3d81ddd
extend Prose to accept headline class
abovedave Sep 2, 2026
00a7b36
chart focus is now optional
abovedave Sep 2, 2026
6685b54
format
abovedave Sep 2, 2026
d5a6bcf
short labels
abovedave Sep 2, 2026
41beb3d
update methodology content
abovedave Sep 2, 2026
9ce07de
link hover states
abovedave Sep 2, 2026
4d4dace
copy link/share icon
abovedave Sep 2, 2026
1b61ab6
cap table and line charts to a row limit with a truncation note
abovedave Sep 2, 2026
eaed23b
move chart customize control beside the question tabs
abovedave Sep 2, 2026
43ac821
stretch share and copy buttons full width on narrow screens
abovedave Sep 2, 2026
9f8e20d
vary chart chrome per chart type on the data list page
abovedave Sep 2, 2026
9a6e74b
link Role to the compensation scatter chart
abovedave Sep 2, 2026
4d2c88b
add SCROLLS set for charts that need a scrolling floor width
abovedave Sep 2, 2026
2a0292f
fix row customization for multi-series charts
abovedave Sep 2, 2026
67e46bc
dim the row list meta text
abovedave Sep 2, 2026
21d43a6
tighten question heading spacing on the full data view
abovedave Sep 2, 2026
01e3ea6
format
abovedave Sep 2, 2026
a4aa9c8
move share/cite button outside the chart
abovedave Sep 2, 2026
83e67c4
update button copy
abovedave Sep 2, 2026
b9cf3d9
dark mode methodology
abovedave Sep 3, 2026
0bbebde
homepage stats
abovedave Sep 3, 2026
ff7c7f5
alpha not needed for exports
abovedave Sep 3, 2026
0da6899
marked is dev only
abovedave Sep 3, 2026
baf9c78
tooltips are now accessible by keyboard
abovedave Sep 3, 2026
3e60357
fix chart scrolling
abovedave Sep 3, 2026
3cda54c
comments
abovedave Sep 3, 2026
05980e7
fix md table headers
abovedave Sep 3, 2026
96bb181
comment on optional description
abovedave Sep 3, 2026
c47e3b5
year filter guard
abovedave Sep 3, 2026
d2f98e6
add extra stats to llm page
abovedave Sep 3, 2026
05cd645
page ordering
abovedave Sep 3, 2026
d1a07eb
copy md text
abovedave Sep 3, 2026
7a5b98a
ordering
abovedave Sep 3, 2026
af1c6cb
dark mode & hover state
abovedave Sep 3, 2026
f5efc92
release info
abovedave Sep 3, 2026
7235751
fix firefox fade in
abovedave Sep 3, 2026
95ef97d
fix question yaml to branch
abovedave Sep 3, 2026
ea40014
ordering
abovedave Sep 3, 2026
5f06813
fix view transition weirdness
abovedave Sep 3, 2026
e92dba0
Chart and content updates
yepiserin Sep 3, 2026
1084db4
Adding content
yepiserin Sep 3, 2026
ed298b5
Adding SOChangeAddl and a few other things
yepiserin Sep 3, 2026
c9d5213
remove unused comment
abovedave Sep 3, 2026
666b565
Merge branch 'main' of github.com:StackExchange/Survey into 2026-resu…
abovedave Sep 3, 2026
52fc861
downgrade typescript
abovedave Sep 3, 2026
a331462
add quotes slideshow text component
abovedave Sep 3, 2026
67aed81
revert check for ‘Stack;
abovedave Sep 3, 2026
5bcf79f
add sampling
abovedave Sep 3, 2026
6b98448
font size tweak
abovedave Sep 3, 2026
8f42f39
update aspect ratio of quotes
abovedave Sep 3, 2026
fe001dc
remove sampling code
abovedave Sep 4, 2026
8b966b0
sampling docs
abovedave Sep 4, 2026
e16d602
spacing
abovedave Sep 4, 2026
aa21ba4
font size on narrow
abovedave Sep 4, 2026
7f040d8
code formatting
abovedave Sep 4, 2026
64a1b3f
Update AI json
yepiserin Sep 8, 2026
e95aa0a
Added AI landing page content
yepiserin Sep 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# packages/results

# The content sheet, read by `npm run content -w results`
GOOGLE_SHEETS_SHEETID=""

# Netlify PAT
# npm run deploy-preview -w results
# https://app.netlify.com/user/applications
NETLIFY_AUTH_TOKEN=""
6 changes: 3 additions & 3 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ build/
# Static assets, served as-is
packages/results/static/

# Generated by `npm run content -w results`, not checked in
packages/results/src/content/
packages/results/src/data/
# Generated by `npm run content` / `npm run data -w results`, not hand-edited
packages/results/survey.json
packages/results/src/generated/

# Historical result sites, kept as published
packages/archive/
11 changes: 8 additions & 3 deletions .prettierrc
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,21 @@
"printWidth": 140,
"plugins": ["prettier-plugin-svelte", "@ianvs/prettier-plugin-sort-imports", "prettier-plugin-tailwindcss"],
"importOrder": [
"<TYPES>",
"",
"<BUILTIN_MODULES>",
"",
"<THIRD_PARTY_MODULES>",
"",
"^\\$(app|env)/",
"^\\$(config|generated|archive|questions|content|data|charts|lib)",
"",
"^[.]",
"^\\$(archive|charts/utils|config|content|data|generated|lib|questions)",
"",
"^\\$components/",
"",
"^\\$charts",
"",
"<TYPES>"
"^[.]"
],
"importOrderTypeScriptVersion": "5.0.0",
"importOrderCaseSensitive": false,
Expand Down
27 changes: 18 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ Possible answers:

- [questions/](./questions/) — YAML source files for survey questions, plus the top-level [`questions/survey.yaml`](./questions/survey.yaml) flow definition.
- [packages/survey/](./packages/survey/) — Svelte/Vite tooling for previewing the survey, validating YAML, and preparing the survey for Qualtrics.
- [packages/results/](./packages/results/) — The results site for the current survey year, built from the question bank, the year's data export, and editorial copy.
- [packages/archive/](./packages/archive/) — Historical survey releases, including results data, schemas, PDFs, and static result pages.

## Help shape the 2026 survey
Expand Down Expand Up @@ -114,21 +115,29 @@ Run the live survey result site preview:
npm run dev -w results
```

## Versioning
## Process

Survey releases follow a yearly-with-patches scheme:
1. **Gather** — Stack Overflow decides what ships, including suggestions in [Discussions](https://github.com/StackExchange/Survey/discussions).
2. **Author** — `questions/{section}/{QuestionId}.yaml`, flow in [`questions/survey.yaml`](./questions/survey.yaml). Dropped questions move to `questions/retired/` rather than being deleted, so their IDs stay claimed.
3. **Check** — `npm run validate -w survey`; `npm run dev -w survey` to walk the flow; `npm run gen:types -w survey` after a schema change.
4. **Field** — `npm run sync:qualtrics:dry -w survey`, then `npm run sync:qualtrics -w survey`.
5. **Build** — the export lands in `packages/archive/<year>/json/`, copy syncs with `npm run content -w results`, `npm run dev -w results` previews. On `main`, while the survey is in the field.
6. **Publish** — merging to `main` is what goes live, so the order matters:
1. Merge into `main` with `--no-ff`.
2. Cut `releases/YYYY` there and push **the branch first** — the site links to its Netlify deploy.
3. The archive should be at `releases-YYYY.questions.survey.stackoverflow.co`
4. Push `main`. The site is live.
7. **Wind down** — `results.csv`, `schema.csv` and `survey.pdf` land on `main` whenever they are ready after release; `/YYYY/results.csv` redirects to `main`, so nothing needs to be on the release branch for the download to work. Add the year's row to [`index.json`](./packages/archive/index.json) and the archive [README](./packages/archive/README.md). Corrections keep merging into `releases/YYYY` until `main` turns to the next year.

- `v2026` — initial release of the 2026 survey.
- `v2026.1`, `v2026.2`, ... — corrections, metadata fixes, and late clarifications for the 2026 release.
## Versioning

Branches:
Feature branches merge into `main` as usual. Each year gets one branch — `releases/YYYY` — cut from `main` at the results release, open for corrections until `main` turns to the next year, and holding that year's final state from then on.

- `main` — current development for the next upcoming survey year.
- `release/YYYY` — long-lived branch for patching a historical survey year.
**Release branches are never deleted:** the results site links every question into the branch's Netlify deploy. See [packages/survey](./packages/survey/README.md#deployed-preview).

When a survey year locks, `main` is branched to `release/YYYY` and tagged `vYYYY`. Later patches for that year land on its release branch and are tagged as `.N` revisions. `main` continues toward the next survey year.
`releases/v2025-questions` predates this. 2025 ran from a previous repository, so it holds only the imported question bank.

Each question carries a `version: 'YYYY.N'` field matching the release it ships under. Once a question ID appears in a tagged release, the ID is frozen; substantially different questions should receive a new ID so historical response columns remain interpretable.
Each question carries `version: 'YYYY.N'` the survey year, and a revision that resets with it. Bump `N` when changing a question that has already shipped; authoring edits do not count. IDs freeze at the same point, so a change that breaks comparison with earlier answers gets a new ID instead.

## Why open the survey instrument?

Expand Down
Loading