Overse Browser
A multi-tab desktop browser in Python and PyQt5, with SQLite history and AES-encrypted profiles.

- Type
- Artifact
- Where
- Personal
- When
- Apr 2023 → Nov 2023
- Duration
- 7 mo
- Status
- Complete
- Source
- GitHub
The problem
I wanted to understand what a browser actually does — tab lifecycle, session state, history, and where the security boundaries sit — which is hard to learn from the outside.
What I built
PyQt5 over a Chromium widget for rendering, with the parts I wanted to understand written by hand: tab lifecycle and state, bookmarks, and history in SQLite.
Profile storage is AES-encrypted through OpenSSL, so the interesting question — what a browser is trusted to hold on disk, and what happens if that file is read by someone else — had to be answered rather than assumed.
Screens

Results
- Working multi-tab browser with persistent history and bookmarks.
- Encrypted profile storage rather than plaintext on disk.
- A concrete understanding of where browser state actually lives.
Architecture
In hindsight
Encrypting the profile without a real key-derivation story is security theatre — the key handling is the weak link, not the cipher. Done again, I'd start from where the key lives and work outwards.