Task: Ensure the correct rendering of text layers from the web application (https://сайт) into the final video file (webm VP9+alpha) while preserving fonts, colors, animation timings, and achieving full identity with the client's preview.
PROJECT CONTEXT:
Frontend: React (Vite),
Backend: FastAPI,
Storage: MinIO (S3-compatible),
DB: PostgreSQL,
Containerization: Docker, docker-compose,
For local development, docker-compose.yml is used (the project map will be provided to the contractor).
Text layer animations are implemented through Staggerchildren in Framer Motion (the effect of character-by-character text appearance from left to right). The text color is set dynamically depending on the selected postcard template.
IMPLEMENTATION REQUIREMENTS:
Output: the final file format webm (VP9 with alpha channel), frame rate - 30 FPS, resolution 1080x1920 px. Full identity with the preview of text layers (fonts, colors, timings, animation) without loss of quality and animation effects.
Process: The webm file is generated on the backend and saved in the MinIO storage folder for the subsequent stage – the overall rendering of all layers. At this stage, nothing is issued to the client/user, the conversion of text layers should be performed only after receiving a webhook about payment in real-time without subsequent saving of intermediate files (png sequences and other accompanying materials). Payment is simulated through a temporary trigger button. The process must be automated without using third-party programs on the server/local machine (Bodymovin in After Effects, etc.) and without manual labor involvement. Everything should work automatically on the backend based on the trigger – successful payment. The conversion time should take within 30 seconds, the expected size of the webm file is about 50 mb.
File storage location: should be set by a parameter or environment variable so that it can be reconfigured without changing the code.
Flexibility: The code should be written universally: new custom fonts supporting Kazakh Cyrillic should connect automatically without the need to modify the rendering logic. The system should take text parameters dynamically, rather than "hardcoding" a specific file into the code.
For reference: adding new postcard templates and fonts has already been implemented through the admin panel. They are integrated automatically and correctly with one button without code intervention.
RESULT VERIFICATION:
The script, after being connected to the production site, will be tested within 3 working days by using 5 active and 3 new postcard templates, 5 active and 3 new fonts, and 5 options of long and short text with Kazakh Cyrillic. The work will be considered completed only after full compliance of the result with the above implementation requirements.
Propose your budget and timelines. Candidates are requested to immediately describe which tools will be used to solve the task.