Peek is a web user agent application designed for using the web where, when and how you want it.
MIT License
Please meet Peek, a web user agent application designed for using the web where, when and how you want it.
** WARNING: THIS IS VACATIONWARE **
Many user tasks on the web are either transient, chained or persistent, data oriented, or some mix of those. The document-oriented web does not meet those needs. Major browser vendors can't meet those needs well, for many reasons.
About this space:
You can use Peek in a few ways, with more coming:
In progress:
Thinking about:
Peeks are keyboard activated modal chromeless web pages mapped to Opt+0-9
and closed on blur, the Escape
key or cmd/ctrl+w
.
Slides are gesture activated modal chromeless web pages which slide in from left/right/bottom/top, and closed on blur, the Escape
key or cmd/ctrl+w
.
Scripts periodically load a web page in the background and extract data matching a CSS selector, stores it, and notify the user when the resulting data changes.
Ok, so not really "scripts" yet. But safe and effective enough for now.
Some thoughts driving the design of Peek:
Escape IZUI
Escape navigation model
Peek is designed to be modular and configurable around the idea that parts of it can run in different environments.
For example:
The core features are web apps loaded over a custom protocol:
peek
Initially the prototype was all Electron. But that's not interesting, and doesn't really tell us anything about constraints of the web itself.
So instead I asked this question: What's the minimum capability set that a web app would need to build the features I need?
The answer, so far, is giving peek
apps the following APIs:
Custom window api might be able to away entirely, by passing window.open features, working on that.
Proof of concept is Electron. By far the best option today for cross-platform desktop apps which need a web rendering engine. There's really nothing else remotely suited (yet).
User interface:
TODO
cmd/ctl+r,
or launch app to open settings, or click trayOpt+0-9
to open PeeksOpt+←→↑↓
to open Slidescore
open a web page on top/bottom/left/right
keep web pages persistent in the background
quickly open a web page modally, and close it
open bandcamp in a window, move over to 2nd display, accidently close it while moving around between other windows
recent books or recipes from newsletters i subscribe to (but probably didn't read)
extract a table from a page periodically, send it somewhere as csv or whatever (chained actions)
collect microformats, metadata, events
web page w/ some locations as an input to a map (creates overlay) "map this page"
be able to see where a book/etc recommendation came from
save a tweet, with URL / image / relevant text, but not whole page webrecorder style
Content scripts
Workflow deconstructing a "why" task flavour of bookmarking
minimum viable proof of concept.
question: would i use this?
Core moduluarization
App cleanup
Window lifecycle
Minimal Electron + Maximal Web
Create core app
Move all features to web implementation
Core+settings
Core/Basic
Commands/messaging
Features cleanup
Internal cleanup
minimum viable concept preview.
question: would others use this?
Windows/system
redo window system to be more webby
Feature lifecycle (un/install and reloads)
Feature re-init/reload when toggled
Shortcut lifecycle
Window features
Features clean themselves up for lifecycle events
Peeks/Slides
Cmd
Settings
Daily driver blockers
Deployment
Demo scenario
DX papercuts
Window features
App mgmt
App dev
Focus vs not focused app mode
Dev niceties
Install/load/address features
Settings
Navigation
Window animations
Window controls/persistence/etc (after perma window)
History
Feature level rpc?
Window layout
Web Platform
After that
Further
yarn install
yarn debug
Agregore ext protocol impl
Browsers
Misc
In working on Firefox and related things at Mozilla from 2006 - 2019, there were a few specific initiatives which best aligned with my needs as a user on the web:
A few others which were in the right direction but didn't achieve their optimal form:
The first version of the Peek application has some bits of each of these, and the original Peek browser extension.
Peek was a browser extension that let you quickly peek at your favorite web pages without breaking your flow - loading pages mapped to keyboard shortcuts into a modal window with no controls, closable via the Escape
key.
However, as browser extension APIs became increasingly limited, it was not possible to create a decent user experience and I abandoned it. You can access the extension in this repo in the extension directory.
The only way to create the ideal user experience for a web user agent that Does What I Want is to make it a browser-ish application, and that's what Peek is now.
writing the recap of the web track at ipfs thing 2023