@anishbatra2010 on Artists of Tomorrow
Here is the complete text you can copy and paste into the modal text box:
***
I did a security audit and code hardening pass on the **Artists of Tomorrow** website, while successfully troubleshooting and repairing my editor's broken **Hackatime** integration.
### What did you make?
* **Code Hardening:** Created a custom `sanitizeURL` utility across all dynamic gallery scripts (`latin-america-school.js`, `asia-competition-gallery.js`, and `latin-america-competition.js`) to block malicious `javascript:` and `data:` link payloads and prevent Cross-Site Scripting (XSS).
* **Link Security:** Added `rel="noopener noreferrer"` attributes to external anchor tags in `leaders-of-tomorrow.html` to prevent tab-nabbing attacks.
* **Hackatime Fix:** Resolved a persistent "Initialized" tracking freeze by correcting the API key format for the Hackatime backend, disabling problematic VS Code AI tracking syncs (`sync_ai_disabled = true`) causing SQLite crashes, and force-flushing queued offline coding time to the server.
### What was challenging?
Diagnosing why the WakaTime CLI was freezing. It turned out to be a double issue: the Hack Club Hackatime server didn't accept the standard `waka_` API key prefix, and my editor was throwing SQLite database errors trying to sync AI metadata, which locked up the sync loop entirely.
### What are you proud of?
Hardening the codebase against XSS without breaking any of the existing DOM structure or vanilla JS gallery animations, and successfully syncing all of my logged offline hours back to the Hack Club dashboard.
### What should people know so they can test your project?
The site runs entirely as a static vanilla HTML/CSS/JS site. You can test it locally by running:
`python3 -m http.server 8080`
And going to `http://localhost:8080`. All the security sanitation works under the hood when loading school artwork metadata and external links!
- 2 devlogs
- 1h