LibreSign / LibreSign/libresign
Automate the request signature screenshot generation
@J0aoSiqueira is already working on this.
Since Aug 28, 2026.
- Dominant language
- PHP
- Stars
- 818
- Forks
- 146
- Avg merge
- 11h 31m
- Merged PRs (30d)
- 326
Description
The screenshot used to show the LibreSign request signature interface is currently updated manually.
We should automate its generation, so developers can recreate it with a single command when the interface changes.
The generated screenshot must replace:
img/screenshot/request-signature.png
A similar approach is already used by profile_fields, where a script from package.json runs a Playwright script responsible for preparing the page and generating screenshots.
What should be done
Add a script to package.json to generate the request signature screenshot. For example:
"screenshots:refresh": "node playwright/generate-screenshots.mjs"
The exact script and file names can be adjusted to fit the LibreSign structure.
The Playwright script should:
- log in using the existing Playwright helpers;
- open the LibreSign Request Signatures page;
- wait until the upload interface is fully loaded;
- expand the Settings section in the left sidebar;
- keep the upload interface visible, before any document is uploaded;
- take a screenshot using fixed and predictable browser dimensions;
- save it directly to
img/screenshot/request-signature.png, replacing the existing file.
Existing Playwright code should be reused where possible instead of implementing the same navigation again.
For example:
playwright/e2e/sign-herself-with-drawn-signature.spec.tsalready opens LibreSign and starts the document upload flow from this screen;playwright/support/nc-navigation.tsalready providesexpandSettingsMenu(page)and should be reused to keep the Settings section open.
The screenshot generator does not need to continue the signature flow after reaching the upload screen.
Acceptance criteria
- A developer can generate the screenshot using an npm script from
package.json. - The command does not require manual browser interaction.
- Existing Playwright helpers are reused where possible.
- The screenshot shows the Request Signatures upload interface.
- No document needs to be uploaded before taking the screenshot.
- The Settings section is expanded in the generated screenshot.
- The screenshot uses fixed and predictable browser dimensions.
- The generated image replaces
img/screenshot/request-signature.png. - Running the command again with the same application state produces a consistent screenshot.
Comparison with the committed screenshot and validation in GitHub Actions are outside the scope of this issue and will be handled separately.
[!TIP]
If you use nextcloud-docker-development, Playwright is available through a separate Docker Compose profile.
Good first issue
This is a good first issue for contributors who want to learn how LibreSign uses Playwright.
Additional context
- If you have questions, feel free to ask in this issue.
- Give a ⭐️ star to this repository if you find LibreSign useful and would like to support the project.
- You can also join our community: https://t.me/LibreSign
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.