semaphore
semaphore copied to clipboard
Development - Build a project with just HTML, CSS, TS Semaphore Project
Sometimes Semaphore is mistakenly thought to be only for web3 (Ethereum) or with a specific front-end framework (i.e. React).
Create a simple application that just uses Semaphore with "pure" HTML, CSS, TypeScript.
Working on this issue.
@vplasencia I'd like to take on this issue but I need a little more description, is it just the landing page that should be written in HTML, CSS, JavaScript?
@nikitakent It seems you have built something already, haven't you? @vplasencia would https://github.com/nikitakent/semaphore-court-app close this issue (didn't try to run it or review it in details)
Hi @sripwoud - merkle trees used in the semaphore library need some kind of storage solution, which - to my knowledge -, is not well-supported by a vanilla web application. We'd need to build some custom TS capability for us to convert the merkle tree to a JSON and retrieve the data back as a merkle tree structure so we can perform validation etc. This new resource may help.
Once we have solved this merkle tree storage problem, the application can be finalised and we can close this issue.
@auleki, if you are still interested, I can guide you through the storage problem in more detail and/or work together on the issue, I have some time available. Please let me know.
Hey @nikitakent, are you using on-chain groups? If so, you don't need to store Merkle trees.
Hey @cedoor. Yes, that would be the easy solution. But - and please correct me if I am mistaken - wouldn't using an on-chain functionality defeat the purpose of this project/issue?
Hey @cedoor. Yes, that would be the easy solution. But - and please correct me if I am mistaken - wouldn't using an on-chain functionality defeat the purpose of this project/issue?
I read the description again. Yes, you're right, I think this task is supposed to be about a web2 app.
You could just save the list of members of 1 or more groups in a db (like Mongo) and then when the app starts you could create the groups on the fly with @semaphore-protocol/group
by retrieving the list of members and passing it as a parameter in the constructor. How does it sound?