Introduction#

Palmyra is a Spring / SpringBoot SDK for publishing REST APIs from annotated POJOs, paired with a React component library that consumes the same APIs.

You write the data model and the business rules. The framework writes the SQL, the URL routing, the JSON serialisation, the paging, the form state, and the grid wiring.

What Palmyra removes from your day#

  • Hand-rolled controllers — handlers are interfaces; pick the ones you need.
  • DAO / repository boilerplate — annotations on the model declare the schema; SELECT and INSERT are generated at runtime.
  • Per-entity client code — one frontend store factory creates per-endpoint stores for grids, forms, lookups, charts, and trees.
  • Form / grid plumbing on the React side — ready-made PalmyraForm and PalmyraGrid components handle state, validation, paging, sort, and refresh.

What you still own#

  • Your business logic — handler lifecycle hooks (preCreate, onQueryResult, applyQueryFilter, …) are where it lives.
  • Your security stack — Spring Security, JWT, OAuth, SSO; Palmyra plugs into them through AuthProvider and the standard Spring PermissionEvaluator.
  • Your UX — Mantine or MUI, page composition, navigation, themes.

Where to next#

For the framework’s positioning relative to Spring Data REST, JHipster, Hasura, React Admin, and the rest, see Overview. For the rest of this section, continue with Requirements and Installation.