<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: jpereira</title><link>https://news.ycombinator.com/user?id=jpereira</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 30 Apr 2026 17:59:14 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=jpereira" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by jpereira in "Moss is a pixel canvas where every brush is a tiny program"]]></title><description><![CDATA[
<p>Love this! A couple things it'd be really fun to see:<p>- timelapses of things being drawn<p>- a list of brushes used in a drawing<p>To get even wilder, what if you could record brush strokes and then retroactively change the brush code and replay them?</p>
]]></description><pubDate>Thu, 05 Mar 2026 03:51:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=47257321</link><dc:creator>jpereira</dc:creator><comments>https://news.ycombinator.com/item?id=47257321</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47257321</guid></item><item><title><![CDATA[New comment by jpereira in "Communities are not fungible"]]></title><description><![CDATA[
<p>I guess I got my language wrong here. Maybe what I'm talking about is about portability more than global vs local. Identities should exist at a layer higher than any given social context, and should be "materialized" into that context with local information. It's not about using the same identity everywhere, it's about being able to take the identity where <i>you</i> want to. Similarly it's not about the same information being available everywhere, but information being relative to durable identities, not ephemeral ones.</p>
]]></description><pubDate>Wed, 11 Feb 2026 19:25:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=46979555</link><dc:creator>jpereira</dc:creator><comments>https://news.ycombinator.com/item?id=46979555</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46979555</guid></item><item><title><![CDATA[New comment by jpereira in "Communities are not fungible"]]></title><description><![CDATA[
<p>When thinking about online communities I think the lack of "global" identities has dramatically hampered community migration and evolution. I fully agree with the author that you can't just pick up and move a community wholesale but irl we do see patterns of migration, disaporas, etc that bring along with them relationships and trust networks. That's been basically impossible to do online. The networks where most of us hang out are even straightforwardly antagonistic towards people leaving and maintaining their identities and relationships in anyway.<p>I don't quite know how to articulate it but I really feel the social fabric of the internet has been limited hugely by this, and it's hard to seperate what is fundamental about community migration with what's an outcome of this limited circumstance.</p>
]]></description><pubDate>Wed, 11 Feb 2026 12:03:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=46973901</link><dc:creator>jpereira</dc:creator><comments>https://news.ycombinator.com/item?id=46973901</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46973901</guid></item><item><title><![CDATA[D2TS – Differential Dataflow in TypeScript (Used by TanStack DB and ElectricSQL)]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/electric-sql/d2ts">https://github.com/electric-sql/d2ts</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46597459">https://news.ycombinator.com/item?id=46597459</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 13 Jan 2026 05:01:10 +0000</pubDate><link>https://github.com/electric-sql/d2ts</link><dc:creator>jpereira</dc:creator><comments>https://news.ycombinator.com/item?id=46597459</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46597459</guid></item><item><title><![CDATA[New comment by jpereira in "Unison 1.0"]]></title><description><![CDATA[
<p>I'm curious about how the persistence primitives (OrderedTable, Table, etc) are implemented under the hood. Is it calling out to some other database service? Is it implemented in Unison itself? Seems like a really interesting composable set of primitives, together with the Database abstraction, but having a bit of a hard time wrapping my head around it!</p>
]]></description><pubDate>Tue, 25 Nov 2025 21:43:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=46051158</link><dc:creator>jpereira</dc:creator><comments>https://news.ycombinator.com/item?id=46051158</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46051158</guid></item><item><title><![CDATA[New comment by jpereira in "Tangled, a Git collaboration platform built on atproto"]]></title><description><![CDATA[
<p>The fact that all the data is open means not only that you could plausibly exit to other providers and keep <i>all</i> your projects data, (issues, prs, etc), but also that it's dramatically easier to build other tools that work on that same data. Triage, labelers, bots, etc, I know these are all possible on GitHub today with their API, but I think the programming model of ATProto removes a lot of friction in building and composing them.</p>
]]></description><pubDate>Sat, 11 Oct 2025 01:22:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=45545686</link><dc:creator>jpereira</dc:creator><comments>https://news.ycombinator.com/item?id=45545686</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45545686</guid></item><item><title><![CDATA[New comment by jpereira in "Open Social"]]></title><description><![CDATA[
<p>In my view the atproto approach asks the users to make fewer required complex decisions, but gives them the freedom to make many voluntary ones. If someone wants to use a particular application, they basically just need to sign in. If they don't have an existing ATProto account, they can just make one, in the flow of the application they're signing into. Later they can chose different clients, or different infrastructure, or move their account, to their own hosting even if they want.<p>Mastodon requires a complex decision upfront, which server do I trust, which is analogous to where you create your account on ATProto, but unlike ATProto, doesn't give the tools to seamlessly transition later.<p>The trust lens I think is a good one. You want to let different users make different tradeoffs in effort without having that leading to a worse experience..</p>
]]></description><pubDate>Fri, 26 Sep 2025 17:40:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=45389054</link><dc:creator>jpereira</dc:creator><comments>https://news.ycombinator.com/item?id=45389054</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45389054</guid></item><item><title><![CDATA[Social media is a gnarly coordination problem we need to decompose]]></title><description><![CDATA[
<p>Article URL: <a href="https://awarm.leaflet.pub/3lyzchme2d22b">https://awarm.leaflet.pub/3lyzchme2d22b</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45274048">https://news.ycombinator.com/item?id=45274048</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 17 Sep 2025 10:31:48 +0000</pubDate><link>https://awarm.leaflet.pub/3lyzchme2d22b</link><dc:creator>jpereira</dc:creator><comments>https://news.ycombinator.com/item?id=45274048</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45274048</guid></item><item><title><![CDATA[New comment by jpereira in "Slow social media"]]></title><description><![CDATA[
<p>I wrote a lil blog post after reading this this morning: <a href="https://awarm.leaflet.pub/3lyzchme2d22b" rel="nofollow">https://awarm.leaflet.pub/3lyzchme2d22b</a><p>tl;dr: people have a huge diversity of preferences for social media, we need to rearchitect social networks to allow them to express those preferences while still connecting with each other, I think atproto enables this and is where I'm betting on.</p>
]]></description><pubDate>Wed, 17 Sep 2025 07:24:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=45272868</link><dc:creator>jpereira</dc:creator><comments>https://news.ycombinator.com/item?id=45272868</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45272868</guid></item><item><title><![CDATA[New comment by jpereira in "Next.js is infuriating"]]></title><description><![CDATA[
<p>Agh, sorry about this! I'm one of the people building leaflet.pub, which this blog is running on. Just pushed a fix for this (ironically on nextjs/vercel). The redirect loop is to handle sharing auth between our "main" domain, and people's various custom subdomains. Auth, via the ATProtocol, is used for things like subscribing and commenting!</p>
]]></description><pubDate>Tue, 02 Sep 2025 10:50:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=45101297</link><dc:creator>jpereira</dc:creator><comments>https://news.ycombinator.com/item?id=45101297</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45101297</guid></item><item><title><![CDATA[New comment by jpereira in "Substack just killed the creator economy"]]></title><description><![CDATA[
<p>disclosure: building a substack competitor on atproto<p>I'm really excited for ATProto as a way to build applications that let you have the benefits of substack (a unified network, recommendations, social features like comments, etc) without the eventual path to lock in.<p>It's particularly exciting because the <i>incentive</i> is actually there to build an application this way. Whether Bluesky is growing or not, there are currently 30M accounts that you can reach (with one of the best auth systems I've interacted with), AND atproto gives you the building blocks for <i>others</i> to build on your work. Both these things make the bootstrapping problem for any social application way down.<p>There's still a lot of stuff missing, payments being a big (and gnarly one), notification management being another, but both the bluesky team and the overall ecosystem has been moving at a solid pace, and things are getting more viable by the day.</p>
]]></description><pubDate>Mon, 01 Sep 2025 03:46:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=45089263</link><dc:creator>jpereira</dc:creator><comments>https://news.ycombinator.com/item?id=45089263</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45089263</guid></item><item><title><![CDATA[New comment by jpereira in "[dead]"]]></title><description><![CDATA[
<p>Super early days, but we've been building a substack alternative on top of atproto, you can check out some publications people have made at leaflet.pub/discover.<p>I think atproto offers a pretty compelling way to get the benefits of substack, like discovery, native social features like comments, quotes etc, integration into a microblogging network; without locking into a closed network.<p>The extensibility story is also really good, opening interesting opportunities for individual publishers to augment their experiences.<p>Moderation, which is the main point of this article, is a bit of an open question, but diffusing responsibility the way bluesky does is a more promising direction imo than hoping a single trust and safety department can make everyone happy.</p>
]]></description><pubDate>Sun, 03 Aug 2025 21:01:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=44779772</link><dc:creator>jpereira</dc:creator><comments>https://news.ycombinator.com/item?id=44779772</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44779772</guid></item><item><title><![CDATA[New comment by jpereira in "Show HN: Leaflet.pub – a web app for creating and sharing rich documents"]]></title><description><![CDATA[
<p>Not right now, self hosting isn't a priority for us at the moment. It shouldn't be tooooo difficult to figure out though, the two main infrastructure dependencies are supabase and nextjs and everything else is for additional features. I should make an example .env file to make all that clear though!</p>
]]></description><pubDate>Thu, 06 Mar 2025 16:24:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=43281960</link><dc:creator>jpereira</dc:creator><comments>https://news.ycombinator.com/item?id=43281960</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43281960</guid></item><item><title><![CDATA[New comment by jpereira in "Show HN: Leaflet.pub – a web app for creating and sharing rich documents"]]></title><description><![CDATA[
<p>Leaflet looks like an amazing library. We only came across it and the naming collision after we got started, and so far haven't had too much confusion, but definitely a good idea to be aware when we do an SDK. Would love to make the confusion worse by including a map block in leaflet.pub via leafletjs someday though!</p>
]]></description><pubDate>Thu, 06 Mar 2025 06:21:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=43276999</link><dc:creator>jpereira</dc:creator><comments>https://news.ycombinator.com/item?id=43276999</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43276999</guid></item><item><title><![CDATA[New comment by jpereira in "Show HN: Leaflet.pub – a web app for creating and sharing rich documents"]]></title><description><![CDATA[
<p>Unfortunately not yet, we haven't come up with a pattern we like for that yet, just added buttons quite recently. Right now the move is to delete and re-add, which I know is annoying. Will improve soon!</p>
]]></description><pubDate>Thu, 06 Mar 2025 05:56:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=43276853</link><dc:creator>jpereira</dc:creator><comments>https://news.ycombinator.com/item?id=43276853</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43276853</guid></item><item><title><![CDATA[New comment by jpereira in "Show HN: Leaflet.pub – a web app for creating and sharing rich documents"]]></title><description><![CDATA[
<p>There's actually a fair amount going on server side. For one, we have server authoritative sync. There's a lot of mutations that would be tricky to reason about in purely p2p sync, and just applying them to an authoritative source makes that a lot simpler (and is what let's us use Replicache!). Beyond that though we have a bunch of features, custom domains, polls, rsvp blocks, that depend on us being able to control permissions.<p>It's definitely <i>possible</i> to do all if this in a p2p context, but it's much harder and increases the complexity a ton. It also makes it harder to be fast, you're naturally increasing the amount that needs to be done client side, and server rendering is out the door. There's a bunch of client-side editors that I think are great, and end-to-end encryption is definitely something I want to work towards, but it's out of scope for us right now.</p>
]]></description><pubDate>Thu, 06 Mar 2025 02:49:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=43275846</link><dc:creator>jpereira</dc:creator><comments>https://news.ycombinator.com/item?id=43275846</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43275846</guid></item><item><title><![CDATA[New comment by jpereira in "Show HN: Leaflet.pub – a web app for creating and sharing rich documents"]]></title><description><![CDATA[
<p>Super helpful thanks!<p>The leaflet icon is our little watermark (which can be disabled!). Just updated it to point to <a href="https://about.leaflet.pub" rel="nofollow">https://about.leaflet.pub</a> instead of just leaflet.pub, it was just creating a new doc every time you clicked it.<p>Useful feedback on strikethrough! Will review our implementation of it.<p>As for dark mode, you can theme your documents, and use existing documents as templates for others, so you can get dark mode that way. We could do a lot to make it easier to share and get basic themes though.</p>
]]></description><pubDate>Thu, 06 Mar 2025 02:45:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=43275808</link><dc:creator>jpereira</dc:creator><comments>https://news.ycombinator.com/item?id=43275808</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43275808</guid></item><item><title><![CDATA[New comment by jpereira in "Show HN: Leaflet.pub – a web app for creating and sharing rich documents"]]></title><description><![CDATA[
<p>You should be able to change all the colors in the theme options! As for fonts, currently working on adding options there! Probably not going to support custom icons though, but maybe an minimal mode (sans icons, maybe only text) could be interesting?</p>
]]></description><pubDate>Thu, 06 Mar 2025 00:11:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=43274539</link><dc:creator>jpereira</dc:creator><comments>https://news.ycombinator.com/item?id=43274539</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43274539</guid></item><item><title><![CDATA[New comment by jpereira in "Show HN: Leaflet.pub – a web app for creating and sharing rich documents"]]></title><description><![CDATA[
<p>Very fair question! Honestly the main reason it's source available rn instead of open source is we haven't decided on a license internally, as opposed to business reasons. As for monetization, the two areas we're exploring are publication, subscriptions to blogs, a la substack, and a "pro" tier, with better tools for managing <i>lots</i> of documents.</p>
]]></description><pubDate>Thu, 06 Mar 2025 00:07:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=43274513</link><dc:creator>jpereira</dc:creator><comments>https://news.ycombinator.com/item?id=43274513</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43274513</guid></item><item><title><![CDATA[New comment by jpereira in "Show HN: Leaflet.pub – a web app for creating and sharing rich documents"]]></title><description><![CDATA[
<p>In our last product (hyperlink.academy) we went through a <i>lot</i> of iterations on multipage designs, from carousels, to stacking decks, to a kind of 2-pane view, and eventually settled on the side scrolling view. Really useful for drilling down into things, looking at things side-by-side, etc. Glad to hear you like it!</p>
]]></description><pubDate>Wed, 05 Mar 2025 23:04:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=43273986</link><dc:creator>jpereira</dc:creator><comments>https://news.ycombinator.com/item?id=43273986</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43273986</guid></item></channel></rss>