Skip to content

Commit b6549ce

Browse files
committed
docs: add improvements roadmap
1 parent db5e908 commit b6549ce

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

‎docs/improvements.md‎

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
### Build & Tooling
2+
- Migrate bundling to Vite (or SvelteKit adapter for Obsidian) to get faster dev/HMR, simpler Svelte 5 config, and better tree-shaking. Use `build.lib` with `formats: ['cjs']` to satisfy Obsidian’s CJS requirement, and keep esbuild only if needed for legacy outputs.
3+
- Enable `sourcemap: false` in production and `minify + drop: ['console']` to shrink the ~624 KB `main.js`. Consider removing unused deps (e.g., evaluate whether `openai` is needed client-side).
4+
- Enforce lint/format in CI: add `biome check` (or eslint + prettier) plus `tsc --noEmit` to catch issues pre‑release.
5+
- Tighten TypeScript: turn on `strict`, remove `allowJs`, consider `noImplicitOverride`, and drop `inlineSourceMap` for builds to reduce bundle size.
6+
- Add lint rules for consistent type-only imports (`@typescript-eslint/consistent-type-imports`) and `import/no-duplicates`; run a codemod to ensure consistency.
7+
- Add `.nvmrc` and keep `engines.node >=22` for local/CI parity. Consider `engine-strict=true` in `.npmrc`.
8+
9+
### Testing
10+
- Extend component tests (Vitest + @testing-library/svelte) for Progressbar, TopBar, Image, and keyboard/a11y flows we fixed. Include snapshot + interaction tests.
11+
- Add an integration smoke test for the main flow: select feed → play episode → create note → ensure note file path/template substitution works.
12+
- Add a11y linting: run `svelte-check --fail-on-warnings` or `eslint-plugin-svelte` a11y rules to prevent regressions.
13+
14+
### CI/CD
15+
- Once npm lock is stable, switch CI back to `npm ci` (or migrate to pnpm to avoid npm’s bundled-npm dependency friction). Cache `~/.npm`/pnpm store.
16+
- Keep Node 22 in workflows and engines; add `node-version-file: '.nvmrc'` in `setup-node`.
17+
- Vercel: either disable for this plugin repo or produce a minimal static artifact (docs). If keeping, ensure `installCommand`/`buildCommand` match the plugin build or keep `ignoreCommand` to skip deploy noise.
18+
- Add Dependabot/Renovate with weekly grouped updates to avoid large jump-upgrades.
19+
20+
### Repo Hygiene
21+
- Add `CONTRIBUTING.md` covering Node 22 requirement, install (`npm install` or `pnpm i`), build/test commands, and release flow.
22+
- Document Obsidian-specific build steps and external APIs (OpenAI usage, iTunes feed fetching) in README or `/docs`.
23+
- Consider `npm audit` (or `pnpm audit`) gating CI, or at least surface results in PR comments.
24+
25+
### Performance/UX
26+
- Audit dependency usage; remove unused code paths. Confirm OpenAI usage is necessary on client; if not, move server-side or gate-load.
27+
- Evaluate CSS and a11y debt: continue converting interactive spans/divs to buttons, add roles/tabindex only where appropriate, and ensure keyboard parity.
28+
- Consider lazy-loading heavy UI sections (podcast artwork, feed parsing) and caching feed results to reduce start-up.

0 commit comments

Comments
 (0)