Product developer and protocol engineer @bluesky. Formerly @BeakerBrowser, dat, ssb. Doesn't eat cats. 🦋pfrazee.com

Austin, TX
📢The @BeakerBrowser project is now officially archived. Thank you everybody for your years of support and generosity; it meant the world to me. I hope we continue the mission with @bluesky. Post-mortem here: github.com/beakerbrowser/bea…
12
24
130
46,592
Little kitty runs faster when my cpu usage goes higher. (I'm building something so the little guy's really movin.)
35
316
1,723
fetch() api? Eugh. You’re using “objects” to drive a protocol that’s all about text. They’ve played us for absolute fools. Make HTTP requests the way TBL intended with HTTP-Template-Literal github.com/pfrazee/http-temp…
22
140
908
"Sure, I've written lots of those" [later] "Did you say 'election app' or 'Electron app'"
3
126
529
Yo, decentralizers. If our projects are ONLY about censorship resistance and NOT about better algorithms for elevating truth, and NOT about creating constrained but real powers of moderation, then we're making things worse. 1/n
32
87
528
ℹ️ Bash tip: if you need to run a quick command in another directory, surround your call in parenthesis. This causes the command to be run in a "subshell" which is discarded after the command runs, keeping your CWD the same. Example: (cd ~/work/foo ; npm install)
11
125
489
New Dat 2.0 bench: Wikipedia served over the Wifi! No cached data, 11 million files across 2 directories. Pages rendered in 1-3s! (More details in this thread)
6
82
295
FOSS can be tough on maintainers. One really simple trick to maintain positivity is to say something nice at the end of your issue reports. "Thank you for your hard work" or "I love this project." It's small, but it makes a big difference.
5
76
251
One way to improve usability in error messages 🛑🥦
6
119
220
Love that this is in the FF59 Extensions update. @firefox supporting the open and decentralized Web. blog.mozilla.org/addons/2018…
4
121
220
Browser feature-support news is like Chrome: Announcing magical pixel api (standard in progress) Firefox: Devtools now cooks breakfast for you! Safari: CSS support added
3
35
184
Quick reminder to startup founders: Be sure to find & replace "blockchain" with "gpt-3" in all your marketing
5
48
172
Last night after getting PeerSockets implemented, we tried using the sockets to signal WebRTC video calls. It worked!
6
24
165
Hey everybody, really big news today. I am indeed working at @bluesky!
Replying to @bluesky
Paul Frazee (@pfrazee) is a protocol engineer and full-stack web developer. Paul previously built Patchwork, the first application using the @securescuttleb1 distributed social protocol, and @BeakerBrowser, the first web browser for the @HypercoreProto distributed web protocol.
16
11
169
Did you hear about the guy who kept mis-using divs to create horizontal rules? We had to get <hr> involved.
10
19
145
Web Terminal
4
22
149
New post: Unwalled Garden, a social networking protocol which we're introducing in Beaker 0.9 (coming this summer) pfrazee.hashbase.io/blog/unw…
10
55
140
.@BeakerBrowser's latest dev build now has an editor sidebar which let's you edit without leaving the page. When you go to a 404, you can just create the page then, which makes it feel a lot like a wiki!
3
25
147
Announcing Hyperswarm⚡️🐝 (preview release) A new peer-discovery stack by @mafintosh that uses a Kademlia DHT to connect users. pfrazee.hashbase.io/blog/hyp…
10
52
146
We can decentralize the Web with peer-to-peer and fungible services. No blockchain is required. @dat_project @BeakerBrowser.
10
34
142
Why decentralize? What drives projects like SSB, @BeakerBrowser, @IPFSbot, and the #dwebsummit? I wrote an essay to explore this question — Information Civics: Deconstructing the power structures of large scale computing networks infocivics.com
1
60
137
This is what VS Code + JSDoc can do: static type checking plus intellisense. It has the benefits of Typescript without the syntactic changes. It might be less elegant aesthetically than TS, but it's very low effort to adopt. I'm completely sold.
14
34
139
Progress update on the non-blockchain smart contract. Not finished but a working PoC. It's essentially similar to certificate transparency; hosted ledgers store transactions and state, and changes are externally audited according to the rules of a published contract.
14
18
135
Support Linux prebuilds for your desktop app! You'll get: 👷‍♀️ 3x more work than other platforms to get it right 💖 1/1000 as many users as the other platforms 👍 Unique problems for every distro 🔥 Nobody's happy! 🤟 Six different distribution channels
8
17
123
WebComponents plus this one templating function are enough for me to handle a lot of simple UI work
9
15
127
Beaker 1.0 Beta is here! Hard to believe this day has finally come. Thank you to everybody for all your help and support through the years.
The Beaker 1.0 Beta is here! New p2p protocol, new editing tools, new Web APIs, and a lot more. Try it out! beakerbrowser.com/2020/05/14…
10
29
114
Today we're excited to release "hyp," a commandline tool for sharing files (and more) using @HypercoreProto ! patreon.com/posts/hyp-comman…
2
20
108
Switching to Firefox is a good reaction, but it only makes a difference in the political dynamics if we can cut Google's market share. It's not enough to "just switch." We have to protect the open Web from what appears to be a growing bad impulse by Google to run the Web alone
5
24
103
In addition to the traditional back/forward/refresh controls, we added an "up" button to the Beaker UI
9
20
112
Maybe it’s time to dig into the non-blockchain smart contract idea that’s been floating around for a while. Drop the PoW and transaction fees, but maintain the trustless verification and open data/code Maybe appealing to people who don’t 100% like how Web3 works right now
15
8
103
It kills me, absolutely kills me, that after years of decentralization advocacy it's a moment like this when all the dweb projects pop up on HN and social media. The interest popped -- not when truth became inconvenient for corporate power, but when lies did.
1
9
101
Some thoughts on decentralized social networking medium.com/@paulfrazee/the-a…
13
21
112
There’s a set of values in the p2p Web community and I think it’s important to amplify them. (I’m not always great about talking about values and this is me starting to fix that) They are:
3
37
103
It’s a pattern of behavior by Google that concerns people 🔹AMP 🔹Auto-integrating Google services 🔹Maybe we'll kill URLs? 🤷‍♂️ 🔹Don't overreact! Also we're hiding www and m now.
4
21
99
Decentralization is an attempt to rewrite the rules of networks so that our communities and infrastructure can be collectively owned
3
30
100
WIP: installable web apps in @BeakerBrowser
7
27
106
Architect: The first Matrix was designed to be a paradise Neo: What happened? Architect [thinking about the "undefined is not a function" that he could never solve]: the humans rejected it
2
18
98
The question isn't "how do we make moderation impossible?" The question is, how do we make moderation trustworthy. That, it turns out, is much harder than p2p tweets
5
18
96
chat-on-the-p2p-web.jpg
7
14
101
I asked a web developer what frameworks she uses. She didn't react. I thought that took backbone. No, she underscored. Not in her vue.
8
26
96
Dat's ability to handle multiple authors ("multiwriter") is being built by @mafintosh + community members right now. When it's done, Maf is going to have one of the most incredible talks to give about it.
2
17
94
I've started on my next project! Here's a quick teaser: - It's a personal cloud - It runs Deno applications - It uses @HypercoreProto for everything... - ...which means it could run at home behind a NAT - It has a semantic linked-data architecture (not RDF)
11
3
97
Replying to @wongmjane
Bluesky dev here Deletes now are similar to "putting something in the trash" on an OS. We have the functionality for "emptying the trash" implemented, but not in the app or communicated yet.
3
6
95
11,807
Starting on the website for unwalled.garden today
5
15
92
Just published ✍️ Breaking down blockchains, and disconnecting proof-of-work from secure ledgers: pfrazee.github.io/blog/secur…
8
47
91
The thing is, if you accept one “slippery slope” argument then what next? Suddenly you’re agreeing with all of them
4
10
88
Next version of the Dat protocol will have a key value store (called hyperdb) that's very similar to leveldb -- except it's p2p, supports random reads over the network, and has multiple writers. How similar to leveldb? Here's subhyperdb: github.com/Frando/subhyperdb
2
26
86
Replying to @retropragma
Autocomplete and type checking are signs of weakness we must deny. Use nano. Deploy with ftp. Bring back MySpace
2
5
92
8 (virtual) devices syncing a keyvalue-store on the dat p2p network using CRDTs. Will be native to the protocol, probably exposed as `DatDB` in @BeakerBrowser nitter.app/jimpick/status/9830244…
15
89
Live stream in 3 hours. Building a personal site with @BeakerBrowser with vanilla JS only. No 🚫 build step, framework, or libraries. Going to use 📦ES modules, 🧩Web Components, and ✨dat. piped.video/watch?v=M7g_ZCqS…
4
23
88
A fun detail of @at_protocol is that we use IPLD for the signed data repositories, which means you can export your data in a .car file and explore it using the IPFS cli tool Here is drilling down to an individual record from the top:
9
19
86
Okay no promises but probably @BeakerBrowser
6
12
81
Experimenting with using Unwalled Garden's social signals in Beaker's URL bar to act as a Web-of-Trust identity
3
8
79
Polymer seems to be doing a restart around lit-html. This looks like it has potential. lit-element.polymer-project.…
7
23
86
Very cool of @brave to help fund Dat's development. @BrendanEich and his team are showing their support for an open and decentralized Web.
Btw we at @brave will make a $50k donation to codeforscience.org/ in support of dat: in Brave as well as Beaker’s deeper ongoing work.
1
32
87
Why would you ever do things other than string parsing and interpolation? Explain to me how variables can have “types” other than strings when I’m looking at the values and they’re clearly made of text
3
10
80
Some @BeakerBrowser work in progress: Send messages to peers when you visit a dat:// website. datPeers.broadcast(...) datPeers.addEventListener('message', ...) It's like a WebRTC data channel, but without the hassle of signaling Demo video: piped.video/watch?v=oDGw9kID…
9
17
77
This post by @dominictarr about the event-stream attack is spot on. Pay maintainers or do the work yourself. gist.github.com/dominictarr/…
3
21
81
Peer-to-peer blogging and RSS ◆ Reader app and blog served over dat:// ◆ Built with choo ◆ Runs on @BeakerBrowser v0.7 pre-release
2
25
80
The truth is, nobody can keep their multiplier at 10x the whole time they code.
3
15
75
🎉WebDB is now a userland module and it's ready to use 🎉 Build p2p apps on top of the dat:// filesystem, but store and query data with the convenience and performance of a database. github.com/beakerbrowser/web…
3
23
80
I tried out @keet_io, which is the new p2p video chat app by the Hypercore folks I used to work with (@mafintosh @andrewosh and more) and I think it's pretty slick! Nice work, yall!
7
10
80
Just blogged: What is the P2P Web? pfrazee.github.io/blog/what-…
3
38
74
It feels like we're being patted on the head as a reactionary idealists when we complain. "Oh, stop complaining. The Web is basically a Google product anyway. Now log in already."
2
14
71
MacOS CLI trick: The `say` command will text-to-speech whatever you pass. This is handy for notifying you after a long process. npm run build && say done
9
15
73
Added a sidebar to Beaker that shows comments on the current page and a scratchpad for taking notes.
3
11
74
My FOSDEM 2021 talk: "Decentralization and decency" As decentralization is gaining interest, what are our values and goals as a community beyond just censorship resistance? How are we solving problems, not just creating new ones? piped.video/watch?v=ULFj714_…
6
21
72
Unfortunately it’s impossible to compare, nobody has ever done both
2
7
77
One of the coolest new features in Chrome 80 is highlighting text in a page by a new URL fragment specifier github.com/WICG/ScrollToText…
3
24
76
dat:// sites are p2p, so unlike https:// sites, there's no host server This is great! But when dat:// sites need to interact w/ third-party servers, browser policies like CORS can get in the way What can we do? Here's what we're trying in @BeakerBrowser pfrazee.hashbase.io/blog/dat…
2
26
68
✏️ Just published an answer to the question, "If you need to keep your computer online or use peer-services like hashbase to host a dat:// site, then why bother?" pfrazee.hashbase.io/blog/why…
5
29
67
Created a CLI tool, tmpdat. Creates a temporary in-memory dat from the current folder. Use it when you're working on an app/site and need a dev version; like "python -m SimpleHTTPServer" but for dat:// github.com/pfrazee/tmpdat
2
15
63
New version of @BeakerBrowser has been released with a rewritten UI and some important security fixes. You can now dock devtools! We have *almost* solved the freezing issue🤦‍♂️ I'm so sorry that's taken so long for us to solve. We should have another patch release soon.
3
12
66
Feels good to hit 1.0. Gonna braindump a bit about it
Beaker 1.0 is finally here! Share peer-to-peer websites from your computer beakerbrowser.com/2020/12/02…
7
13
67
Was just watching a video sent over dat:// by a friend when it cut off early. I thought it might be a bug in the p2p protocol (connection loss, failed to rediscover, might need to restart swarm). Turns out, his computer went to sleep.
3
4
65
Here's how I'd describe HyperDB to somebody new: It's “LevelDB meets BitTorrent meets CRDTs"
HyperDB 3.0.0 is out! This marks the first stable (LTS) release of both the API and the storage format, which I am super excited about \o/
12
62
A 404 is an invitation to create (cc @pwang)
2
3
62
My JSConfEU talk is up! I argue that user rights are encoded in Web standards, and by extension, the systems that implement them. We have to treat our technical networks as civic systems and write standards with rights and authority in mind.
Formalizing user rights on the Web How should we think about harassment, bullying, bots, and misinformation on the Web? Have we failed as an industry to protect users, and do we need to aggressively police our spaces? @pfrazee in piped.video/x-ffpAkviM0
1
22
61
For anybody still unsure: We have to find a way to square our ideals and our fears about monopoly control with the realities of how our technology is working. It's not enough to defend an ideal. We need to be effective.
2
3
59
Really loving with @excalidraw. Open source, stores whiteboards using local files, performs great. I use it constantly on the stream. excalidraw.com/ A whiteboard from yesterday:
1
5
66
This little hack uses Dat's upcoming DHT, hyperswarm. The really cool thing about hyperswarm is that NAT hole-punching is built into it! Hole-punching is one reason why WebRTC relies on signalling servers, so it's excellent that we can handle it with an open distributed service.
Tonights 10 minute hack, run SSH over a P2P connection github.com/mafintosh/hyperss…
1
11
64
Happy to say the tweet about non-blockchain smart contracts led to some productive conversation and now there's a whitepaper draft for the idea. I'm in the process of gathering feedback so DM if you're interested in giving it a read.
7
7
61
Just because a couple of people are asking, Bluesky is an independent company from Twitter. Jay negotiated hard to ensure that. No new daddy for me.
5
3
64
Like Airdrop but over the internet, using p2p tech, on the CLI echo "hi" | hyp beam "a secret phrase" hyp beam "a secret phrase" > ./hello.txt
Hyperbeam! The result of a good Saturday hacking session. A 1-1 internet E2E encrypted pipe using Hyperswarm github.com/mafintosh/hyperbe… Part of the Hyp cli in github.com/hypercore-protoco…
1
8
58
Polymer has continued to be a fantastic experience for me as a framework. 🔷 No build step 🔷 No wrapper over the dom 🔷 Tons of affordances 🔷 Web-Components
6
5
60
spork. Spork. SPORK. S P O R K ☠️💀THE SPORK TOOL is version 0.0.1 (alpha)💀☠️ Expose localhost servers as p2p sockets, and bind p2p sockets as localhost servers. Tunnel across the world with ✨spork powers✨ github.com/atek-cloud/spork
1
10
59
The thing is, people don’t want tokens and they don’t want to manage keys. What they want is a better life. To be happier. To improve daily interactions. They want something that starts their day nicely, that cuddles up on the bed and purrs and ah shit I’ve invented cats again
7
3
63
Dat is a "hypermedia filesystem." Every file has a URL.
1
10
59
Life ★★☆☆☆ "First 30 levels are really grind heavy and it’s not obvious how the specializations affect the game mechanics. Lots of balance issues at the moment. Tutorials are out-of-date and often wrong. Devs keep promising a patch but late-game players keep blocking it."
4
17
53
“lmao” is just how french cats say “meow”
3
10
56
Finished moving dat into its own process, now doing some QA. I'm seeing huge improvements in Beaker's UI responsiveness, which makes Beaker feel more stable. Very excited about that. I'll do some benches tonight or tomorrow to measure the cost to dat read/write latency
3
55
Two words: PeerSockets. Wait, that's one word. But it's an API name? It's camel cased to infer two words. Anyway. We're going to use hyperswarm to make better p2p messaging APIs in Beaker. 🐝⚡️
6
6
57