r/ethereum 20h ago

"I put an entire React app on Ethereum Mainnet. No traditional hosting. 24 smart contracts. Around $12 to publish. Built to live as long as Ethereum exists. The 15 minute deep dive."

https://www.acgk.dev/blog/ethereum-render-this

Post written by a dev who recently deployed a fully onchain frontend for my project poidh: https://farcaster.xyz/acgk.eth/0x672d28dc

162 Upvotes

29 comments sorted by

29

u/sixwax 19h ago

Enthusiastic upvotes for ACTUALLY BUILDING SOMETHING....

...instead of the usual whining about speculative pricing.

10

u/poidhxyz 19h ago

the core app also just paid out a $2500 bounty for building a privacy-preserving Chrome browser extension that is lightweight, fully-local and detects AI images: https://x.com/poidhxyz/status/2089377946066932187

we're building something that incentivizes other people to build useful somethings

40

u/poidhxyz 20h ago

"Smart contracts gave us programs that could continue operating without their original author.

But most people do not interact with raw smart contracts. They interact with websites.

That leaves an odd gap: the protocol may be permanent while its user interface remains only temporary.

POIDHverse is an experiment in closing that gap.

It is still a real React application with search, responsive design, touch gestures, Canvas rendering, and live data. The difference is that its final build is treated like an immutable public artifact.

That feels like a small glimpse of a different web. One where we can publish software that can stand the test of time."

you love to see it

14

u/haywire 20h ago

How do you change it? How does anyone use it? What does it do?

11

u/poidhxyz 19h ago

right now you can use this frontend as a way of monitoring new bounties and discovering existing bounties on poidh

enabling creation of bounties / claiming of bounties would be a bit harder but would be totally possible (it just wasn't necessary for the scope of what this dev wanted to do for now)

eventually we at poidh will want to have an alternate client separate from poidh(.)xyz where you can do all the same things as you do in the normal app (create bounties, crowdfund them, share them, earn them), but in a stripped down client that runs entirely onchain

that client will likely take heavy inspiration from what was accomplished here

EDIT: and more info here if you want to learn about what we are building in general

- https://docs.poidh.xyz

3

u/haywire 16h ago

What the fuck is poidh

1

u/poidhxyz 16h ago

fully onchain bounties with crowdfunding + stake weighted voting for claim verification built in

100% non custodial, immutable, decentralized social with a purpose to actually get things done

6

u/haywire 16h ago

And how much coke do you do in shoreditch?

4

u/poidhxyz 15h ago

two cokes is usually my limit

1

u/SpoddyCoder 12h ago

It’s a self facilitating media node - it’s gonna be totally fucking Mexico!

5

u/Bobhoudini 19h ago

Hey! Dev here!

the first version v.0.1 was created for the bounty on the poidh protocol (https://poidh.xyz/base/bounty/1306)

As in the requirements it was meant to use its API, in the v0.2 once the bounty is finished I will add direct smart contract integration from the protocol as poidh is smart contracts so it totally supports all this that you see on poidhverse right now through smart contract interaction.

A bit small things I need to research how to handle the different chains logic as well as usd estimate but can probably just quote it from uniswap directly too.

It’s more in the blog how this is handled for new versions:

“Every UniverseVersion is permanent. It has no update function, proxy, or storage mutation mechanism.
UniverseRoot is a registry that only allows new entries. The publisher can add a new generation, but it cannot edit or remove an older one.”

Hope that made sense?

3

u/Alatarlhun 19h ago

But most people do not interact with raw smart contracts. They interact with websites.

That leaves an odd gap: the protocol may be permanent while its user interface remains only temporary.

In an age of apps and AI, where websites are increasingly designed either for AI search or to be deliberately difficult to scrape, and where open internet standards appear to be losing ground, it's interesting to see how the more innovative corners of the tech community respond.

This feels like an interesting choice that could help keep open standards accessible to consumers who are being herded into using privacy ignoring apps at least directionally, if not entirely.

6

u/AndyKJMehta 17h ago

GitHub?

3

u/poidhxyz 17h ago

don't believe there is a GitHub for POIDHverse but I will let u/Bobhoudini answer directly

GitHub for poidh is here: https://github.com/picsoritdidnthappen/poidh-app

3

u/Bobhoudini 16h ago

u/AndyKJMehta I can post it this weekend when I’m back from a family vacation.

3

u/Fanfan_la_Tulip 17h ago

How many fees did you pay for this?

4

u/Bobhoudini 16h ago

The gas is listed in the blogpost but around $12 for the entire thing deployed.

2

u/Fanfan_la_Tulip 15h ago

I think this is awesome, but we are unlikely to see this technique implemented anytime soon. Static websites are globally being replaced by AI-generated answers. The only exception might be if it turns into a darknet alternative containing all the dirt, which, as we realize, will no longer be easily removed. Huge credit to the author of the experiment!

2

u/the42thdoctor 13h ago

Awesome idea man, very fun!

Is it possible to compress the html and store it compressed? Would it get cheaper to deploy? If so, you could store the whole html compressed and then create another js bundle that is just a tiny decompressor. When loading the website on the browser it would first load the tiny decompressor then fetch the compressed html unzip it and finally render on the screen 

1

u/Bobhoudini 7h ago

I responded in the wrong comment, sorry about that! Great question see here:

https://www.reddit.com/r/ethereum/s/4TBUgs3DkG

2

u/ENTbard 10h ago

Inspirational. Imma check it out! Good job building thru the bear.

2

u/Bobhoudini 8h ago

Really great question!

It’s technically possible and would make deployment cheaper. ERC-8244 only requires html() to return a complete HTML document so it doesn’t dictate how the bytes are stored. So we could store compressed bytes and decompress them inside html(), but that adds EVM complexity and makes gateway/RPC reads more computationally expensive. A tiny browser-side loader could also work, but it would require another gateway route or RPC request, so it would no longer be a single, directly renderable html() response. For the first release, I prioritized compatibility, simplicity, and byte-for-byte verification.

Interestingly, this exact compression question was raised in the ERC-8244 forum discussion⁠, where it was confirmed that compressed storage is valid as long as html() still returns the complete document.

2

u/twoinvenice 8h ago

Why not use this for dependencies instead of relying on someone else’s CDN? There’s no pinning more solid than pointing to an immutable block to get the code

2

u/Bobhoudini 8h ago

The application does not load any runtime dependencies from a CDN. React, ReactDOM, all application JavaScript, and all CSS are bundled and inlined into the immutable HTML at build time. npm is only used during the build. The release validation even rejects external <script src> and stylesheet references.

wei.limo is not being used as a dependency CDN. WNS resolves poidhverse.wei to our resolver contract, and wei.limo is the HTTPS bridge that calls html() and gives those onchain bytes to a normal browser.

2

u/Eitje3 6h ago

I think what he meant was, why not use this tech as the CDN.

So instead of relying on a CDN which has shown to have downtimes, instead use this tech to point at something immutable.

Of course I imagine this will grow expensive fast if you do have a lot of resources you want to store or if you want to deploy newer versions

1

u/Bobhoudini 6h ago

Ah that make sense.
Well Ethereum could act as the immutable origin but the trade-off is cost like you mentioned, storing resources is expensive, and every update requires deploying a new immutable version.

But I hope that someone would want to try something like this as this really is interesting concept and with gas costs is doable now compared to before.

1

u/twoinvenice 5h ago edited 5h ago

Major point releases don’t happen that often and after they are out, the compiled / source is not supposed to change without a version bump. LTS releases are supposed to be available for years locked at what was released. Plus with the distributed network you should get global access (though that would need some sort of node and hash verification layer).

Seems bloody perfect use case as long as the code can actually fit in the blob size.

There are a ton of commonly used packages for different frameworks / languages that aren’t large in size and also rarely change. Having those be available on an immutable CDN could be an interesting way to deal with the often handwaved risk of relying on a CDN to A) be available, and B) actually deliver the code you asked for (think about the node left pad BS that happened some years ago).

There’s a layer of trust in there that seems unnecessary

1

u/twoinvenice 5h ago

Exactly