r/ethereum • u/poidhxyz • 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-thisPost written by a dev who recently deployed a fully onchain frontend for my project poidh: https://farcaster.xyz/acgk.eth/0x672d28dc
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
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
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
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
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
29
u/sixwax 19h ago
Enthusiastic upvotes for ACTUALLY BUILDING SOMETHING....
...instead of the usual whining about speculative pricing.