Skip to content

What is Flora

Théophile Choutri edited this page Jan 3, 2022 · 7 revisions

What is Flora?

Flora is an unofficial alternative index for the Haskell ecosystem, with data coming from the official Hackage server.
The project aims to provide a better experience when looking for packages in the ecosystem, and addressing long-standing shortcomings that the existing tooling have accumulated.

But can't you simply patch Hackage?

Short answer: We already contribute to Hackage.

Long answer: Hackage has made certain decisions that go in the opposite direction to where we are going. Operational concerns, and the need for extreme stability prevent some of our ideas and methods from being fully applicable in the context of Hackage. We would like Flora to be also a ground for innovation and faster feature development.

That being said, cross-pollination is a thing, and we hope not only to get good ideas from Hackage & Cabal, but contribute to their evolution. No conflict, no influence war, no ecosystem splitting. This is done hand-in-hand, in both cooperation and competition.

What are the differences?

User Interface

  • Accessibility, especially through ARIA
  • Responsive interface
  • Dark and Light modes

Data storage

  • Using PostgreSQL instead of an in-memory data store
  • Less RAM-hungry than Hackage for similar workloads
  • Sustainable reverse-dependencies graph

Data model

  • Categories are curated to remove duplicates and redundancy
  • Namespaces, to avoid conflict for a name. When used in read-only copy of Hackage, two namespaces exist: @haskell, for core and boot libraries, and @hackage for the rest.

What is next

Flora is not only built to replicate hackage.haskell.org, but also to be a stand-alone repository.
By being built with twelve-factor app principles and PaaS in mind, it is meant to be easy to deploy and monitor.

However, priority will be given to being a read-only alternative index of Hackage first.