# Available storage on mobile device

**URL:** <https://community.silverbullet.md/t/available-storage-on-mobile-device/2132>\
**Category:** General\
**Created:** [April 7, 2025, 2:20pm UTC](https://community.silverbullet.md/t/available-storage-on-mobile-device/2132 "2025-04-07T14:20:44Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![DevGiu](https://community.silverbullet.md/user_avatar/community.silverbullet.md/devgiu/32/1504_2.png) [@DevGiu](https://community.silverbullet.md/u/DevGiu)\
**Post date:** [April 7, 2025, 2:20pm UTC](https://community.silverbullet.md/t/available-storage-on-mobile-device/2132/1 "2025-04-07T14:20:44Z")

</div>

Hi, just a “simple” and curious question. How much space is available on mobile devices? If my SB Vault grows to 5GB for example, is something my phone browser storage can manage?

Regards.

---

<div class="post-metadata">

**Author:** ![zef](https://community.silverbullet.md/user_avatar/community.silverbullet.md/zef/32/7_2.png) [@zef](https://community.silverbullet.md/u/zef)\
**Post date:** [April 7, 2025, 4:19pm UTC](https://community.silverbullet.md/t/available-storage-on-mobile-device/2132/2 "2025-04-07T16:19:42Z")

</div>

This is what Claude.ai says:

**Update:** this seems to be hallucination, see below.

# IndexedDB Storage Limits in Mobile Browsers

The storage limits for IndexedDB in mobile browsers vary by browser and device, but here are the general guidelines:

## iOS (Safari)

- **Storage Limit** : Approximately 50MB per origin
- Apple implements a shared pool of storage (1GB maximum) across all web storage technologies
- After 7 days of non-use, data may be purged

## Android Chrome

- **Storage Limit** : Typically up to 60% of available disk space
- Chrome implements a “soft limit” of around 80MB per origin, but can request more
- Uses the “Storage Manager API” to request persistent storage

## Firefox for Mobile

- **Storage Limit** : Approximately 50-100MB per origin
- Can vary based on device storage availability

## General Notes:

- These limits can change with browser updates
- Users can manually clear storage at any time

---

<div class="post-metadata">

**Author:** ![DevGiu](https://community.silverbullet.md/user_avatar/community.silverbullet.md/devgiu/32/1504_2.png) [@DevGiu](https://community.silverbullet.md/u/DevGiu)\
**Post date:** [April 7, 2025, 4:22pm UTC](https://community.silverbullet.md/t/available-storage-on-mobile-device/2132/3 "2025-04-07T16:22:23Z")

</div>

Uh, thanks, this maybe could be not too much for larger vaults.

---

<div class="post-metadata">

**Author:** ![DevGiu](https://community.silverbullet.md/user_avatar/community.silverbullet.md/devgiu/32/1504_2.png) [@DevGiu](https://community.silverbullet.md/u/DevGiu)\
**Post date:** [April 7, 2025, 4:26pm UTC](https://community.silverbullet.md/t/available-storage-on-mobile-device/2132/4 "2025-04-07T16:26:02Z")

</div>

Thinking about this, and knowing v2 comes full sync mode, what will happen with vaults bigger than this values?

---

<div class="post-metadata">

**Author:** ![dklawren](https://community.silverbullet.md/user_avatar/community.silverbullet.md/dklawren/32/14_2.png) [@dklawren](https://community.silverbullet.md/u/dklawren)\
**Post date:** [April 7, 2025, 5:06pm UTC](https://community.silverbullet.md/t/available-storage-on-mobile-device/2132/5 "2025-04-07T17:06:09Z")

</div>

Also what about assets such as images, pdfs, etc. that are stored in the space? Are they synced to each client as well? That could significantly increase the space size. What if we could make it only sync text based content and dynamically load binary data from server as need? Does that happen now?

---

<div class="post-metadata">

**Author:** ![DevGiu](https://community.silverbullet.md/user_avatar/community.silverbullet.md/devgiu/32/1504_2.png) [@DevGiu](https://community.silverbullet.md/u/DevGiu)\
**Post date:** [April 7, 2025, 5:18pm UTC](https://community.silverbullet.md/t/available-storage-on-mobile-device/2132/6 "2025-04-07T17:18:31Z")

</div>

> [@dklawren](#):
>
> load binary data from server as need?

This is exactly one of the reasons that gives Anytype -1 points right now for me. I want full sync offline access.

An example. You sync your phone from computer, several pages with images, files and so on. Then, you go to take a flight and need for example a document inside the vault (booking ticket or whathever). Then notice you see file is not there, because you didn’t requested when you had connection with the host. This is not local first for me, because I need available 24/7 a server with my vault.

---

<div class="post-metadata">

**Author:** ![zef](https://community.silverbullet.md/user_avatar/community.silverbullet.md/zef/32/7_2.png) [@zef](https://community.silverbullet.md/u/zef)\
**Post date:** [April 7, 2025, 6:35pm UTC](https://community.silverbullet.md/t/available-storage-on-mobile-device/2132/7 "2025-04-07T18:35:19Z")

</div>

Sync mode syncs everything right now, also attachments/documents.

---

<div class="post-metadata">

**Author:** ![nickb](https://community.silverbullet.md/user_avatar/community.silverbullet.md/nickb/32/1239_2.png) [@nickb](https://community.silverbullet.md/u/nickb)\
**Post date:** [April 7, 2025, 7:35pm UTC](https://community.silverbullet.md/t/available-storage-on-mobile-device/2132/8 "2025-04-07T19:35:24Z")

</div>

Sorry not clear - does this mean we can’t have \>50MB spaces?

---

<div class="post-metadata">

**Author:** ![zef](https://community.silverbullet.md/user_avatar/community.silverbullet.md/zef/32/7_2.png) [@zef](https://community.silverbullet.md/u/zef)\
**Post date:** [April 7, 2025, 8:39pm UTC](https://community.silverbullet.md/t/available-storage-on-mobile-device/2132/9 "2025-04-07T20:39:36Z")

</div>

Yes. If the limit is indeed 50mb. That said, I think it should be quite possible to opt out of syncing attachments and documents, so just pages. I’d have to think how to exactly implement that, but should be doable.

---

<div class="post-metadata">

**Author:** ![dklawren](https://community.silverbullet.md/user_avatar/community.silverbullet.md/dklawren/32/14_2.png) [@dklawren](https://community.silverbullet.md/u/dklawren)\
**Post date:** [April 9, 2025, 2:18pm UTC](https://community.silverbullet.md/t/available-storage-on-mobile-device/2132/10 "2025-04-09T14:18:26Z")

</div>

> [@zef](#):
>
> IndexedDB Storage Limits in Mobile Browsers

I can see even markdown pages by themselves could start hitting the 50MB limit without attachments. Would it be possible to force the browser to evict old entries based on last accessed date? I then pull in new copies if requested by the browser? You would then have offline access to your most often used pages which is normally what you want anyway.

---

<div class="post-metadata">

**Author:** ![nickb](https://community.silverbullet.md/user_avatar/community.silverbullet.md/nickb/32/1239_2.png) [@nickb](https://community.silverbullet.md/u/nickb)\
**Post date:** [April 11, 2025, 5:22pm UTC](https://community.silverbullet.md/t/available-storage-on-mobile-device/2132/11 "2025-04-11T17:22:59Z")

</div>

Hi @zef , I think this is an important issue which I suspect many will want reassurance on. If SB is a 50MB PKM, many will I suspect decamp to other systems. I suspect you’re working on a solution to this, but I for one would be grateful for such reassurance.

Thanks

Nick

---

<div class="post-metadata">

**Author:** ![zef](https://community.silverbullet.md/user_avatar/community.silverbullet.md/zef/32/7_2.png) [@zef](https://community.silverbullet.md/u/zef)\
**Post date:** [April 11, 2025, 5:31pm UTC](https://community.silverbullet.md/t/available-storage-on-mobile-device/2132/12 "2025-04-11T17:31:20Z")

</div>

Ok, if this is a concern for people, I’m now looking this up on MDN rather than taking the risk of Claude hallucinating things:

> **[Storage quotas and eviction criteria - Web APIs | MDN](https://developer.mozilla.org/en-US/docs/Web/API/Storage_API/Storage_quotas_and_eviction_criteria#how_much_data_can_be_stored)**
>
> Web developers can use a number of technologies to store data in the user's browser (i.e., on the local disk of the device the user is using to view the website).

> **Safari**  
> Starting with macOS 14 and iOS 17, Safari allots up to around 20% of the total disk space for each origin. If the user has saved it as a web app on the Home Screen or the Dock, this limit is increased to up to 60% of the disk size. For privacy reasons, cross-origin frames have a separate quota, amounting to roughly 1/10 of their parents.

So this would suggest _significantly_ bigger limits than 50MB for iOS, especially when adding SB as a home screen app (like you should 😉 ), this should be multiple GB in practice.

For Chrome browsers:

> In browsers based on the Chromium open-source project, including Chrome and Edge, an origin can store up to **60% of the total disk size** in both persistent and best-effort modes.  
> For example, if the device has a 1 TiB hard drive, the browser will allow an origin to use up to 600 GiB.

And Firefox:

> In Firefox, the maximum storage space an origin can use in best-effort mode is whichever is the smaller of:
> 
> - **10% of the total disk size** where the profile of the user is stored.
> - Or **10 GiB** , which is the group limit that Firefox applies to all origins that are part of the same eTLD+1 domain.  
> Origins for which persistent storage has been granted can store up to 50% of the total disk \> size, capped at 8 TiB, and are not subject to the eTLD+1 group limit.  
> For example, if the device has a 500 GiB hard drive, Firefox will allow an origin to store up to:  
> In best-effort mode: 10 GiB of data, which is the eTLD+1 group limit.  
> In persistent mode: 250 GiB, which is 50% of the total disk size.

Not sure if Firefox has different behavior on Android, but this also seems plenty.

---

<div class="post-metadata">

**Author:** ![nickb](https://community.silverbullet.md/user_avatar/community.silverbullet.md/nickb/32/1239_2.png) [@nickb](https://community.silverbullet.md/u/nickb)\
**Post date:** [April 12, 2025, 8:19am UTC](https://community.silverbullet.md/t/available-storage-on-mobile-device/2132/13 "2025-04-12T08:19:44Z")

</div>

Thanks @zef that sounds promising, how need to find a usb cable for my iPhone to run

```auto
navigator.storage.estimate().then(console.log);

```

in a remote debugging session to confirm.

In Edge on MacOS I get 282889 MB which is comfortable (!).

Handy snippet:

```auto
navigator.storage.estimate().then(({ usage, quota }) => {
  console.log(`Used: ${(usage / 1024 / 1024).toFixed(2)} MB`);
  console.log(`Quota: ${(quota / 1024 / 1024).toFixed(2)} MB`);
  console.log(`Usage percentage: ${((usage / quota) * 100).toFixed(2)}%`);
});

```

---

<div class="post-metadata">

**Author:** ![zef](https://community.silverbullet.md/user_avatar/community.silverbullet.md/zef/32/7_2.png) [@zef](https://community.silverbullet.md/u/zef)\
**Post date:** [April 12, 2025, 1:59pm UTC](https://community.silverbullet.md/t/available-storage-on-mobile-device/2132/14 "2025-04-12T13:59:44Z")

</div>

You should be able to access this in Lua via js.window.navigator which you can then editor.flashNotificarion

---

<div class="post-metadata">

**Author:** ![nickb](https://community.silverbullet.md/user_avatar/community.silverbullet.md/nickb/32/1239_2.png) [@nickb](https://community.silverbullet.md/u/nickb)\
**Post date:** [April 12, 2025, 9:27pm UTC](https://community.silverbullet.md/t/available-storage-on-mobile-device/2132/15 "2025-04-12T21:27:55Z")

</div>

> [@zef](#):
>
> js.window.navigator

```auto
${js.window.navigator.storage.estimate()}

```

returns

Usage: 97101065  
Quota: 38654705664

---

<div class="post-metadata">

**Author:** ![zef](https://community.silverbullet.md/user_avatar/community.silverbullet.md/zef/32/7_2.png) [@zef](https://community.silverbullet.md/u/zef)\
**Post date:** [April 13, 2025, 10:10am UTC](https://community.silverbullet.md/t/available-storage-on-mobile-device/2132/16 "2025-04-13T10:10:35Z")

</div>

There you go

---

<div class="post-metadata">

**Author:** ![nickb](https://community.silverbullet.md/user_avatar/community.silverbullet.md/nickb/32/1239_2.png) [@nickb](https://community.silverbullet.md/u/nickb)\
**Post date:** [April 13, 2025, 11:07am UTC](https://community.silverbullet.md/t/available-storage-on-mobile-device/2132/17 "2025-04-13T11:07:11Z")

</div>

> [@nickb](#):
>
> Quota: 38654705664

Hmm, might have spoken too soon, ChatGPT 4o ([ChatGPT - Mobile IndexedDB Limits](https://chatgpt.com/share/67fb982c-ed04-8006-a7d0-54b8023351ac)) says that the 36GB is the quota across all origins, iOS Safari silently caps IndexedDB at ~50MB per origin.

---

<div class="post-metadata">

**Author:** ![zef](https://community.silverbullet.md/user_avatar/community.silverbullet.md/zef/32/7_2.png) [@zef](https://community.silverbullet.md/u/zef)\
**Post date:** [April 13, 2025, 11:49am UTC](https://community.silverbullet.md/t/available-storage-on-mobile-device/2132/18 "2025-04-13T11:49:36Z")

</div>

That’s what Claude said. But is it true? What’s the source of this information and is it still valid in 2025?

---

<div class="post-metadata">

**Author:** ![marad](https://community.silverbullet.md/user_avatar/community.silverbullet.md/marad/32/1179_2.png) [@marad](https://community.silverbullet.md/u/marad)\
**Post date:** [April 13, 2025, 5:45pm UTC](https://community.silverbullet.md/t/available-storage-on-mobile-device/2132/19 "2025-04-13T17:45:19Z")

</div>

If assets are also synchronized (i suppose they are?) I’d `dd if=/dev/urandom of=test.png bs=1M count=60` and drop the file into some **test instance** and see what happens when you visit it in Safari on mobile.

---

<div class="post-metadata">

**Author:** ![DevGiu](https://community.silverbullet.md/user_avatar/community.silverbullet.md/devgiu/32/1504_2.png) [@DevGiu](https://community.silverbullet.md/u/DevGiu)\
**Post date:** [July 17, 2025, 11:00am UTC](https://community.silverbullet.md/t/available-storage-on-mobile-device/2132/20 "2025-07-17T11:00:41Z")

</div>

Just wanted to bump this thread. I noticed asking to perplexity about this issue, that if Silverbullet use File System Access API then, requesting to the user for permissions on a folder, Silverbullet could avoid the indexedb limits. There are right now some idea/plans to do this?

[Next page](https://community.silverbullet.md/t/available-storage-on-mobile-device/2132.md?page=2)
