A herd is not a list of animals
On paper a herd looks like a list: one tag number per row, a breed, a date of birth. What costs you time is never that list — it is everything that hangs off it. A birth links a dam to her offspring. A treatment links an animal to a date and to a period before which it must not leave. A group links a set of animals to a paddock, for a stretch of time.
A spreadsheet can hold the list. It cannot answer the questions that cut across it: how many lambs per ewe this season, which females came up empty two years running, which animals clear their withdrawal period this week, how two numbers are related. Those questions do not call for more columns — they call for the records to be LINKED.
What you describe, and what the engine makes of it
You write your need in plain language — "I run 180 ewes in a suckler system, I record lambings, treatments and weights, and I manage four groups across my paddocks". The engine derives a business schema from it: the entities, their fields, what links to what.
Before a single line of code is written, that plan is shown to you and you edit it: rename "animal" to "ewe", add your working number next to the official one, drop a section, fix the values of a status list. This is the point where the application becomes yours rather than a rough reading of your sentence.
The animal, its parentage, its births
Each animal carries its own identity — number, breed, sex, date of birth, dam, status — and everything about it attaches to that record. Its page therefore shows its history: births, weights, treatments, group changes, instead of a stray row in a tab.
Parentage is a relation like any other: an animal points to its dam, who is herself an animal in the herd. That is what lets you walk back up a pedigree without retyping it, and see a female's offspring straight from her record.
- One record per animal, with its full history
- Dam → offspring parentage, with no re-entry
- Dated births: number born, born alive, observations
- Weights and condition scores, tracked over time
- Trash and restore for deleted records
Treatments, withdrawal periods and group moves
A treatment is more than a note: it is a date, a product, and a period before which the animal must not enter the food chain. In a notebook that period does not remind you of itself — you have to remember it. Linked to the animal in a database, it becomes a list you can read: animals still within a withdrawal period, and the date each one clears it.
Groups follow the same logic. An animal belongs to a group, a group occupies a paddock over a period: the day you need to know who is where, the answer is read rather than reconstructed. If you mention your paddock coordinates in your description, the plan can carry a map view; otherwise they stay a list, which is enough for most operations.
- Dated treatments, attached to the animal concerned
- List of animals still within a withdrawal period
- Groups, paddocks and group changes
- Filtering and sorting by group, status, breed or date
- JSON and CSV export of every dataset, whenever you decide
What the application is not
It is an internal management tool, not regulatory software, and the distinction matters more here than elsewhere. Animal identification and keeping a livestock register are obligations set by regulation — in France the livestock register falls under the decree of 5 June 2000. The generated application does not keep that register, connects to no national identification database, notifies no movement on your behalf, and replaces neither your vet nor official health monitoring.
It has no offline mode either: it is a web application, it opens in a phone browser, but with no signal out in the paddock, entry happens when you get back. Put plainly, it saves you memory and cross-checking, not reporting obligations.
What it does do, it does with code that belongs to you: a standard Next.js and Prisma project, exportable as a ZIP or pushed to your own GitHub repository. Whatever is missing can therefore be added by a developer, without asking a vendor for permission.
Possible entities
- Animal
- Birth
- Treatment
- Weighing
- Group
- Paddock
Possible screens
- Dashboard
- Animal list
- Animal record and its history
- Births
- Treatments
- Groups and paddocks
- Settings
Possible indicators
- Animals on hand
- Births this season
- Animals within a withdrawal period
- Females with no birth this year
Frequently asked questions
Does the application replace the mandatory livestock register?
No, and that matters: the livestock register is a regulatory obligation, the application is an internal management tool. It helps you find your births, treatments and groups again; it discharges no reporting obligation on your behalf and connects to no national identification database. Since the code is exportable and standard, a developer can add what you need.
Can it alert me when an animal clears its withdrawal period?
It can show the list of animals still within a withdrawal period, with the date each one clears it, on a screen or a dashboard indicator: that is something you read when you open the application. There is no automatic email or SMS notification. And the period that counts remains the one on your vet's prescription.
Can I record lambings from the barn, on a phone?
The application is a web app served on a dedicated URL: it opens in a phone browser as well as on a desktop. There is no offline mode — with no signal in the building or out in the paddock, entry happens when you get back.
Can several species live in the same application?
Yes, if your description says so. Your text decides the schema: a mixed operation is described as such, and species becomes either a field on the animal or an entity in its own right depending on how you phrase your need. The proposed plan can be edited before generation.
Can several people use it?
Yes: as soon as the application requires a login, it ships real separate accounts across three roles — admin, user, read-only. Rights are global to the application: there is no fine-grained permission per group or per entity.
Can I get my data back if I change my mind?
Yes, in two ways. The Settings screen exports every dataset as JSON or CSV whenever you decide; and the application's full code, database included, exports as a ZIP or pushes to your GitHub to be hosted wherever you want.
