Partner
Anita Legal GmbH
Case study07
Source-grounded legal AI research with court decisions, traceable citations, a private library and case files

Partner
Anita Legal GmbH
Industry
Legal Tech & Law
Core technologies
React · TypeScript · AWS
At a glance
Anita is Anita Legal GmbH's AI-assisted research and document platform for law firms, solo practitioners and in-house legal departments. From January to June 2026, DuoByte worked on the React frontend as part of the company's development team. DuoByte's contributions include the new library, the case file structure, uploads with optional anonymization and a Playwright test suite that gates every deployment on the development branch.
Our role: From January to June 2026, DuoByte worked as an external development partner alongside Anita Legal GmbH's existing frontend team and delivered clearly scoped product areas from the interface down to test coverage.
Project work
How the project came together: from the context and requirements through implementation to where it stands today.
Context
Anita lets lawyers ask legal questions in plain language. The platform searches court decisions and the user's own documents, drafts an answer and links its statements to interactive citations that jump straight to the passage in the original document. In legal work, that is the whole point: every statement has to be checkable against the source text.
The browser application is a React codebase that has grown since 2022, with several developers involved. It runs on AWS, with sign-in through Amazon Cognito, backend APIs behind API Gateway, document storage in Amazon S3 and delivery through AWS Amplify. Subscriptions run through Stripe, and Sentry captures runtime errors.
DuoByte joined in January 2026, when a larger overhaul of the interface and document management was coming up. The work happened in the client's repository, through pull requests against the development branch, with code reviews by the in-house team.
Challenge
Anita was meant to evolve from a research tool into a workspace where lawyers store their material, organize it by matter and deliberately pull it into their research. That required a library for uploaded and bookmarked documents, a case file structure spanning all research, and an upload flow that can anonymize confidential briefs before processing.
The hard part was less any single feature than the environment around it. The application serves several user groups with separate interfaces, talks to dozens of API endpoints and mixes older JSX components with new TypeScript modules. AI answers are produced asynchronously and fetched by polling, and uploads go through text recognition and anonymization in the backend.
Privacy requirements added to that. Product analytics may only start after explicit consent, and error reports must not contain file names or access links to client documents. Since nobody can click through every workflow by hand before each release, the team also needed automated tests that follow real user paths.
Solution
The core of DuoByte's work was the new library. It brings bookmarked court decisions, the user's own uploads and collections together in one list that can be searched server-side, filtered by case file, origin and court level, and sorted. Documents can be dragged in, the app asks before accepting a duplicate file name, and new entries stay flagged until they are opened for the first time.
When uploading, users decide per document or by default whether personal data such as names, addresses and case numbers should be redacted. The interface tracks each document's processing status and reports when it is ready or when processing fails.
In research, users can pass the entire library, a collection or a single document as context, for either a quick or a deep search. If the analysis takes longer, the browser can notify them with a sound as soon as the sources are in.
Implementation
DuoByte wrote new modules in TypeScript, even when they were embedded in existing JSX pages. The library is split into dedicated hooks for mutations and drag and drop, a context and individual components. A typed API client covers collections, uploads, renaming, deletion and anonymization, so the contracts with the backend live in one place.
For quality assurance, DuoByte built a Playwright suite covering sign-in, search, the document view, the library and case files. The default suite is hermetic: authentication and every API response are mocked, a global guard fails any test that makes an unexpected backend call, and mock data is checked at runtime against the expected data contracts. An extended suite runs the production build in Chromium, Firefox and WebKit.
An additional smoke test signs in with a real Cognito account against a dedicated test backend, starts a research request and checks that it gets processed; it refuses to run against production addresses. In AWS Amplify, type checks, the deterministic suite and this smoke test run before the development branch is built. If any of them fails, Amplify does not publish a new version, and GitHub Actions report the same results on every pull request.
Errors in the upload flow are reported to Sentry with the phase, file type and a session ID, after file names and signed links have been stripped. Static analysis with Semgrep and secret scanning with Gitleaks are run by the in-house team, and DuoByte's contributions passed through the same checks.
Outcome
Anita users now keep court decisions and their own briefs in one library, assign them to case files and sub-files, and direct questions at exactly those documents. Confidential documents can be redacted before processing, and every source can be checked in the right viewer.
For Anita Legal GmbH's team, every change on the development branch is covered by automated tests before it ships. New features are tested by the same rules: tags for critical flows, test data from fixture factories, and waiting for requests or stable states instead of fixed timeouts. The suite and its rules are documented in the repository in English and German, so the in-house team can keep it going without DuoByte.
System architecture
Technologies were combined to suit the task, operating model and long-term maintainability.
Related services
Keep exploring
Next case study

Your project
Tell us what your system needs to do. We bring structure to requirements, architecture and delivery.