Overview
The Polish Tinker Breeders Association is a nationwide organization supporting Tinker horse breeders and enthusiasts across Poland.
Before the project, many association workflows relied on paper records and manual updates for horse data, owner and breeder information, medical history, awards, tests, licenses, ancestry, documents, statuses, and public-facing association content.
The project focused on replacing fragmented record keeping with a connected digital platform: an internal CRM for structured private records, a headless CMS for editorial control, and a public Next.js website for selected association content.
The public website was only the visible layer. Behind it, the CRM worked as the source of truth for private association data, while the CMS allowed editors to select and prepare approved information for public display.
The main challenge was to keep sensitive internal records private while making selected horse and association data available through clear, crawlable public pages. This required a controlled publishing workflow between the CRM, CMS, and website instead of duplicating data manually.
Contribution
I delivered the public Next.js website and worked on the custom internal platform connected through a shared data model.
On the public side, I built a crawlable frontend for association content and selected horse-related data. The website was connected to the headless CMS, so public pages could be managed through structured publishing workflows.
On the internal side, I worked with CRM-backed records, reporting automation, filtering, validation, statuses, and data-management workflows using Node.js, Express, Prisma, and PostgreSQL.
A key part of the work was keeping private CRM records, CMS-managed public content, and website pages aligned. Editors could choose which selected records and fields should appear publicly, while the full internal data stayed protected inside the CRM layer.



Source of Truth
Horse, owner, breeder, license, test, award, score, pedigree, health-related, document, and status data were managed inside the internal CRM instead of being duplicated as website content.
CMS Publishing Layer
The headless CMS gave editors control over which CRM-linked records and fields could be prepared for public display.
Data Boundary
Full internal records stayed private, while approved horse and association data could be safely displayed through controlled public pages.
Domain Record Relationships
The system handled structured relationships between horses, owners, breeders, parents, offspring, documents, awards, tests, statuses, and other association-specific records.
Filtering & Validation
Admin workflows included search, filtering, validation, statuses, and predictable states to help non-technical users manage large record sets safely.
Automation & Reporting
The internal platform included CRM automation and reporting workflows built around structured association data.
Crawlable Public Website
The public Next.js website presented association content and selected records through structured, crawlable pages designed for public access and search visibility.

