leadbox

Roadmap / future issues

These are scoped so each one can be copy-pasted directly into a new GitHub issue. They’re ordered roughly by how self-contained/beginner-friendly they are, not by priority.


1. Add i18n-ready locale packs (Spanish, and a documented pattern for more)

Labels: good first issue, help wanted, enhancement

Body:

src/locale.js already centralizes every UI string behind a single DEFAULT_LOCALE object, and data-locale-<key> / locale: {...} already let a site owner override individual strings. This issue is about shipping a ready-made Spanish locale (src/locales/es.js) and documenting the pattern so contributors can add more languages without touching widget logic.

Acceptance criteria:


2. Multi-step form support

Labels: enhancement, help wanted

Body:

Right now all configured fields render on a single screen. For businesses with more fields (e.g. address + project details + preferred contact), a two-step form (“Contact info” -> “Project details”) could reduce abandonment. This should stay optional and backward-compatible.

Acceptance criteria:


3. File upload field

Labels: enhancement, help wanted

Body:

Some leads (e.g. “here’s a photo of the leak”) are much more useful with an attached image. Add an optional file field type.

Acceptance criteria:


4. reCAPTCHA / hCaptcha adapter (opt-in)

Labels: enhancement, security

Body:

The honeypot + timing checks catch naive bots, but a business getting targeted by more sophisticated spam may want a real challenge. This should be a thin, optional adapter — not a default dependency.

Acceptance criteria:


5. Airtable backend guide

Labels: documentation, good first issue

Body:

Some small businesses already use Airtable as a lightweight CRM. Document how to receive LeadBox submissions into an Airtable base, similar in structure to docs/google-sheets.md.

Acceptance criteria:


6. Dark-mode-aware default theme

Labels: enhancement, good first issue

Body:

The widget currently ships one light theme (overridable via CSS custom properties). Add an automatic dark variant driven by prefers-color-scheme, so sites with dark backgrounds get a widget that doesn’t look out of place by default.

Acceptance criteria:


7. Framework wrapper components (React / Vue)

Labels: enhancement, help wanted

Body:

LeadBox works as-is in a React/Vue app (it’s just a script that mounts itself), but a thin wrapper component would make lifecycle management (mount on mount, destroy() on unmount, re-init on prop changes) more idiomatic for framework users.

Acceptance criteria:


8. Submission analytics dashboard (opt-in, static)

Labels: enhancement

Body:

For business owners using the Google Sheets backend, a small static page (or a documented Google Sheets formula/pivot-table recipe) that turns raw lead rows into a simple “leads per week,” “top service requested,” and “top UTM source” view — without needing any new backend.

Acceptance criteria: