litespeedtech / litespeedtech/lscache_wp

Improve user experience with ESI

Open
#1,041 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
PHP
Stars
257
Forks
123
PR merge metrics
No merged PRs in 30d

Description

First of all, ESI works very well and is an extremely important feature.
However, I think its UX could be improved, especially for average users.

Most users probably won't go deep into the documentation or configuration to find out that they need to enable ESI. Actually, I had to spend quite some time understanding exactly how it works and that I actually need it - so I think it is quite easy for users to miss this setting.

Since LiteSpeed Cache already has [third-party integrations](https://github.com/litespeedtech/lscache_wp/tree/master/thirdparty) where required nonces are added by compatibility classes, and there is also a [nonce list](https://github.com/litespeedtech/lscache_wp/blob/master/data/esi.nonces.txt) in the data folder, I wonder if this information could be used to detect when ESI is actually needed.

For example, when a user enables the cache, LiteSpeed Cache could detect that ESI may be required and show a dismissible message suggesting that they enable ESI.

I think this could prevent a lot of hard-to-find issues. A user may enable cache, test the site, and everything may appear to work correctly. However, after the nonces expire (for example after 12–24 hours), a form or another feature may stop working. The user might only discover this days or weeks later through a customer report - and in many cases, nobody may report it at all.

So my suggestion is basically: LiteSpeed Cache should detect that ESI nonces are relevant for the site (already does in third-party integration files), and in those cases it should proactively let the user know that ESI should be enabled if it's not. I think this would make LSC and ESI much easier and safer to use for less technical users.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review the thirdparty compatibility classes and data/esi.nonces.txt to understand how ESI-related nonces are identified, then trace the cache-enable flow where a dismissible notice could be shown. Done means detecting relevant nonces and proactively suggesting ESI without disrupting users who dismiss the message.

Written by the indexing model from the issue text.

Assessment

Tech stack
php, wordpress
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.