~/talk

Building a Polite Popup with Nuxt 3

Talkat Vue.js Nation 2023 · 2023-01-25..01-26· [web-platform, frontend-architecture]
slides:none on file

Built a Nuxt 3 composable that shows a non‑intrusive newsletter popup only after 6 seconds of active time and when the reader scrolls past 35% of the page, calculates scroll percentage from document height and window height using VueUse composables (useTimeout, useWindowSize, useWindowScroll), persists {status, seenCount, lastSeen} to localStorage via useLocalStorage, and triggers once‑per‑day; demo shows about 20% of exposed visitors clicking “yes, I’m interested.”

AI-written summary · about

  1. 0:00Polite popups introduction
  2. 1:26Impolite popup problems
  3. 2:28What makes a popup polite
  4. 3:31Demo: polite popup in Nuxt 3
  5. 3:53Tracking page time
  6. 5:18Tracking scroll progress
  7. 7:08Conditional popup display
  8. 7:50Preventing popup overuse
  9. 8:58Nuxt 3 route integration
  10. 9:39Closing remarks
  11. 10:00Q&A
  12. 10:43Q&A: Popup effectiveness
  13. 11:45Q&A: Build vs libraries
  14. 12:27Q&A: Nuxt 3 limits
  15. 12:50Q&A: User-friendly popups
  16. 13:32Q&A: Custom solution choice
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.