over budget
Bring Cardano to the web with Vite
Current Project Status
Unfunded
Amount
Received
$0
Amount
Requested
$45,000
Percentage
Received
0.00%
Solution

Vite is a very popular frontend tool that have the mission to compile-to-native ESM, having a very good performance.

Problem

There a lot of barriers right now to begin to build a dapp. You must have a set of tools that have many ways to be installed.

Addresses Challenge
Feasibility
Auditability

Team

1 member

Bring Cardano to the web with Vite

First we need to create a Vite plugin for PureScript. PureScript is a language very similar to Haskell which compiles to JavaScript. Having a Vite plugin for that would help both developers from JavaScript and from Haskell to use and integrate PureScript into new or ongoing web projects.

Then We'll need to write a Vite template to make the boilerplate and settings of Vite for a minimal cardano dapp example project using PureScript and optionally the server-side boilerplate. This template can be called with a simple npx create cardano-dapp.

Finally we must have a good doc page explaining how to begin to build Cardano dApps using our template, and link this on Cardano docs and input-output-hk/essential-cardano on Github.

- increase the number and the quality of Cardano Open Source projects

Vite is a tool to improve the developer experience in the JavaScript ecosystem. PureScript is a language that encourages the production of good quality code and interacts very well with the JavaScript ecosystem. But using the two together is now not a pleasant experience. Having an entry point to build dapps in Cardano with familiar JavaScript tools would open up a huge opportunity for growth in this ecosystem, increasing the number, and because the incentive to use PureScript, also the quality of the projects.

- increase the number of contributors

Having a way to seamless move from JavaScript to PureScript, with Cardano incentive, would increase the number of contributions in Cardano Haskell projects, due to the shared characteristics between the languages. We would see also more contributions on PureScript ecosystem as well, and more incentives to PureScript libs for Cardano blockchain.

- increase of open source tools and frameworks from the community for the community (dog-fooding)

The Vite plugin system allows extensibility beyond PureScript compilation, having this as a pillar would allow us to naturally build many other plugins like IDE tools, frameworks, libraries and more interoperability with other web tools.

We may need to create some PureScript library to deal with the cardano server-side code.

The version of PureScript with ESM support (0.15) is developed, but is being tested, so there is a small chance of being stucked by that, but it can be circumvented.

There is a rollup plugin for PureScript, which may be used in the Vite plugin. I also have seen a project with PureScript and Vite before (which can be used as reference). But we may need to build these from scratch too.

Milestone 1: 3 months

- 3 months: Vite PureScript Plugin

Milestone 2: 3 months

- 1 month: Vite Template

- 1 month: Docs

- 1 month: PureScript library

Total: 6 months

Milestone 1:

- JavaScript/PureScript developer for 400 hours = U$ 15.000

Milestone 2:

- JavaScript/PureScript developer for 400 hours = U$ 15.000

- Plutus/Haskell developer for 400 hours = U$ 15.000

- JavaScript/PureScript developer:

* Must have advanced knowledge about JavaScript tooling like npm, esbuild, rollup and vite.

* Must have mid-level PureScript knowledge, know how to work with Applicatives, Monads, asynchronous code and FFI.

- Plutus/Haskell developer:

* Must have experience with Plutus and Cardano ecosystem

* Must have experience with Haskell tooling (cabal and GHC)

* It's a bonus to know Nix, it will be useful on the template part.

I'll fill the Javascript/PureScript developer position. I can also help with plutus and haskell tasks, but I'm beginner there. I'm still looking for a Plutus/Haskell developer to join me on milestone 2.

To measure the impact of the project on the challenge, we chose these project metrics:

- Number of plugin and library downloads

- Number of template downloads

We'll also have some metrics to indicate progress of the project:

- Ratio of issues closed by issues opened

- Number of commits

- Number of contributors

That is the minimal:

- Vite plugin for PureScript

- Vite template (npx create cardano-dapp) for a minimal project with server-side and client-side code. This command will ask some questions to the developer regarding the setup, and this will generate a cardano dapp project ready to be run or coded.

This is beyond MVP, but can be made if everything goes well (under the 6 months target):

- Cardano PureScript Library

No past proposals

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3m 24s
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4m 3s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3m 48s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2m 16s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3m 14s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3m 19s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4m 59s
    Darlington Kofa
0:00
/
~0:00