news

Chrome 144 ships Temporal API: Safari's silence kills the party

Sarah ChenSarah Chen-February 12, 2026-6 min read
Share:
JavaScript code showing Temporal API with timeline from 1995 to 2026

Photo by Unsplash on Unsplash

Key takeaways

Chrome 144 shipped Temporal on January 13, 2026. Nine years of TC39 work, 105 core contributors, 27 years after Date's creation. But 50.53% of your users can't use it natively, Safari won't commit to a timeline, and the 300KB polyfill negates the bundle size win. Here's the adoption reality no one's discussing.

Why Safari's silence matters more than Chrome's launch

Chrome 144 shipped Temporal on January 13, 2026. The internet celebrated. "JavaScript dates are finally fixed!" echoed across Hacker News and dev Twitter.

Here's the thing though: your iOS users—54% of the US mobile market—can't use it.

Safari has Temporal in Technical Preview behind a useTemporal flag. No stable release. No timeline. Apple's changelog says nothing. The TC39 proposal hit Stage 4 (fully standardized) in March 2024. Firefox shipped it in May 2025 (v139). Chrome followed in January 2026 (v144).

Safari? Radio silence.

According to Can I Use, Temporal covers exactly 49.47% of global users as of February 2026. That's Chrome 144+ and Firefox 139+. The other 50.53%? They're waiting on Safari.

This isn't new. Safari delayed CSS Container Queries 18 months after Chrome (March 2022 vs. September 2023). Scroll-driven Animations? Chrome shipped in August 2023. Safari still doesn't support them in 2026.

The numbers speak for themselves: if you ship Temporal natively today, half your users get a broken experience. If you polyfill it, you're adding ~300KB to your bundle—more than the moment.js Google told you to remove.

What Temporal actually fixes (and what it costs you)

Temporal solves real problems. Let me break this down:

Native immutability. Date mutates objects, causing silent bugs:

// Date (mutable - DANGER)
const date = new Date('2026-02-12');
date.setMonth(3); // Mutates original object
console.log(date); // Now April, not February

// Temporal (immutable - SAFE)
const date = Temporal.PlainDate.from('2026-02-12');
const april = date.with({ month: 4 }); // Returns new object
console.log(date); // Still February

Timezone-aware by default. Date mixes local time with UTC, causing off-by-one-hour DST bugs:

// Date (naive - ignores DST)
const date = new Date('2026-03-08T02:30:00'); // Hour that doesn't exist in DST
// JavaScript invents an incorrect time

// Temporal (correct)
const zoned = Temporal.ZonedDateTime.from({
  timeZone: 'America/New_York',
  year: 2026, month: 3, day: 8,
  hour: 2, minute: 30
}); // Throws error: ambiguous hour due to DST

Nanosecond precision. Date uses milliseconds. Temporal.Instant uses nanoseconds (1000x better). Critical for:

  • High-frequency financial trading
  • Distributed system logs
  • Real-time event timestamps

Use-case-specific API. Instead of one Date that does everything poorly:

  • Temporal.PlainDate for calendars (no time)
  • Temporal.PlainTime for schedules (no date)
  • Temporal.ZonedDateTime for events with timezone
  • Temporal.Instant for absolute timestamps
  • Temporal.Duration for measuring intervals

The catch? You pay for this with bundle size (if you polyfill) or user coverage (if you don't).

Pro tip: if your app is Chrome-only (internal tools, admin dashboards), Temporal is viable today. But if you have iOS users, the math changes.

The TC39 compromise nobody talks about

In June 2024, at the TC39 meeting in Helsinki, Philip Chimento and Justin Grant presented a controversial "scope reduction": remove customizable Temporal.Calendar and Temporal.TimeZone.

The official reason? Bundle size on Android low-end and Apple Watch. Implementers (Google, Apple, Mozilla) reported that supporting custom calendars and timezones added too much weight to the JavaScript engine.

Who does this affect?

  • Companies needing custom fiscal calendars (fiscal years that don't align with January-December)
  • Religious apps requiring non-Gregorian lunar calendars
  • Systems using custom timezones not recognized by IANA

The original 2017 proposal allowed developers to create their own calendars and timezones. That functionality died in 2024. Implementers wanted to reduce complexity.

According to GitHub issue #2854, several contributors protested: "This turns Temporal into 90% of what we promised, not 100%." But the decision was final.

Result: Temporal supports Gregorian, Japanese, Islamic, Chinese, Hebrew, Indian, Buddhist calendars—but only the built-in ones. If your company needs a custom fiscal calendar, you're out of luck.

Real talk: this was the right trade-off. Supporting arbitrary custom calendars would've delayed Temporal another 2-3 years. The 90% solution ships; the 100% solution doesn't.

Your decision tree: polyfill debt vs. feature wait

Here's your practical decision in February 2026.

Option 1: Polyfill now

  • Add @js-temporal/polyfill (~300KB)
  • Works in all browsers including Safari
  • Pay bundle size cost for 50.53% without native support
  • Cover iOS (54% of US mobile market)
  • Ship today

Option 2: Wait for Safari

  • Don't polyfill
  • Use Temporal only in Chrome/Firefox
  • App breaks for half your users
  • Unknown timeline (Apple won't communicate roadmap)
  • Risk Safari takes until 2028 based on historical patterns

Option 3: Stick with date-fns

  • 49 million weekly downloads
  • ~80KB in typical bundles (tree-shakeable)
  • Works cross-browser TODAY without polyfills
  • Immutable, functional, battle-tested API since 2016
  • No Safari waiting game

Here's what this actually means for your workflow:

If you're shipping consumer-facing apps (e-commerce, social, content), date-fns is the safer bet until Can I Use shows >80% coverage. The 300KB polyfill negates the "remove moment.js" benefit.

If you're building internal enterprise tools (Chrome-only), Temporal is viable natively today. No polyfill, no waiting.

If you're in fintech or scheduling (need nanosecond precision or robust timezone handling), evaluate whether your user base can tolerate 50% polyfilled. If yes, ship Temporal. If no, wait.

Heads up: Safari will likely ship Temporal in Safari 19 (September 2026) or Safari 20 (March 2027). Once Can I Use crosses 75%, the mass migration from date-fns to Temporal begins. Until then, two ecosystems coexist: native (Chrome/Firefox early adopters) and polyfilled (real-world cross-browser production).

Brendan Eich took 10 days to create Date in 1995. Java deprecated it in 1997. JavaScript waited 27 years to fix it. And now that Temporal's here, Safari makes you wait 1-2 more years. That's the web platform in 2026.

Was this helpful?

Frequently Asked Questions

Can I use Temporal API in production in 2026?

Yes, with caveats. Chrome 144+ and Firefox 139+ support it natively (49.47% of users). For Safari and browsers without support, you need the @js-temporal/polyfill (~300KB). If your app is Chrome-only, it's viable today. For cross-browser production, consider date-fns until Safari ships native support.

When will Safari support Temporal?

Apple hasn't announced an official timeline. Based on historical patterns (Safari delayed CSS Container Queries 18 months and other complex features 1-2 years), estimates point to Safari 19 (September 2026) or Safari 20 (March 2027). Currently, it's only available in Technical Preview with experimental flag.

What happened to customizable calendars and timezones?

TC39 removed customizable Temporal.Calendar and Temporal.TimeZone in June 2024 to reduce bundle size on Android low-end and Apple Watch. You can now only use built-in calendars (Gregorian, Japanese, Islamic, Chinese, Hebrew, Indian, Buddhist). Companies needing custom fiscal calendars or non-IANA timezones lost this functionality.

Does Temporal completely replace moment.js and date-fns?

Functionally yes, but practically not yet. Moment.js has 27M weekly downloads despite being in maintenance mode. Date-fns has 49M weekly downloads and works cross-browser without polyfills. Temporal is the future standard, but with 49.47% coverage and a 300KB polyfill, date-fns remains more practical for cross-browser production in 2026.

What's Temporal's main advantage over Date?

Native immutability. Date mutates objects causing silent bugs (if you do date.setMonth(3), it mutates the original object). Temporal returns new objects on each operation, eliminating this class of bugs. Plus: timezone-aware by default, nanosecond precision (vs milliseconds), and use-case-specific API (PlainDate for calendars, ZonedDateTime for timezone-aware events).

Sources & References (8)

The sources used to write this article

  1. 1

    New in Chrome 144

    Chrome for Developers•Jan 13, 2026
  2. 2

    Temporal API Ships in Chrome 144

    Socket.dev•Jan 13, 2026
  3. 3

    JavaScript Temporal in 2026 - is it finally here?

    Bryntum•Jan 1, 2026

All sources were verified at the time of article publication.

Sarah Chen
Written by

Sarah Chen

Tech educator specializing in AI and automation. Makes complex topics accessible.

#javascript#temporal api#chrome 144#web standards#tc39#browser compatibility#polyfills#safari adoption

Related Articles