Proposal “DashMoney-Dapp-Development-DEC-2023-INFO“ (Closed)Back

Title:DashMoney - Dapp Development (Dec 23) INFO: Decentralizing Frontends and Integrating dapps
Owner:DashMoney
One-time payment: 1 DASH (32 USD)
Completed payments: no payments occurred yet (1 month remaining)
Payment start/end: 2023-12-10 / 2024-01-09 (added on 2023-12-04)
Votes: 458 Yes / 5 No / 53 Abstain

Proposal description

Just an informational proposal this month.

To inform on what was done in the previous months and the direction of DashMoney dapp development.

The 1 Dash is to gauge sentiment and/or see if information proposals are useful or not.

What was Done:


DashMoney.io(Location dapp) and DashGetReviews(Buyer/Seller Ratings dapp) and ProofOfDash(Proving funds dapp) were done.
***Update - DashMoney.io now displays the integrated dapp and not the location dapp (09DEC2023)***

I also tested out using daisyUI (Tailwind CSS) components instead of React-Bootstrap components, and using Vite instead of CreateReactApp as the build tool.

The results are that I will continue to use React-Bootstrap components as it would slow my development to switch to daisyUI right now, but I do concede that daisyUI is much more powerful and has better customization. Maybe a future to-do item.

But I will be switching to using Vite as the CreateReactApp build process is a bit complicated if I were to introduce a .env file (for frontend decentralization) and there is also in CreateReactApp, the change of the react-scripts file for the build process. But these issues are solved easily in Vite and so others should have a much easier time utilizing and hosting the decentralized frontend with Vite.

Additionally, (to prevent confusion) the dapps are currently written with React JS, a javascript library, and will remain written in React. Vite and CreateReactApp are just different build tools for bundling the code for the browser.


What direction is DashMoney Dapp Development going?


If you have not read about “Decentralized Frontends”, please visit Dash Forum post and read about it. I have a bit more to say that I hope will help explain.

Additional ways to understand “Decentralized Frontends”:

1) The frontend entrepreneur incentives are like a POW miner. The frontend entrepreneur gets paid only when someone uses the frontend by submitting a document to Dash Platform, just like a miner only gets paid when they find the next block.
But the relationship between the frontend entreprenuer and the user is not like a miner and a block-chain user.

2) Frontend relationship is like an average centralized crypto exchange (I guess you could put the frontend on IPFS, but let's just keep this analogy simple for now) and an exchange user.

But the ‘account’ is not like a crypto exchange account. When you log into a crypto exchange, you have to log into their system. “Your account” is an account that they (the centralized exchange) control.

If you can think back to when all crypto exchanges were unregulated and free market(2012 - 2018). You could get a Mt. Gox, Coinbase, ShapeShift, Poloniex, Uphold, etc…

3) But for platform, the ‘account’ is not something that the “Frontend Site” controls.  With Platform, the account is something that you have full control over. So the “Frontend Site” should not save your 12 words at login. Now if a “Frontend site” does try to KYC or save your 12 words, you can choose to not use them and find some other site to use.

This is just something the free market will have to sort out.

Now, you could have something like a “Metamask”, where there is a intermediary between you and the dapp, but then you would have to trust the 'Metamask' intermediary. The issue of trust remains.

Or you can always run the code yourself, but unless you have read and vetted all the code yourself, you will have to trust the code provider.

Now if you think why not have something like decentralized exchanges. Well, even decentralized exchanges have centralized frontends, so we will just have to see how that goes.

Now it could be interesting, with identity credit transfers, decentralized exchanges may incorporate the “frontend decentralizing” of Dash Platform, because we have inexpensive, fast micro-payments and an identity system build in. (Now the Dash Identity system is not KYC, you can be whomever you want to be and have as many identities as you want.)

Because like Thorchain, we have seen that even ‘decentralized’ exchanges can undergo censorship even if it is self-censorship. I think even MetaMask will introduce KYC (possible hearsay from me). But the point remains, any point of centralization is a point of weakness. Therefore, the economics need to be established that enable the frontend to be decentralized just like the backend.


Another question: Why integrate the dapps together now and why didn't you just do this to begin with?


Decentralizing Frontends was not the original vision, but I wonder if any one had this idea during platform's design phase. When I started making dapps, I was just making things, and I thought other developers would bring ideas and the Data Contracts/Dapps could be combined in different ways to find the best ways to use platform. That did not happen, at least has not happened yet. (Maybe we are still early.)

So now this new "decentralized frontend" approach:

Now the decentralized frontend is kind of like a “dApp Store”.. Which ironically, is something you can not do on app stores (iOS or Android), because they like to gate keep, but that won’t cut it in crypto.

The current plan is to not bring DashGetNames, DashShoutOut, DashGetMoney, DashGetPaid, DashMoney.io, DashGetReviews and ProofOfDash to Mainnet separately.

But to incorporate all these (above mentioned) dapps into a single dapp and put that at DashMoney.io. I will change the DashMoney.io(previously the Location dapp) to DashGetLocation that will be the repo name on Github, but there will be no site for it (i.e. no DashGetLocation.com). The functionality like all the others will incorporated into the single site/dapp on DashMoney.io.

All the original separate dapps (the code) will remain on the Github for anyone to use. The websites though will slowly come down as I stop paying for the domain names. If you wish to purchase a site and host the dapp, that is up to you.

I plan to have DashGetNames, DashShoutOut, DashGetMoney DashMoney.io, DashGetReviews and ProofOfDash functionality integrated first. And then do DashGetPaid and DashGetTogether in a second phase.

I really want people to be able to use the integrated dapp, so you can see what it is, by using it. That is why this is just an informational proposal.


Upcoming Plans:

1) Present the integrated DashMoney.io dapp (ETA: Middle of December, possibly sooner), it will have DashGetNames, DashShoutOut, DashGetMoney, DashMoney.io(DashGetLocation), DashGetReviews and ProofOfDash functionality on Testnet. And add the identity credit transfer to this as the frontend fee mechanism.

2) January 2024: Proposal for funding to incorporate DashGetPaid (a Dash Platform Marketplace) and add functionality for ‘Pay Later’. Currently, you have to pay (send Dash) with an order. But I will make it so that you can place an order and then pay later once the order is completed. This functionality (Pay Later) will be controlled by the store owner, whether they want to allow it or not.

DashGetPaid will be separated into My Store(Merchant-Login) and Shopping(Buyer-Login) in the integrated DashMoney.io Dapp.

This will also be the decision proposal that I said I would have prior to putting DashGetPaid on Mainnet, since the Decentralized Frontend path means that I am not in control of dapps or who operates them. This future funding proposal will be that decision point.

3) Bring back DashGetTogether(Group Messager) by integrating its functionality into the integrated DashMoney.io dapp.

4) Incorporate message editing and add Local Storage for improving UX in the integrated dapp.

5) Create a documents/identity control page for the integrated dapp:

    • This is for viewing and deleting your Platform documents. So if you have placed an order and it is fulfilled or finished with a location post or an old message. You can delete it.
    • Also this control page will allow you to do the identity “break” which will make an identity unusable, for the purposes of if someone else were to have obtained the 12 words for your account.
    • And be able to do credit withdrawals. (Platform Credits to Dash)

A bit further future plans/possibilities:

Implement a “keyword search” for Shopping. This will allow for tags to be added to items and then when a shopper searches for keywords, it will return the items based on the tagged keywords. Currently, there is no way to search for an item, the search is for the store name (which is the same as the DPNS name) and then you can view the items the store contains.

Make a browser version of DashPay Data Contracts and use the DashPay profile/images in the other dapps like in messages to improve the UX.

I also think it will could be interesting to take the integrated DashMoney.io dapp and since it is all written in React, just convert it to React Native and have a iOS app and Android app.

That is all I have for now. Please ask if you want something clarified.

Show full description ...

Discussion: Should we fund this proposal?

Submit comment
 
-1 point,11 months ago
So you spend one dash just to inform us and advertise your work?

This is not a proper usage of the budget system.

This budget is for financing ideas or for taking governance decisions.
Reply
1 point,11 months ago
I can appreciate the idea that having an informational proposal is unnecessary bloat. But it is my responsibility to ensure that those who pay me are well informed on what their money is or will be going toward. This is an attempt to satisfy that responsibility.
Reply
2 points,11 months ago
DashMoney.io now shows the integrated app. It is still in the process of connecting all the functions.
Reply
3 points,11 months ago
Thank you for this Informational proposal.
As an informational proposal there is no real need to vote on it, just to read it.

I will vote abstain, to indicate it read it.
Reply
1 point,11 months ago
* to indicate i read it
Reply
1 point,11 months ago
Why should I inform the reader that I read his text?

Can you give me a reason for that?
Reply
1 point,11 months ago
I'll put in a YES for the informative post, keep the good work coming in for Dash. Cheers!
Reply