Hiring a Senior TypeScript developer in the US in 2026 is roughly six times harder than hiring a Senior Java developer. The salary gap between them is about $23,000.
That sentence is not a rhetorical flourish. The supply-demand ratio for TypeScript developers in the Glozo Intelligence dataset is 0.16 candidates per open role. For Java it is 16.4. Both numbers are for the same US market, the same quarter, the same seniority mix. The difference is what the choice of a stack does to your hiring pipeline before you write a single job description.
Most founders and hiring managers ask "Python or Go?" as a technical question. It is at least as much a compensation question. The right stack can cut your hiring cost in half. The wrong one can stretch a single senior hire past ninety days.
This article gives you the 2026 numbers across seven US programming languages, using first-party Glozo Intelligence data on over 22,000 US candidates and 1,400 active job postings, cross-validated with Stack Overflow Developer Survey 2025, Levels.fyi, Glassdoor, and ZipRecruiter. For three stacks that fall below our publication sample size (Go, iOS/Swift, Kotlin), we reference public sources only.
Why your tech stack choice is a hiring cost choice
When a founder picks a stack, they are making three decisions at once.
The first is median compensation. A Senior Rust developer in the US has a median total compensation of $187,000. A Senior Java developer in the same city with the same years of experience earns $128,000. The 46% gap compounds across a team of ten engineers. Over a year, that is roughly $590,000 in payroll delta, before any stock or bonus considerations.
The second is supply-demand ratio. Rust has 0.24 active candidates per open US role. Frontend Developer has 38 candidates per role. The first number means every Rust candidate in the market is being contacted by five recruiters at any given moment. The second means the bottleneck is signal, not scarcity. Your sourcing motion has to be different.
The third is geographic concentration. Some stacks cluster around two or three metros. Others distribute evenly across the country. A Rust-heavy team will probably need to hire remote or relocate from Seattle or SF. A Java-heavy team can staff out of Charlotte, Jersey City, and Plano at regional pay scales.
The rest of this article breaks down these three dimensions for seven US stacks with enough first-party sample to publish, plus three stacks (Go, iOS, Kotlin) where we reference public data only.
Methodology
Two paragraphs because this is the part that makes the rest of the article trustworthy.
Data source and date. Glozo Intelligence first-party data, pulled April 24, 2026. We aggregate US job postings and candidate profiles across 30+ sources, normalize titles and skills, and compute median compensation, supply-demand ratios, and geographic concentration per role.
Seniority mapping. Glozo Intelligence categorizes seniority as Entry / Specialist / Expert / Leader. For consistency with public compensation sources and industry convention, we map these to Junior (0-3 years) / Mid (3-6) / Senior (6-10) / Lead (10+) in the tables below. Raw Intelligence data keeps its native taxonomy.
Sample size thresholds. We publish first-party benchmarks where candidate and posting counts support reliable conclusions. For three stacks below that threshold, Go, iOS, and Kotlin, we reference public sources only and mark the section accordingly.
Cross-validation. All our medians are cross-checked against Glassdoor, ZipRecruiter, Stack Overflow Developer Survey 2025, BuiltIn, and Levels.fyi. Where our numbers sit within ±10% of public consensus, we report them without caveat. Where they differ by more than 15%, we explain why.
Important bias to disclose. Companies like DataAnnotation, Mindrift, Alignerr, and YO IT Consulting account for between 9% and 90% of total US demand in several stacks we tracked. These are AI training data labeling contractors, not traditional product engineering employers. We separate their effect from the organic market in a dedicated section below.
The seven stacks
Each subsection follows the same shape: compensation snapshot, seniority and location table, supply-demand ratio, geographic concentration, top employers, one stack-specific insight, public-source cross-check.
Java developer
Enterprise backbone of the US market, with the largest candidate pool in our dataset.
Live market snapshot. Median compensation $128K, supply 10,051, demand 613. Supply-demand ratio 16.4 (balanced). Average listing lifespan 9 days based on 3,683 US listings.
| Level | National | Remote | San Francisco | New York | Chicago | Austin | Seattle |
|---|---|---|---|---|---|---|---|
| Junior | $99K | $85K | $116K | $97K | $85K | $102K | $122K |
| Mid | $118K | $110K | $136K | $127K | $114K | $117K | $135K |
| Senior | $122K | $150K | $170K | $152K | $152K | $141K | $174K |
| Lead | $175K | n/a | n/a | $156K | $155K | $179K | $186K |
Geography. US-wide supply 10,051 with no single-city monopoly. New York 285, Charlotte 221, Plano 219, Jersey City 177. Hotspots where demand runs hot include St Louis (12 open roles, 0 supply, highly competitive) and Okemos, Michigan (15 open, 9 supply).
Top employers. The supply concentration is unlike any other stack. Verizon 152, Capital One 137, Bank of America 125, Wells Fargo 119, AT&T 103, JPMorgan Chase 96, USAA 88, Citi 87. Nine of the top ten are large banks, telecoms, or insurance companies. If you are hiring Java in 2026, you are recruiting directly from financial services payroll.
Insight. Smallest seniority gap in the dataset. The median between Mid and Senior Java is $4K at the national level. This is a mature labor market with tight pricing; the usual "pay senior to lock them in" lever barely moves anything.
Public cross-check. Glassdoor reports $117,964 average for Java developers. ZipRecruiter reports $115,600 median. Our $128K runs 9-11% higher, reflecting our sample tilt toward active senior-level postings rather than the full employee universe.
Frontend developer (JavaScript and TypeScript generalist)
The largest active demand for web work sits in this bucket. We track JavaScript and TypeScript generalist candidates under this title because US job postings do too.
Live market snapshot. Median compensation $121K, supply 5,866, demand 153. Supply-demand ratio 38.3 (oversupplied). Average listing lifespan 8.2 days based on 868 US listings.
| Level | National | Remote | San Francisco | New York | Chicago | Austin | Seattle |
|---|---|---|---|---|---|---|---|
| Junior | $72K | $83K | $92K | $97K | $79K | $95K | $95K |
| Mid | $110K | $106K | $130K | $121K | $110K | $105K | $117K |
| Senior | $135K | $155K | $186K | $171K | $143K | $133K | $155K |
| Lead | $168K | n/a | $235K | $173K | $180K | $180K | $208K |
Geography. Distribution is flatter than Java. US-wide supply 5,866, New York 239, Dallas 69, Washington 31. Several states with open roles have zero matching supply: Georgia (4 demand, 0 supply), Pennsylvania (2 demand, 0), Rhode Island (2 demand, 0). Remote is a large part of the picture.
Top employers. Freelance leads with 385 candidates, 2.5x the second-place employer. Fidelity Investments 33, IBM 29, Amazon 26, Apple 25, Walmart 24. Freelance dominance is the signature pattern of this stack.
Insight. The oversupply ratio (38:1) is not a pricing tailwind. It is a filtering problem. Hiring managers report their real bottleneck is distinguishing mid-tier from top-tier frontend candidates, not finding candidates at all. For solo recruiters, the implication is clear: flat-fee or volume pricing works here, retained search does not.
Public cross-check. Median compensation aligns directionally with ZipRecruiter TypeScript ($129K) and the broader Indeed JavaScript consensus ($110K-$135K). Public sources fragment across "JavaScript," "Frontend Engineer," "React Developer," which is why we unify under one Intelligence label.
TypeScript developer (small sample, strong signal)
A small, high-signal sample. Read this section as directional, not definitive.
Live market snapshot. Median compensation $151K, supply 11, demand 68. Supply-demand ratio 0.16 (critically undersupplied). Only 16 US listings underpin these numbers. Treat the salary table as suggestive.
| Level | National | Remote | San Francisco | New York | Chicago | Austin | Seattle |
|---|---|---|---|---|---|---|---|
| Junior | $87K | $87K | $102K | $89K | $77K | $88K | $108K |
| Mid | $133K | $106K | $151K | $141K | $134K | $127K | $148K |
| Senior | $235K | $156K | $192K | $195K | $213K | $159K | $199K |
| Lead | n/a | $216K | $255K | $225K | $196K | $182K | $256K |
Why sample is thin. US candidates rarely title themselves "TypeScript Developer" on resumes. They use Frontend Engineer, Full-stack Engineer, or Software Engineer. The 11 candidates in this cohort are the ones who explicitly brand themselves TypeScript-first, often former JavaScript seniors who moved full-time into TypeScript-only teams. The 68 demand count includes many AI training data labeling roles, discussed below.
Insight. Strip out DataAnnotation and similar AI training employers and real product TypeScript demand drops from 68 to roughly 7 roles. If you are hiring product TypeScript talent in 2026, you are competing with a handful of named companies in SF and Seattle, not a broad market.
Public cross-check. ZipRecruiter reports $129K for TypeScript Developer. Talent.com reports $134K. Wellfound reports $136K (startup-focused). Glassdoor reports $77K, which is an outlier. Our $151K runs 10-17% above the ZipRecruiter-Talent.com-Wellfound consensus, consistent with our small sample skewing senior.
Python developer
Mixed enterprise and AI overlap. One of the largest cohorts in our dataset but the AI training demand skew is real.
Live market snapshot. Median compensation $125K, supply 2,612, demand 479. Supply-demand ratio 5.45 (balanced). Average listing lifespan 9 days based on 1,581 listings.
| Level | National | Remote | San Francisco | New York | Chicago | Austin | Seattle |
|---|---|---|---|---|---|---|---|
| Junior | $87K | $89K | $114K | $132K | $98K | $114K | $127K |
| Mid | $117K | $119K | $136K | $133K | $127K | $118K | $149K |
| Senior | $140K | $144K | $177K | $163K | $152K | $155K | $162K |
| Lead | $156K | $231K | $220K | $200K | $107K | $178K | $210K |
Geography. US supply 2,612, New York 119, Charlotte 54, Plano 39, Columbus 18, Reston 1, Chandler 6. Reston stands out: 17 open roles and 1 candidate, highly competitive. The remote Lead median of $231K is the highest remote seniority figure in the dataset.
Top employers. Freelance 133, Bank of America 55, Capital One 32, Verizon 23, Fannie Mae 20, Walmart 18. Freelance is the largest single bucket, consistent with Python's strong independent-contractor market.
Insight. DataAnnotation alone posts 121 of the 479 open US Python roles. That is 25% of total demand from one AI training labeling company. Pull it out and the real product Python market is closer to 358 roles, not 479. The skew matters when budgeting time-to-fill.
Public cross-check. Glassdoor $129K, ZipRecruiter $124K, BuiltIn $122K. Our $125K sits in the middle of public consensus. Strong alignment.
.NET / C# developer
Niche in 2026. Large supply, small demand, stable pricing.
Live market snapshot. Median compensation $123K, supply 357, demand 14. Supply-demand ratio 25.5 (balanced-to-oversupplied). Average listing lifespan 11 days based on 89 listings.
| Level | National | Remote | San Francisco | New York | Chicago | Austin | Seattle |
|---|---|---|---|---|---|---|---|
| Junior | $76K | $70K | $132K | $85K | $90K | $111K | $81K |
| Mid | $90K | $90K | $141K | $122K | $121K | $127K | $147K |
| Senior | $113K | $143K | $159K | $137K | $143K | $149K | $133K |
| Lead | $215K | n/a | $164K | $178K | $157K | $182K | $202K |
Geography. US supply 357, with a flatter distribution than Java or Python. Atlanta 7, New York 12, Queens 3. Some demand hotspots appear in unusual places: Cary, North Carolina (2 demand, 2 supply, highly competitive); Decatur (2 demand, 0 supply).
Top employers. CVS Health 5, Freelance 5, HP 4, Deloitte 4, Wells Fargo 3, State of Ohio 3, AT&T 3, UPS 3. Enterprise and government-adjacent. No big-tech presence.
Insight. The biggest Junior-to-Lead seniority jump in our dataset: $76K to $215K national, a 183% premium for top seniority. Unlike Java, where pricing compresses, .NET rewards staying in the stack into Lead. Part of the story: Junior .NET is genuinely low-demand and low-paid; senior .NET rolling up enterprise modernization projects earns enterprise-consultancy rates.
Public cross-check. Glassdoor .NET Developer average $133K, Salary.com C# Programmer $120K, Senior .NET PayScale $117K. Our $123K is within 5% of Glassdoor and Salary.com consensus.
Rust developer
The high-end ceiling in US developer compensation in 2026. Thin pool, AI training demand pulling hard.
Live market snapshot. Median compensation $187K, supply 20, demand 85. Supply-demand ratio 0.24 (critically undersupplied). Average listing lifespan 11 days based on 31 listings. Small-sample caveat applies to seniority benchmarks.
| Level | National | Remote | San Francisco | New York | Chicago | Austin | Seattle |
|---|---|---|---|---|---|---|---|
| Junior | $94K | $98K | $99K | $97K | $92K | $88K | $98K |
| Mid | $155K | $153K | $153K | $153K | $136K | $109K | $155K |
| Senior | $215K | $225K | $238K | $220K | $164K | $164K | $225K |
| Lead | $285K | $285K | $211K | $290K | n/a | $211K | $290K |
Geography. US supply 20 total. Los Angeles 1, Palo Alto 0, Oregon 0, California 0. Most Rust demand is posted in Seattle (4), Washington state (3), Los Angeles (2), all highly competitive (ratio 0 or 0.5). If you are not in Pacific time zone, you are hiring remote.
Top employers. Freelance 3, then one-off named companies: Verizon, Premonition Analytics, SKY QA Solutions, Ford Motor Company, Videolabs, DataSnake. No dominant concentration.
Insight. Headline demand of 85 roles is misleading. DataAnnotation alone posts 58, YO IT Consulting 18, Alignerr 3, Mercor 1. That is 80 of 85 total, all AI training data labeling contractors. Real product Rust hiring demand is closer to 5 roles nationally. The Rust market is thin even by Rust standards.
Public cross-check. Glassdoor $147K average, Salary.com range $114K-$190K (p25-p75), Jobicy $130K, ZipRecruiter $110K. Our $187K runs above public averages, corresponding to the Glassdoor p75 ($190K). This is consistent with our sample skewing senior (few junior Rust developers exist in the market), and the small-sample caveat should stay visible for any reader relying on these numbers.
Ruby on Rails developer
Legacy but sticky. Small but healthy market, freelance-heavy.
Live market snapshot. Median compensation $130K, supply 193, demand 15. Supply-demand ratio 12.87 (balanced). Average listing lifespan 8.3 days based on 72 listings.
| Level | National | Remote | San Francisco | New York | Chicago | Austin | Seattle |
|---|---|---|---|---|---|---|---|
| Junior | $89K | $89K | $78K | $81K | $66K | $120K | $97K |
| Mid | $129K | $122K | $143K | $133K | $126K | $140K | $139K |
| Senior | $174K | $158K | $191K | $163K | $160K | $164K | $181K |
| Lead | n/a | n/a | $250K | $220K | $200K | $169K | $202K |
Geography. Austin 2, New York 9, Boston 0 supply, Durham 3. Small enough market that rounding matters. No single metro dominates.
Top employers. Freelance 9, TEKsystems 4, OneMain Financial 2, Auction Edge 2, Cerner 2, BNY Mellon 2, Relativity 2. Freelance is the largest bucket by a wide margin, similar to the Python and Frontend patterns.
Insight. Ruby on Rails has aged into a "maintenance and modernization" stack. Companies that built on Rails in the 2010s are still on it, and they pay senior rates to keep someone on staff who can patch, migrate, or lift-and-shift. DataAnnotation and other AI training contractors do not hire for Rails, so the 15-role demand is all organic product hiring. Smaller absolute number, cleaner signal.
Public cross-check. Glassdoor $137K average, ZipRecruiter $122K median, Indeed $117K, RubyOnRemote $144K. Our $130K sits in the middle of public consensus. Strong alignment.
The AI training distortion
We flagged this in the methodology. The section explains why it matters.
In five of the seven stacks we tracked, a single category of employer dominates active US demand: AI training data labeling contractors. Named companies include DataAnnotation, Mindrift, Alignerr, YO IT Consulting, DataSnake, and Mercor. They post engineering-title roles for remote, contract-based work where the engineer rates, evaluates, and annotates outputs from large language models.
The demand concentration is large:
| Stack | Top AI training employer(s) | Share of total US demand |
|---|---|---|
| TypeScript | DataAnnotation, Alignerr | ~90% |
| Rust | DataAnnotation, YO IT, Alignerr | ~94% |
| Python | DataAnnotation, Mindrift | ~30% |
| Frontend | DataAnnotation | ~41% |
| Java | DataAnnotation | ~9% |
| .NET | None | 0% |
| Ruby on Rails | None | 0% |
What these roles actually are. DataAnnotation and similar platforms pay $25-$30+ per hour for contributors who rate AI responses, rank outputs, create prompts, or check generated code for correctness. Work is task-based and remote. Contributors are 1099 contractors, not employees. The global data labeling services market was worth about $3.7 billion in 2024 and is forecast to exceed $17 billion by 2030, so the inflation of demand in our dataset is not a quirk; it is a genuine market shift.
Why this matters for recruiters and hiring managers. If you are running a Rust search and planning pipeline capacity against "85 open US roles," you are double-counting. The real product engineering market for Rust is closer to 5 roles. For TypeScript it is closer to 7. The difference between "moderate market" and "five named companies" changes every input: sourcing strategy, candidate messaging, time-to-fill estimate, fee structure.
Three practical takeaways. First, when reading any aggregated demand figure for a technical stack in 2026, ask "which percent is AI training?" before planning. Second, candidates who have done DataAnnotation work are a viable sourcing pool for product engineering roles; they are technical, remote-fluent, and often between full-time gigs. Third, if you are hiring for an AI training role yourself, the comp benchmark is different (hourly, no equity) and the candidate pool overlaps with but is not identical to the product engineering pool.
Supply-demand map
Across the seven stacks, our data breaks into three clear buckets for recruiter strategy.
| Bucket | Ratio | Stacks | Recruiter implication |
|---|---|---|---|
| Critically undersupplied | <0.5 | TypeScript (0.16), Rust (0.24) | Proactive outreach only. Weeks to months. Candidates get multiple offers. Retained search only. |
| Balanced | 5 to 20 | Python (5.5), Java (16.4), Ruby on Rails (12.9) | Standard cadence. Candidate fit matters more than supply. Contingency is a fair default. |
| Oversupplied | >20 | Frontend (38.3), .NET (25.5) | Filtering problem, not scarcity. Be selective. Flat-fee or volume pricing beats retained. |
The bucket placement directly maps to pricing model. A critically undersupplied stack justifies retained search: the client is paying to secure scarce talent, the recruiter is doing real market-making work, and the fee reflects it. An oversupplied stack does not. If you try to charge a retained fee for a Frontend role with 38 candidates per opening, the client sees you as overpriced. Match the model to the market.
For deeper breakdowns on fee models, see our 2026 recruiter salary analysis, which covers contingency vs. retained vs. flat-fee math with named agency benchmarks.
Public-source context: Go, iOS, and Kotlin
Sample size in our Glozo Intelligence dataset for Go, iOS/Swift, and Kotlin fell below our publication threshold for first-party benchmarks. For these three stacks, we reference public sources only: Glassdoor, ZipRecruiter, BuiltIn, and Stack Overflow Developer Survey 2025.
Go / Golang
Public consensus puts the median Go developer salary in the US around $125K-$140K in 2026. ZipRecruiter reports $108K for "Go Developer" and $118K for "Golang Developer" (the same cohort, different title). Glassdoor average $139K. Indeed $125K. Junior Go starts around $78K-$104K; Senior runs $156K-$234K. Go hiring in 2026 is niche but premium: the candidate pool is smaller than Java or Python, and the compensation premium vs. generalist backend work is real but below the Rust level. Recruiters should expect to run active outreach rather than inbound; Go candidates typically stay put when content.
iOS / Swift
Glassdoor reports $132K average for iOS Developer based on 1,345 salary submissions. ZipRecruiter $123K median for iOS Swift Developer. Entry-level Swift around $75K median; senior pushes $145K-$200K; contract rates $95-$160 per hour. Geographic concentration is heavy in California, New York, and Austin; Apple ecosystem pull keeps the Bay Area as the dominant supply market. For recruiters, the key is that iOS/Swift candidates have strong freelance and contract preference; full-time direct-hire search faces more objections than on Android. Budget accordingly.
Kotlin / Android
Glassdoor reports $118K average for Kotlin Developer and $107K median for Android Developer. Kotlin-specific roles command a ~$10K premium over generic Android. Pay range spans $81K to $180K, with p90 top earners at $180K. Top-paying states are California, Washington, and Utah. Kotlin hiring in 2026 is mature and stable: less scarcity than Rust or Go, less premium than iOS, but healthy demand from Android-first companies and fintech mobile teams. Flat-fee pricing works here; retained is overkill.
Cross-validation: Intelligence vs. public sources
For transparency, the table below shows how our seven first-party medians compare to public consensus.
| Stack | Glozo median | Glassdoor | ZipRecruiter | Delta |
|---|---|---|---|---|
| Python | $125K | $129K | $124K | ±2% |
| Java | $128K | $118K | $116K | +9-11% |
| TypeScript | $151K | $77K (outlier) | $129K | +17% |
| Frontend | $121K | n/a | ~$129K | -6% |
| .NET | $123K | $133K | ~$120K | -5-8% |
| Rust | $187K | $147K | $110K | +27-40% (small sample) |
| Ruby on Rails | $130K | $137K | $122K | ±4% |
Python, .NET, and Ruby on Rails align tightly with public consensus. Java, TypeScript, and Rust run higher, consistent with our sample tilting toward active senior postings and away from the full employee universe. For any reader stress-testing a specific number against another source, pick the middle of our figure and the Glassdoor figure and you will be within 5% of a defensible US market median.
What is changing in 2026
Three macro patterns are worth naming.
AI training demand is the story. For several stacks, a single category of employer (AI training data labeling) moves aggregate demand more than all FAANG combined. Recruiters and founders making hiring plans against aggregated demand numbers for TypeScript or Rust in 2026 will systematically over-budget pipeline capacity unless they strip out this distortion.
Rust is the new premium stack. Median $187K, active US candidate pool of 20. Supply has not caught up with demand from blockchain, infra, and AI platform teams. Compensation has accelerated faster than any stack we tracked year-over-year. Expect the premium to persist through 2026 and 2027 until university Rust programs backfill.
Remote compensation keeps inverting at the top. Remote Lead median compensation exceeds on-site Lead in multiple stacks (Python Remote $231K vs. National $156K; Rust Remote $285K vs. National $285K at parity). Entry and Mid levels still penalize remote; senior levels reward it. The pattern we identified for recruiters in our 2026 recruiter salary analysis holds for engineering.
Enterprise stacks stay enterprise. Java and .NET supply is concentrated in banks, telecoms, and insurers. This is unchanged from 2023. If you are competing with Capital One, Wells Fargo, or AT&T on Java hires, the play is not to match their packages; it is to offer something they cannot: faster decisions, direct founder access, modern tooling, less bureaucracy.
Practical implications for recruiters
Translating the data into actions.
Budget calibration by stack. If you are building out a solo recruiting agency in 2026 and trying to anchor search fees, the undersupplied stacks (Rust, TypeScript) justify retained engagements at 25-33% of first-year base. Balanced stacks (Python, Java, Ruby) are standard contingency territory at 18-22%. Oversupplied stacks (Frontend, .NET) fit flat-fee or volume-based pricing: $4K-$8K per hire, with service-level commitments on pipeline speed rather than candidate quality. See our 2026 recruiting agency playbook for the full fee-model breakdown.
Time-to-fill expectations. Undersupplied stacks: 60-90 days realistic, 120+ days not unusual. Balanced stacks: 30-45 days on a healthy pipeline. Oversupplied stacks: 14-30 days with decent sourcing discipline. The Intelligence average listing lifespan of 8-11 days across stacks tells you something about hiring manager behavior; it does not tell you time-to-close on a signed offer.
Where to source by stack. Freelance-dominant stacks (Python, Frontend, Ruby on Rails) require sourcing tools that pull from GitHub, Stack Overflow, LinkedIn Open-to-Work, and community platforms. Enterprise-dominant stacks (Java, .NET) reward direct outreach to named employers: someone at Wells Fargo, AT&T, or Capital One is often your best signal for a mid-sized fintech's Java hire. For AI training distortion stacks (TypeScript, Rust), DataAnnotation's current and past contributors are a pool worth sourcing from.
Where Glozo fits. Glozo Intelligence is the data layer behind these numbers. Recruiters use it to check supply and demand before launching a search, to anchor compensation discussions with clients, and to identify geographic arbitrage opportunities. Try Glozo Intelligence with a free analysis for any role you are hiring for.
Ready to check the numbers for your role?
The tables above are snapshots. Your specific search is a specific query. Glozo Intelligence lets you describe any role, location, or seniority in natural language and returns live supply, demand, salary benchmarks by metro, top employers, and listing lifespan in about ninety seconds. First party data on 22,000+ US candidates across these stacks, updated weekly.

