Thanks for your interest in contributing! GeeksPulse is a small indie project and every contribution — big or small — is appreciated.
| Type | How |
|---|---|
| 🐛 Bug report | Open an issue |
| 📡 Suggest a feed | Open a feed request |
| ✨ Feature idea | Open a feature request |
| 💻 Code change | Fork → branch → PR (see below) |
git clone https://github.com/dante0747/geekspulse.dev.git
cd geekspulse.dev
npm install
# Start the Vite dev server
npm run dev
# Or regenerate the feed cache first, then serve
npm run build:feed
npx serve .Open http://localhost:5173 (Vite) or http://localhost:3000 (npx serve).
- Fork the repo and create a branch:
git checkout -b feat/your-idea - Make your changes.
- Test locally with
npx serve .— verify feeds load, filters work, bookmarks work. - If you changed feeds, run
npm run build:feedand commit the updatedpublic/files. - Open a PR with a clear description of what you changed and why.
- Open
data/feeds.json. - Add an entry:
{ "id": "my-blog", "name": "My Blog", "url": "https://myblog.com/feed.xml", "category": "General", "enabled": true } - Run
npm run build:feedto test it. - Commit
data/feeds.json+ updatedpublic/feed.json+public/feed-health.json.
- Vanilla JS ES modules — no frontend frameworks.
- Vite is used as the dev server and production bundler (
npm run dev/npm run build). - The frontend is split into 14 focused modules under
js/. Add new logic to the most relevant module, or create a new one and import it fromjs/main.js. js/main.jsis the entry point: it owns app state, therender()loop, and all event wiring.- Prefer descriptive variable names over clever one-liners.
- Keep accessibility in mind: ARIA labels, keyboard navigation.
Open an issue or start a discussion on GitHub.