Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


Website for hosting and searching PureScript API documentation

Subscribe to updates I use pursuit

Statistics on pursuit

Number of watchers on Github 84
Number of open issues 49
Average time to close an issue 17 days
Main language Haskell
Average time to merge a PR about 22 hours
Open pull requests 5+
Closed pull requests 18+
Last commit almost 2 years ago
Repo Created over 5 years ago
Repo Last Updated over 1 year ago
Size 1.19 MB
Homepage https://pursuit.p...
Organization / Authorpurescript
Latest Releasev0.6.3
Page Updated
Do you use pursuit? Leave a review!
View open issues (49)
View pursuit activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating pursuit for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)


Build Status

Pursuit hosts API documentation for PureScript packages. It lets you search by package, module, and function names, as well as approximate type signatures.

Pursuit is currently deployed at

Information for package authors can be found at


It's recommended to use stack:


To build in development mode:

$ stack build

To build in production mode:

$ stack build --flag pursuit:-dev


To iterate quickly during development, you can use ghci:

$ stack ghci

Once the REPL has loaded, you can reload the code and then update the web server:

> :l DevelMain
> update

Web server

To run the web server on http://localhost:3000:

$ stack exec pursuit

You might want to add some content to the database (see Database), otherwise you will not be able to browse any packages. The database will be regenerated from this data source before the server starts listening; this can take a short time depending on how much data you have.


Pursuit currently uses the filesystem as a database, since it requires no setup and it makes it easy to use Git and GitHub for backing up. The data directory is set via an environment variable (see Configuration, the default is data).

If you need some sample packages to work with, you can clone the pursuit-backups repo and copy the packages you want to the verified/ directory. This is more convenient than manually uploading each package.

Database structure

The database structure is as follows:


The cache/ directory has files that mirror the URL structure of the web application, and contains files which do not change and may be served as-is without forwarding the request on to the Yesod application. See Handler.Caching for more details.

The verified/ directory stores uploaded packages. Each package has its own directory, and then there is a JSON file for each version. These JSON files each contain a serialized Package GithubUser; see Language.PureScript.Docs.Types in the compiler for details about these types.

The backup process simply involves rsyncing everything in the verified/ directory into a git repository, making a commit, and pushing it to GitHub.


All configuration is done at startup via environment variables. The relevant code is in the Settings module.

All configuration variable names start with PURSUIT_ (eg, PURSUIT_APPROOT). All configuration variables are optional; for development, it is fine to just run stack exec pursuit leaving them all unset.

See src/Settings.hs for more details.


The favicon assets in static/favicon were taken from the Purescript Logo repository.

pursuit open issues Ask a question     (View All Issues)
  • about 3 years Support other url formats in bower.json
  • about 3 years Hide modules that are in bower.json "ignore" field
  • over 3 years Add spell correction
  • over 3 years Add back type search
  • over 3 years Display package description in main list
  • over 3 years Link in Pursuit Control.MonadPlus broken
  • over 3 years Include date uploaded on package pages
  • over 3 years Broken links to modules from different packages in re-exports
  • over 3 years Handle invalid gzip data errors better
  • over 3 years Add a help page explaining the syntax of searches
  • over 3 years Keep track of up-to-date libraries
  • almost 4 years API
  • almost 4 years Search within a particular package
  • almost 4 years Some kind of API for getting docstrings
  • almost 4 years Provide a link for each definition which takes you to the search for that name
  • almost 4 years Display why readmes were not available
  • almost 4 years Type class members aren't documented
  • about 4 years Tree-diagram of official purescript and purescript-contrib libs
  • about 4 years Latex math?
  • about 4 years Use instead of README if it is present
  • about 4 years Large records are difficult to read
  • about 4 years Support package tags and descriptions
  • over 4 years Feature request: Display transitive dependency versions
  • over 4 years Items should be presented as `class (Apply f) <= Applicative f` rather than `class (Apply f) => Applicative f`
  • over 4 years Tool to show differences between two versions of a package
  • over 4 years Source code with links (copy Hackage)
  • over 4 years Take advantage of Hoogle's instant search and completions
  • over 4 years Search should include row labels
  • over 4 years Rows in Hoogle results are hideous
  • over 4 years Searching by type is too general
pursuit open pull requests (View All Pulls)
  • Update for PureScript 0.9.1
  • changes to support building with GHC 8 and the latest LTS
  • Add favicon
  • Add RSS feed for latest packages
  • Adds documentation on how to format module documentation to help page
pursuit questions on Stackoverflow (View All Questions)
  • Explanation of high resolution pursuit algorithm and implementation
  • Matching pursuit (MP) and Orthogonal matching pursuit (OMP) are based on l2 norm?
  • How to find out the coefficient in matching pursuit algorithm
  • Implementing matching pursuit algorithm
  • Kernel Matching Pursuit on CVXPY
  • MATLAB Matching Pursuit wmpdictionary using Gabor or customized atoms
  • Steering Behaviors, Pursuit, How do I predict a linear vector(MATH)?
  • Matching pursuit algorithm using Gabor dictionary
  • In pursuit of the missing tasks: potential discrepancy between reported task numbers and results
  • Pathfinding to escaping target (chase or pursuit pathfinding)
  • MATLAB - Curves of Pursuit (Predator/Prey)
  • Matching Pursuit Algorithm using Gabor Dictionary in Matlab
  • determine trajectory for object followers - curve of pursuit
  • GameKit with custom interface? (E.g like in Need for Speed Hot Pursuit)?
pursuit list of languages used
pursuit latest release notes
  • Add a load more button for display of additional search results (@felixschl, #305)
  • Fix source links in re-exported declarations (@felixschl, #345)
  • Display the types of data constructors and type class members in search results (@hdgarrood, #264)
  • Include entries from Prim in search results (@hdgarrood, #265)
  • Allow data constructors and type class members to be found when searching by type (@hdgarrood, #303)
  • Fix searching for type operators by name (@hdgarrood, #330)
  • Slightly promote search results which come from packages with more reverse dependencies (@hdgarrood, #353)
  • Fix an issue where any query which included a hyphen would be treated as a type, preventing searching by name; this was a problem for queries such as e.g. generics-rep (@hdgarrood, #321)
  • Take into account whether type variables match when performing type search. For example, after this change, map ranks higher than cmap for the query (a -> b) -> f a -> f b; previously they were equally ranked (@hdgarrood, #355)
  • Add help explaining the search feature (@hdgarrood / @grossbart, #339, #357)
  • Improve 'package not found' message (@hdgarrood)
  • Add favicons (@grossbart)
  • Update to PureScript 0.11.7 (@hdgarrood)
  • Add publish date to package pages (@hdgarrood)
  • Redirect URLs without a version to the latest version (@hdgarrood)
  • Strip leading/trailing whitespace before searching (@hdgarrood)
  • Allow operators to appear in search results without being wrapped by parens (@hdgarrood)
  • Add a link to Prim to the homepage (@joneshf)
  • Clarify contributing docs (@grossbart)
  • Update to stackage LTS 8.18 (@hdgarrood)

Use purescript-0.11.4

Other projects in Haskell