Customization Model
CryptPad’s intended customization pattern is:
- Leave upstream files in the container untouched.
- Copy files from
/cryptpad/customize.distinto/opt/cryptpad/customize. - Edit the persistent copy under
/opt/cryptpad/customize. - Restart/rebuild the CryptPad container when needed.
- Verify with a browser, because malformed client config can leave the
app stuck on
Loading....
Important lesson already learned: -
customize/application_config.js for CryptPad 2025.9.0 must
use the upstream factory/AMD/CommonJS module shape and return
AppConfig. - Do not write direct global
AppConfig.* assignments before CryptPad’s internal config
loads. - That mistake caused AppConfig is not defined and a
browser-side infinite loading state.