The Need: Every Verse Cost Me My Place
I prepare short talks for a Bible study. My routine is simple. I read a passage in my Bible app, add the verses I want to my notes, and write a few lines under them. Then I go back to read the next verse.
That last step was the problem. The app has one screen at a time. To read the next verse, I left the notes, opened the viewer, and found my place again. Sometimes the next verse was in a completely different book, so there was no place to go back to. Finding it again took longer than writing the note.
The app already remembers where I stopped reading, but that only helps when the next verse is near the last one. My real problem was more general: I want to look at my notes and the Bible, and switch between them, without losing either place.
The Proof: Two Windows, Each With Its Own Place
On my Android phone I now have two windows of the same app:
- one for reading, which stays on whatever chapter I was reading
- one for notes, which stays on the note and the exact line I was typing in
I switch with the phone’s normal “recent apps” screen. In the reading window I tick the verses and press “insert into note”. The note window receives them and puts them at the cursor. The reading window stays exactly where it was.
I tested the two windows myself and switching between them works, and I can work that way. I have not yet used it for a full talk, so I do not know how it feels after an hour.
The Story: I Asked the Wrong Question First
My first idea was a separate notes web app on its own subdomain. I put it to Claude as a question:
💬 Prompt that worked “If I put my notes in another window, the phone’s window switching keeps each window’s progress, so continuity is guaranteed. Is the only way to do that to build a separate notes web app on its own subdomain?”
I wrote that as a real question, because I did not know. The answer was no, and the reasons were useful:
- A different subdomain is a different origin. The browser keeps its storage separate, so notes saved only on the phone would not be visible there.
- I would have two copies of the note-editing code to maintain.
- What I wanted was not a second app. It was a second window.
So Claude suggested the same app, opened twice, with one window used only for notes.
Then I hit a wall I did not expect. My Bible app is already installed on the phone as an app. When I opened the notes address in Chrome and asked to install it as a second app, Chrome said the app was already installed. It offered only “Create shortcut”.
I took the shortcut anyway. It opened as a normal Chrome window, separate from the installed app. That is the setup I use now.
🗂 Claude.md Rule An installed PWA claims its whole scope. A second path on the same site cannot be installed as a separate app on Android Chrome. A home-screen shortcut opens in a browser window instead, and that is enough for a second window.
The How: A Notes Window, a Reading Window and a Queue
Total cost: $0. It is a change to one HTML file and one small manifest, on the NAS I already run.
1. The notes window is just a path. The server already sends the same index.html for unknown paths, so /memo/ loads the normal app. In the code, one line decides the mode:
const IS_MEMO_APP = location.pathname.indexOf('/memo') === 0;
In that mode the app opens straight on the notes tab and switches a flag on:
localStorage.setItem('bible_split_mode', '1');
2. The reading window sends, it does not edit. When the flag is on and this is not the notes window, “insert into note” does not touch the notes. It adds the verse blocks to a queue in localStorage:
q.push({ ts: Date.now(), vblocks });
localStorage.setItem('bible_insert_queue', JSON.stringify(q));
3. The notes window collects the queue when you can see it. It checks every 800 ms, and also when the window becomes visible. It only takes items while visible, so nothing is inserted into a window you cannot see. Then it inserts each item at the cursor and clears the queue.
I used localStorage because both windows are the same site on the same phone, and Android keeps the installed app and Chrome windows in one storage. No server is involved in passing the verses.
4. Only one window syncs notes. The app saves notes on the phone and also syncs them to my NAS. Two windows writing the same note could overwrite each other. So when split mode is on, the reading window stops syncing, and the notes window does all of it. There is a switch in the settings sheet to turn split mode off and go back to the old one-window behaviour.
What I have not checked
- If you use the reading window’s notes tab in split mode, it can show an older copy. I just do not look at notes there.
- The queue is small, so I did not build any retry logic. If you tick verses and never open the notes window, they wait there until you do.
- Chrome showed me an address bar in the notes window. It does not bother me much, but it is not a polished app.
If you have a one-page web app on your own server and you want two views side by side, you may not need a second app either. Try two windows and a queue before you build another domain.