{"repo":"samalstudios/jsglobe","free":true,"listed":false,"github":"https://github.com/samalstudios/jsglobe","clone":"git clone https://github.com/samalstudios/jsglobe.git","description":"Hundreds of free, open-source web tools for developers, creators, and everyday tasks. No signup, no ads, no limits.","language":"JavaScript","stars":32,"topics":["tools","web","devtools","javscript","developer-tools","free-tools","online-tools","opensource","utilities","web-tools"],"license":"MIT","category":"dev-tools","readme_excerpt":"JS Globe A home screen for small developer tools. Pure JavaScript, custom elements, no framework, no build step. Every tool is a lazily loaded ES module with its own URL: jsglobe.com/json-formatter . Running locally The dev server serves static files and falls back to index.html for unknown paths, which is what the history-based router needs. Deploying with Caddy Caddyfile in the repo root covers the whole setup: HTTPS, compression, cache headers, a content security policy and the SPA fallback. redirects and vercel.json are included for Netlify, Cloudflare Pages and Vercel. If you deploy under a subdirectory, change in index.html to that path. The router reads it and prefixes every link. Layout Core concepts - Registry reads js/apps/catalog.js and lazily imports a tool the first time it is opened. - Router maps /:app-id to a tool, /apps to the library, /search?q= to spotlight. - Workspaces namespace everything in localStorage , so a person or a team can keep separate layouts, widgets and per-tool settings. They can be exported and imported as JSON. - Layout owns home screen pages, folders, the dock and widgets. - Usage records how often each tool is opened, which is what fills the dock automatically. Adding a tool Two steps. First write the element in js/apps/your-tool.js : Then register it in js/apps/catalog.js : That is all. The tool now appears on the home screen and in the library, is searchable, has the URL /word-count , can be pinned or added as a widget, and its settin","default_branch":null,"files":null,"tree":[],"storefront":"/r/samalstudios","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/samalstudios/jsglobe/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}