Repository navigation
Development
Requires Node.js 18+.
git clone https://github.com/U77w41/anurup.git
cd anurup
npm ci
npm run dev # http://localhost:8080
npm test # unit tests
npm run build # production build into dist/
npm run preview # serve dist/ at http://localhost:4173/anurup/The README has the full folder map. The short version:
-
src/seo/content.tsholds every tool's name, page title, meta description, heading, intro, how-to steps and FAQ. -
src/lib/tools.tsturns that into the tool registry and adds icons and suggested next steps. -
src/pages/tools/has one React page per tool. Each usesFileDropZonefor input andResultPanelfor output. -
src/seo/prerender.tsis a Vite plugin. After the build it writesdist/<tool-id>/index.htmlfor every tool, plussitemap.xmland404.html. -
src/seo/pwa.tshas the web app manifest and service worker settings used byvite-plugin-pwa.src/components/PwaPrompt.tsxshows the "new version" message andsrc/lib/install.tspowers the Install app button.
The service worker is only built for production. To test install and offline use, run npm run build && npm run preview and open http://localhost:4173/anurup/. In Chrome DevTools, the Application tab shows the manifest, the service worker and an Offline switch.
- Add its copy to
src/seo/content.ts. - Add its icon to
ICONSinsrc/lib/tools.ts. - Create
src/pages/tools/YourTool.tsxwithLayout,FileDropZone,useIncomingFilesandResultPanel. - Add the route to
pagesinsrc/App.tsx. - Run
npm test. It checks that the new tool's titles and descriptions are complete and within length limits.
Pushing to main runs .github/workflows/deploy.yml, which builds the site and publishes it to GitHub Pages. In the repository settings, Pages → Source must be set to GitHub Actions.
For a custom domain or a different repo name, change SITE.url in src/seo/content.ts and set BASE_PATH for the build (for example BASE_PATH=/ for a domain root).
The wiki pages live in the wiki/ folder of the main repository. A GitHub Action copies them to the GitHub wiki on every push to main, so edit the files there rather than on the wiki website. Changes made on the website are overwritten by the next sync.
Open ANURUP · Source · © 2026 Ujjwal Chowdhury