Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. JavaScript
  3. tempo

tempo

MITTypeScriptv1.1.0

A lightweight JavaScript/TypeScript library for parsing, formatting, manipulating, and internationalizing dates using native Date objects.

Visit WebsiteGitHubGitHub
2.6k stars38 forks0 contributors

What is tempo?

Tempo is a JavaScript and TypeScript library for parsing, formatting, manipulating, and internationalizing dates and times. It solves the complexity of working with dates by providing a simple API that leverages native Date objects and built-in internationalization capabilities.

Target Audience

JavaScript and TypeScript developers who need to handle dates, times, timezones, and internationalization in their applications, especially those concerned with bundle size and performance.

Value Proposition

Developers choose Tempo for its minimal footprint, tree-shakable design, and straightforward API that uses native Date objects while providing powerful internationalization and timezone support without heavy dependencies.

Overview

📆 Parse, format, manipulate, and internationalize dates and times in JavaScript and TypeScript.

Use Cases

Best For

  • Formatting dates and times for different locales and regions
  • Manipulating Date objects with a simple and intuitive API
  • Handling timezone conversions and offsets in applications
  • Reducing bundle size in projects that need date utilities
  • Parsing date strings into native JavaScript Date objects
  • Building internationalized applications with locale-aware date displays

Not Ideal For

  • Applications requiring immutable date objects or advanced date calculations like financial calendars or recurring events.
  • Projects targeting legacy environments without full Intl.DateTimeFormat support, such as older browsers or specific Node.js versions.
  • Teams that need a vast ecosystem of plugins, extensive community resources, or integrations with other libraries beyond basic utilities.

Pros & Cons

Pros

Native Date Integration

Works directly with JavaScript's built-in Date objects, avoiding the overhead of custom primitives and ensuring seamless compatibility with existing code, as highlighted in the README's philosophy.

Internationalization Support

Leverages Intl.DateTimeFormat for locale-aware formatting and timezone handling, providing complex internationalization with minimal code, which is a core feature emphasized in the documentation.

Tree-Shakable Design

Allows importing only the utilities you need, keeping bundle sizes small—this is backed by the README's note that full international date formatting adds only ~2KB when minified and brotlied.

Lightweight Footprint

With a minimal size of about 2KB for key features, it prioritizes performance and reduced bundle impact, making it ideal for modern web applications.

Cons

Mutable Date Objects

Relies on native Date objects, which are mutable and can lead to side-effects in applications that require immutable data structures or functional programming patterns.

Limited Advanced Features

Compared to libraries like date-fns or moment.js, Tempo may lack built-in support for durations, intervals, or complex parsing scenarios, focusing instead on basic utilities.

Intl API Dependency

Heavy reliance on Intl.DateTimeFormat means performance or compatibility issues in environments without robust Intl support, potentially limiting use in older systems or specific server setups.

Open Source Alternative To

tempo is an open-source alternative to the following products:

m
moment.js
d
date-fns

date-fns is a modern JavaScript library for manipulating dates and times, providing a comprehensive set of functions for formatting, parsing, and calculating dates in a modular and tree-shakeable way.

d
day.js

day.js is a minimalist JavaScript library for parsing, validating, manipulating, and displaying dates and times, offering a lightweight alternative to Moment.js with a similar API.

Frequently Asked Questions

Quick Stats

Stars2,587
Forks38
Contributors0
Open Issues11
Last commit2 months ago
CreatedSince 2023

Tags

#tree-shakable#date-manipulation#datetime#internationalization#time#lightweight#typescript#time-formatting#date#javascript#date-formatting#timezone-handling

Built With

J
JavaScript
T
TypeScript

Links & Resources

Website

Included in

JavaScript34.9k
Auto-fetched 12 hours ago

Related Projects

Day.jsDay.js

⏰ Day.js 2kB immutable date-time library alternative to Moment.js with the same modern API

Stars48,663
Forks2,472
Last commit7 days ago
Moment.jsMoment.js

Parse, validate, manipulate, and display dates in javascript.

Stars47,916
Forks6,973
Last commit1 day ago
date-fnsdate-fns

⏳ Modern JavaScript date utility library ⌛️

Stars36,649
Forks2,004
Last commit9 days ago
LuxonLuxon

⏱ A library for working with dates and times in JS

Stars16,457
Forks796
Last commit1 month ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub