# pauljamescleary/scala-pet-store

An implementation of the java pet store using FP techniques in scala

Repository: https://github.com/pauljamescleary/scala-pet-store
Canonical: https://ross.abutalabs.com/products/scala-pet-store
Language: Scala
License: Apache-2.0
License Family: permissive
Topics: scala, tagless-final, reference, circe, http4s, rest, doobie, typelevel, rest-api, cats, tagless, final, finally-tagless, example, sample, project
Last push: 2026-04-13T16:45:33+00:00

## Health v2 (maintenance only)
Score: 67/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 77, release rhythm 35, longevity 100
- inputs: {"age_days": 3391, "days_push": 142, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1074, forks 205 (observed 2026-08-28T04:03:29.047606+00:00)

## What it is
A reference implementation of the classic Java pet store built with functional programming techniques in Scala, using the Typelevel stack (http4s, Doobie, Circe, Cats) and the tagless final pattern. It serves as an educational example for developers, especially those coming from Java/Spring, who want to see how a cohesive FP Scala application is assembled.

## Use cases
- learn how to build a REST API in Scala with functional programming
- see a real example of tagless final architecture in Scala
- understand how to wire http4s, doobie, and circe together in one app
- migrate from Java/Spring to idiomatic Scala
- find a starting template for a Typelevel-based Scala web service
- study property-based testing setup with ScalaCheck in a real project

## When to choose
- you are an OO or Java developer learning functional Scala end to end
- you want a reference for the Typelevel stack (http4s, cats, doobie, circe)
- you need a concrete example of tagless final in a full application

## When to avoid
- you need a production-ready pet store or e-commerce backend
- you want a framework or library to depend on rather than study
- you need a frontend - the ScalaJS React front end is not built yet

## Facets
- artifact type: learning-resource
- maturity: active
- function: web-framework, http-server, serialization, database-driver, testing
- domain: web-development, developer-tools, tutorials, programming-languages
- platform: jvm
- tags: scala, tagless-final, typelevel, http4s, doobie, circe, cats, functional-programming, reference-application, rest-api

## Member repositories
- pauljamescleary/scala-pet-store (main) score 67

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:29.047606+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T06:53:32.840318+00:00, confidence not recorded.
  - readme: https://github.com/pauljamescleary/scala-pet-store (fetched 2026-08-28T04:03:29.047606+00:00, sha 144993e7a9d2)
- Data as of 2026-08-30T08:39:29.467469+00:00.
