metadata: {"title": "Geist dApp Kit", "logoImg": "bafkreib7lqwi3oqjf7b36hn5k6hyoittoxors3cme5kfjzxk357hsumcsa", "website": "https://github.com/fractaldotbox/geist-dapp-kit", "bannerImg": "bafkreifg7kzvpyt6a6n625nhd34xkdcmbgugxitjejxknbljhtndobrhn4", "createdAt": 1729109440884, "userGithub": "debuggingfuture", "credentials": {"github": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..xb9BFxlOghaX7VDbxFisHdAL8TLrAnYvgTvMdgHRgNnxVvpm58N47JA5QnUdaUMBLh6NC22a3PxbXYLbriRVBw", "type": "Ed25519Signature2018", "created": "2024-10-16T20:08:16.136Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2024-10-16T20:08:16.136Z", "expirationDate": "2025-01-14T20:08:16.136Z", "credentialSubject": {"id": "did:pkh:eip155:1:0x962EFc5A602f655060ed83BB657Afb6cc4b5883F", "hash": "v0.0.0:bawBRtgVECRxGxUxmFP58M6DrHo3OOwErSm9mNveynA=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextGithubOrg#fractaldotbox#1883877"}}, "twitter": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..hQ3V2modw8uNYmIz83ebqk6shxfGpSFXkE9qyOLEiVnTCqHsbEYAHhdfChgbG9ejxxaC4UNZUYYyICKuRZzHCg", "type": "Ed25519Signature2018", "created": "2024-10-16T20:06:37.063Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2024-10-16T20:06:37.063Z", "expirationDate": "2025-01-14T20:06:37.063Z", "credentialSubject": {"id": "did:pkh:eip155:1:0x962EFc5A602f655060ed83BB657Afb6cc4b5883F", "hash": "v0.0.0:CTZZrEhlHJh7HzVm4yLn8yfBjWa8BOwQCd65/hl+QA4=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextTwitter#debuggingfuture"}}}, "description": "\ud83c\udfc6ETHGlobal Singapore 2024 Finalist \u2764\ufe0fOSS, Public Good \ud83d\udc69\u200d\ud83d\udcbbImprove Developer Experience \ud83d\udd12Secure dApps  \u2705 Founding team donated 2ETH+ in prev. GG rounds, organized OSS/Dev communities for 10yrs+\n\n\n![demo](https://black-tragic-booby-340.mypinata.cloud/ipfs/Qmbk2gWTvMLGhEUB3iYivLAWrQPVBNfxQK3Xt2z9yT9WLf)\n\n## Geist dApp kit\nOptimized dApp Components that you or LLM can copy and paste into your apps. Accessible, Localized. Customizable. Open Source. Inspired by shadcn/ui.\n\nThis is not a framework / template. This is more like a cookbook, with very different design principles(below).\n\nThere was an incident and [we had to \"Stop Using Dapps\"](https://decrypt.co/209804/ledger-library-compromised-with-wallet-drainer). We want to avoid that.\n\nWe're working on this dApp kit not only to improve developer experience by providing working examples and decouple styling/implementation, but also to support dapps that are trustless, secure with minimal dependency to particular ecosystems and avoid supply chain attakcs. This is pivotal to support AI autonomous agents to control and iterate on Decentralized, autonomous website with programmable cryptography, which the project `Geist` focus on.  \n\n## What is Geist\n\nGeist is a decentralized website builder for DAOs, enabling trustless zk-proof deployments, private previews, and anti-collusion voting. It supports collaboration and censorship-resistant websites.\n\nAt ETHGlobal Singapore, we prototyped the idea and were [awarded the \ud83c\udfc6Finalist](https://ethglobal.com/showcase/geist-x3fur)\n\n\n\nVitalik mentioned \"walkaway test\" and \"insider attack test\" for better [Ethereum Alignment](https://vitalik.eth.limo/general/2024/09/28/alignment.html?ref=blockhead.co). We want to help people build dWebsites which align that. \n\nDApp kit is where we start, and we want to further build the e2e CMS solution. \n\n## dApp kit Design principles\n\ud83d\udd3b Minimized dependencies, familiar techstack. No ethers by default, all in viem wagmi permissionless radix tailwindcss, user controls the rest.\n\ud83c\udfce Optimized and SSR ready. Unified data fetching with unopionated data source, minimized JS\n\ud83e\udd0c Small. Faster for both user and ci. Cheaper to store.\n\ud83d\udd12 Secure. No dynamic script loading. Audited dependencies (TODO)\n\ud83d\udd4a\ufe0f Censorship Resistant. Take explicit control on asset gateway and trust assumptions\n\ud83c\udf10 Accessible & Localization ready\n\u26d3\ufe0f Ecosystems, Framework agnostic\n\ud83d\ude4c Working example. First class Storybook support, avoid outdated documentations.\n\ud83d\udeb6 Open source. Authors can walkaway. No npm account to secure.\n\n## Current State\n- We have been prototyping, with a [rough demo](https://black-tragic-booby-340.mypinata.cloud/ipfs/Qmbk2gWTvMLGhEUB3iYivLAWrQPVBNfxQK3Xt2z9yT9WLf)\n- Feature we've built and polishing\n  - common react components (e.g. resolve ENS names)\n  - Demo on EIP191/EIP721 signing with `viem` / `micro-eth-signer`\n  - wagmi-based, alternative, treeshake-able client to Ethereum Attestation Service\n  - upload widgets to upload files to Filecoin\n  - Avatar components with explicit ipfs gateway control (for censorship-resistance)\n\n## Roadmap\n- For now, focus is to build 100+ working receipes and identify best practices (e.g. Gql loading, component structure)\n- We plan to launch alpha version with \n  - working storybook to receive community feedback\n  - shadcn cli compatibility\n  - dogfooding at some dWebsites & starter kit  \n", "logoImgData": {}, "bannerImgData": {}, "projectGithub": "fractaldotbox", "projectTwitter": "debuggingfuture"}
name: Geist