Thanks for your interest in contributing. SlideScribe is a fully static, zero-build project — no package manager, no bundler, no transpiler. Keep that spirit in mind when proposing changes.
- No new runtime dependencies. The project intentionally has zero npm dependencies. If you need a library, load it from a CDN in
index.htmland justify the addition in your PR. - No build step. Everything must work by opening
index.htmldirectly in a browser or serving it from any static host. - One concern per file. The codebase is split by responsibility (
anthropic.js,exporters.js,state.js, etc.). Keep new logic in the right place or propose a new file if the concern is genuinely new. - No server-side code. All processing must stay in the browser.
# Any static file server works, e.g.:
npx serve .
# or
python3 -m http.server 8080Then open http://localhost:8080 in your browser.
- Fork the repository and create a branch from
main. - Make your changes — the page reloads on save, no build needed.
- Test manually: upload a real PDF, run the full generation, verify the
.docxand.pdfexports. - Open a pull request against
mainand fill in the PR template.
- Vanilla JS — no TypeScript, no JSX.
- Prefer
const/let, arrow functions, andasync/await. - Keep functions small and single-purpose.
- No comments for obvious code; comments only where the why isn't clear from reading.
- Bug fixes with a clear reproduction case
- UX improvements that don't add visual clutter
- Performance improvements to PDF rendering or export
- Accessibility improvements (keyboard nav, ARIA, contrast)
- Adding a backend or server-side proxy
- Replacing vanilla JS with a framework
- Features that require storing user data externally
- Large UI redesigns without prior discussion