By: Marwan Mohammed

One place for everything I build. Tools, experiments, and mini-sites, all under one roof.

Admin access

Enter your 4-digit PIN to manage cards.

Delete this card?

This can't be undone.

Manage projects

Saved
Connect to a databaseLocal MeroDB or shared-for-all-users CloudDB (Supabase).
Connected to Supabase · table “kv”

Use CloudDB for data that's the SAME for every user, on every device. It's backed by your Supabase project. Calls are async, so use await.

await CloudDB.set(k, v)Save (shared by all users)
await CloudDB.get(k)Read it back (or null)
await CloudDB.remove(k)Delete one key
await CloudDB.all()Whole table as an object
<!-- Shared across ALL users. Paste into a card and Run. -->
<script>
  async function main() {
    // Save a value everyone shares
    await CloudDB.set('announcement', 'Hello world');

    // Read it (any user, any device sees the same thing)
    const msg = await CloudDB.get('announcement');
    console.log(msg);

    // A shared counter
    let n = (await CloudDB.get('visits')) || 0;
    await CloudDB.set('visits', n + 1);

    // Everything
    const everything = await CloudDB.all();   // { announcement:'...', visits: 12 }
  }
  main();
</script>

Use MeroDB for fast LOCAL data saved in this browser (per device). No await needed. MeroDB.shared is shared between mini-sites on the same device.

MeroDB.set(k, v)Save any JSON value
MeroDB.get(k)Read it back (or null)
MeroDB.remove(k)Delete one key
MeroDB.all()Whole database object
<!-- Local to this browser. Paste into a card and Run. -->
<script>
  MeroDB.set('profile', { name: 'Marwan', level: 7 });
  const profile = MeroDB.get('profile');   // persists between runs
  MeroDB.shared.set('theme', 'dark');       // shared across mini-sites (this device)
</script>

Heads up: CloudDB uses the public anon key, so with the “public access” table policy anyone can read/write. Fine for shared demos; lock the policy down for anything sensitive.