Web browser that can display multiple web pages at the same time in one shared window. A tiling web browser.
Latest release: 0.0.3
Download · Changelog
The main value of using Mosaic over Chrome with builtin macOS tiling can be seen on this non-exhaustive list of tasks that often pop up when you want to use web in a tiling fashion:
- Task 1 – create a 1:2 splitscreen from a single fullscreen window containing two tabs
- Chrome on macOS – video, 12 seconds
- turn-off fullscreen
- tear off one tab into a window
- hold cursor over green (maximise) window button
- select "Tile window to the left side"
- choose the second Chrome window to fill the rest of the screen (right side)
- resize via the splitter between the tiles
- Mosaic on macOS – video, 6 seconds
- drag out a tab to the wanted place
- 🤬 the animation is extremely choppy
- resize via the splitter between the tiles
- drag out a tab to the wanted place
- Chrome on macOS – video, 12 seconds
- Task 2 – interact with unfocused tile and repeat
- Chrome on macOS – video, 5 seconds
- move cursor over unfocused tile
- click on the unfocused tile to focus it
- click on the interactive element
- [repeat]
- Mosaic on macOS – video, 2 seconds
- move cursor over unfocused tile
- 🤬 tile did not change the appearance to communicate focus
- click on the interactive element
- [repeat]
- move cursor over unfocused tile
- Chrome on macOS – video, 5 seconds
- Documented Design Decisions
- Blink rendering engine
- Written in Typescript using React
- Intuitive drag&drop tile managment
- Built-in DuckDuckGo search engine
- auto suggest while typing
- use !bang for advanced searches
- e.g. "!g hello" to google for "hello"
- Minimalistic dark look
- Dock
- drag out icon from dock to make a new tab
- Automatic zoom-to-fit of webpage
- Familiar shortcuts for tab managment (⌘T, ⌘W)
- Built-in privacy
- Adblock (uBlock Origin)
- Blocking cookie consent non-sense
- No history
- HTTPS everywhere
- System keychain integration
Requirements: Git, NodeJS, Yarn
Clone repository and install project dependencies:
$ git clone https://github.com/mlajtos/mosaic.git
$ cd mosaic
$ yarn
Live development
$ yarn dev