marklok takes user data out of the browser's hands

Profile reads and writes now go through a locked-down backend instead of the browser talking straight to the database.

securityinfrastructure

Until now, this fork let the browser read and update user profiles directly against Supabase, the hosted database service behind Mike, trusting database-level rules to block anything it shouldn't touch. marklok has moved that traffic behind two authenticated backend endpoints, with a strict list of which fields a user is actually allowed to change. Anything off the list is quietly ignored - a real tightening over the old setup.

Two gaps are worth watching before anyone leans on this. Stored AI API keys now pass through the update path, where they could land in server logs unless something scrubs them, and the field tracking a user's used message credits is still writable by the user - so in principle someone could reset their own meter. Neither is clearly defended in what's visible. The bigger signal: marklok looks to be steadily routing all direct browser-to-database access through the backend.

So what Anyone evaluating this fork for production should like the direction but check the API-key and credit-counter handling before trusting it.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

1 commit from marklok/danishmike, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
a0f72526 Refactor user profile to use backend API Markus 2026-05-08 ↗ GitHub
- Add GET and PATCH /user/profile endpoints
- Update UserProfileProvider to fetch/update profile via API
  instead of querying Supabase directly from the frontend

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-207.md from inside the repo you want the changes in.

⬇ Download capture-thread-207.md