Widget: let the embed script load its display settings from our server
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 50/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- next.js, typescript
Research direction
Start by locating the embed script and the server-side widget/API routes; the payload does not name specific files or tests. Read the plan rules from merged issue #331 and the tracking issue #333, then trace how the script loads settings and how existing tests cover widget behavior. Done means the script safely falls back to defaults and the public lookup enforces server-side plan limits, caching, rate limits, and harmless handling of unknown or expired tokens, with tests and updated widget docs.
Written by the indexing model from the issue text.
Description
The problem today
The small script businesses paste on their site knows nothing about the business. It can't learn that a business wants a different window size or bubble color, because it never asks our server anything.
What to build
A small public lookup the script calls when it loads. It tells the script how this business wants the widget to look.
- Returns display settings only (for example window size and bubble color). Never anything private.
- Cached so the page isn't slowed down, and rate limited.
- Which settings a business gets always follows their plan, decided on our server, never by what the install snippet says.
- Until a business has chosen anything, it returns today's defaults, so existing installs keep working without re-pasting the snippet.
Done when
- The script asks for its settings on load and falls back to today's look if the lookup fails or is slow
- The lookup is cached, rate limited, and returns only display settings
- An unknown or expired widget token gets a harmless default, not an error page
- Tests cover defaults, plan-based limits, caching headers and the rate limit
- The widget docs mention that display settings are read from the server
Depends on / related
- #331 (plan rules) is merged. This is the base for window sizes and brand color; see the tracking issue #333.
- Dominant language
- TypeScript
- Stars
- 16
- Forks
- 2
- Avg merge
- 6h 28m
- Merged PRs (30d)
- 167
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing 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.
More from answerLoops/answerLoops
-
Widget: match the chat bubble color to the rest of the widgetPossibly taken @uchiha-suraj claimed this 1 day ago. Openenhancement help wanted
Difficulty 1/5 1-3 hours Newbie friendliness 84/100
answerLoops/answerLoops#345 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Widget: make the chat window fit on small phonesPossibly taken @anushreemehta6 claimed this 2 days ago. Openenhancement good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
answerLoops/answerLoops#344 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
answerLoops/answerLoops#17 ·
Maintainers usually reply within 1 day
-
documentation good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
enhancement help wanted
Difficulty 4/5 3-5 days Newbie friendliness 45/100
answerLoops/answerLoops#352 ·
Maintainers usually reply within 1 day
All issues in answerLoops/answerLoops
Similar issues
-
submodule-pointer-regression
Difficulty 1/5 Under an hour Newbie friendliness 72/100
smith-horn/skillsmith#3061 ·
Maintainers usually reply within 1 day
-
area: ops type: test
Difficulty 2/5 1-3 hours Newbie friendliness 79/100
accensa/x402-facilitator-stellar#559 ·
Maintainers usually reply within 1 day
-
documentation
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
cosimochellini/one-piece-zero-spoiler#551 ·
Maintainers usually reply within 1 day
-
getWatched() omits __proto__ directories when cwd is setPossibly taken @maxazure claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 79/100
-
area:web enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Maintainers usually reply within 1 day