flatpickr

A lightweight, dependency-free JavaScript datetime picker with themes, locales, and plugins

Library
npm
v4.6.13
16,466 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
55 /100 Fair
Development Activity 0
Maintenance 44
Community 76
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
76 /100 Good
Architecture 76
Code Quality 74
Innovation 70
Learning Curve 85

flatpickr is a JavaScript datetime picker built to replace inconsistent native browser date inputs and heavier alternatives that pull in jQuery, Bootstrap, or moment.js. It runs with zero runtime dependencies, works down to IE9, and covers single dates, date ranges, multiple-date selection, and time-only picking through one configurable API.

The library ships with 51 locales, eight built-in themes (including dark and material variants), and a plugin system (bundled plugins include month-select, week-select, label, and confirm-date) for extending default behavior. Community-maintained wrapper components make it usable directly inside React, Vue, Angular, Ember, Svelte, and Stimulus.js applications without re-implementing the underlying picker logic.

What You Get

  • A dependency-free datetime picker that attaches to any input and works from IE9 through modern browsers
  • Single date, date-range, multiple-date, and time-only picker modes from one configuration object
  • 51 bundled locales for internationalized date/time display
  • Eight built-in themes, including dark and material variants, selectable via a single CSS import
  • A plugin system with bundled plugins for month selection, week selection, labels, and confirm-date behavior
  • Community-maintained framework wrapper components for React, Vue, Angular, Ember, Svelte, and Stimulus.js

Common Use Cases

  • Replacing native <input type="date"> with a consistent, styled picker across all supported browsers
  • Adding date-range selection to booking, filtering, or reporting UIs without a heavy calendar dependency
  • Building multi-locale applications that need date pickers to render in the user’s own language and format
  • Adding a lightweight time-only picker to forms that don’t need full calendar UI
  • Integrating a themed date picker into a React/Vue/Angular/Ember app via a community wrapper component

Under The Hood

Architecture: The entire picker is implemented in a single ~3,000-line src/index.ts factory function that builds and manages the calendar DOM, event bindings, and internal date state per input instance, with supporting concerns split into src/utils/ (DOM helpers, date formatting, polyfills), src/l10n/ (locale definitions), and src/style/ (Stylus-based themes compiled to CSS); the bundled plugin system (src/plugins/monthSelect, weekSelect, labelPlugin, confirmDate) hooks into the same instance lifecycle rather than requiring a separate extension API. Tech Stack: TypeScript compiled via a custom build.ts script into multiple output targets (CommonJS, ESM, and UMD-style browser bundles) plus separate type declaration builds, with Stylus for theme source styling compiled down to plain CSS for distribution — no runtime framework or utility-library dependency at all. Code Quality: The core test suite is comparatively thin for a widely-used library — two top-level spec directories covering the main index.ts behavior, the range plugin, and the month-select plugin, run via Jest with TypeScript type-checking (test:typecheck) as a separate CI step; the project has had no commits since mid-2024, so quality is best assessed against its last stable release rather than ongoing activity. API Design: A single flatpickr(selector, options) call configures everything — mode, locale, theme CSS import, and plugins — which keeps integration to a few lines, and the plugin interface lets consumers add calendar behaviors (like month-only or week-only pickers) without forking the core rendering logic.

Used by 8 apps in this directory

PHP
82%
Other

Akaunting

Invoicing Finance

10,149

Open-source online accounting for small businesses and freelancers — invoices, expenses, and reporting without monthly fees or vendor lock-in.

View details
98
Repo Health
73
Technical
63
Dependency
Built with
PHP 82%
Blade 13%
Updated 6 days ago
PHP
73%
MIT

Bagisto

Analytics · Ecommerce

28,186

Open-source Laravel eCommerce platform for building multi-vendor marketplaces, B2B stores, headless commerce, and AI-powered storefronts.

View details
93
Repo Health
75
Technical
67
Dependency
Built with
PHP 73%
Blade 21%
Updated 1 weeks ago
PHP
51%
MIT

Krayin CRM

CRM · Ecommerce

23,954

Free, open-source Laravel & Vue.js CRM for SMEs and enterprises to manage the complete customer lifecycle.

View details
90
Repo Health
68
Technical
70
Dependency
Built with
PHP 51%
Blade 43%
Updated 1 weeks ago
Scala
63%
AGPL 3.0

lila (Lichess)

Community

18,776

The forever-free, ad-free, open-source chess server powering millions of real-time games, AI analysis, puzzles, and tournaments worldwide.

View details
89
Repo Health
80
Technical
76
Dependency
Built with
Scala 63%
TypeScript 26%
Updated 5 days ago
Svelte
32%
GPL 3.0

Mathesar

Databases

5,136

Spreadsheet-like interface for your PostgreSQL database — self-hosted, no SQL required, native Postgres access control.

View details
84
Repo Health
80
Technical
71
Dependency
Built with
Svelte 32%
TypeScript 27%
Python 21%
Updated 6 days ago
Ruby
79%
GPL 3.0

OpenProject

Collaboration · Productivity · Project Management

16,229

The open source project management platform that unifies Gantt charts, agile boards, time tracking, and team collaboration under full self-hosted control.

View details
96
Repo Health
79
Technical
69
Dependency
Built with
Ruby 79%
TypeScript 13%
Updated 5 days ago
Go
66%
AGPL 3.0

Vikunja

Project Management

5,533

Self-hosted task management with natural-language quick-add, multiple views, and a fully documented REST API — your tasks, your infrastructure, zero lock-in.

View details
86
Repo Health
81
Technical
68
Dependency
Built with
Go 66%
TypeScript 22%
Vue 10%
Updated 5 days ago
Python
57%
Apache 2.0

Zulip

Team Chat

25,962

Topic-based team chat that brings the structure of email threads to real-time messaging, so distributed teams never lose context across hundreds of concurrent conversations.

View details
96
Repo Health
86
Technical
61
Dependency
Built with
Python 57%
TypeScript 19%
JavaScript 10%
Updated 6 days ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers