# Can non-Javascript web applications be built on top of IPFS?

**URL:** <https://discuss.ipfs.tech/t/can-non-javascript-web-applications-be-built-on-top-of-ipfs/12816>\
**Category:** Help\
**Created:** [December 2, 2021, 2:22pm UTC](https://discuss.ipfs.tech/t/can-non-javascript-web-applications-be-built-on-top-of-ipfs/12816 "2021-12-02T14:22:33Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ifeanyi](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/ifeanyi/32/5694_2.png) [@Ifeanyi](https://discuss.ipfs.tech/u/Ifeanyi)\
**Post date:** [December 2, 2021, 2:22pm UTC](https://discuss.ipfs.tech/t/can-non-javascript-web-applications-be-built-on-top-of-ipfs/12816/1 "2021-12-02T14:22:34Z")

</div>

Hello, I am new to IPFS, and I am still exploring its power and potential, especially for creating data science solutions. I was wondering whether web applications written in other languages besides javascript can be built on top of IPFS. For example, can an RShiny application be built on top of IPFS?

---

<div class="post-metadata">

**Author:** ![SionoiS](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/sionois/32/5103_2.png) [@SionoiS](https://discuss.ipfs.tech/u/SionoiS)\
**Post date:** [December 2, 2021, 3:21pm UTC](https://discuss.ipfs.tech/t/can-non-javascript-web-applications-be-built-on-top-of-ipfs/12816/2 "2021-12-02T15:21:38Z")

</div>

For data science checkout [https://holium.org/](https://holium.org/)

As for language used, it can be anything just call a local IPFS node [Http API](https://docs.ipfs.io/reference/http/api/#getting-started).

I’ve built a web app in rust and call IPFS via http.

---

<div class="post-metadata">

**Author:** ![Ifeanyi](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/ifeanyi/32/5694_2.png) [@Ifeanyi](https://discuss.ipfs.tech/u/Ifeanyi)\
**Post date:** [December 2, 2021, 4:48pm UTC](https://discuss.ipfs.tech/t/can-non-javascript-web-applications-be-built-on-top-of-ipfs/12816/3 "2021-12-02T16:48:31Z")

</div>

Thanks. But can one still call the api even when the local node is offline?

---

<div class="post-metadata">

**Author:** ![wolneykien](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/wolneykien/32/5509_2.png) [@wolneykien](https://discuss.ipfs.tech/u/wolneykien)\
**Post date:** [December 2, 2021, 10:52pm UTC](https://discuss.ipfs.tech/t/can-non-javascript-web-applications-be-built-on-top-of-ipfs/12816/4 "2021-12-02T22:52:47Z")

</div>

Hi! As I can see, a Shiny app sends XHR requests to the configured server, so it is a client-server app. You can’t run client-server apps with the present IPFS infrastructure. That’s a well known “dynamic website on IPFS problem”. I’m inviting you to discuss a possible solution to it — see the second link below.

- [How to host a dynamic website on IPFS](https://discuss.ipfs.tech/t/how-to-host-a-dynamic-website-on-ipfs/10705)
- [A preliminary discussion of the “Workswap” protocol](https://discuss.ipfs.tech/t/a-preliminary-discussion-of-the-workswap-protocol/12320)

---

<div class="post-metadata">

**Author:** ![SionoiS](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/sionois/32/5103_2.png) [@SionoiS](https://discuss.ipfs.tech/u/SionoiS)\
**Post date:** [December 3, 2021, 1:52pm UTC](https://discuss.ipfs.tech/t/can-non-javascript-web-applications-be-built-on-top-of-ipfs/12816/5 "2021-12-03T13:52:46Z")

</div>

You can’t call the API if the IFPS daemon is offline.

---

<div class="post-metadata">

**Author:** ![Xyncgas](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/xyncgas/32/5732_2.png) [@Xyncgas](https://discuss.ipfs.tech/u/Xyncgas)\
**Post date:** [December 6, 2021, 9:43am UTC](https://discuss.ipfs.tech/t/can-non-javascript-web-applications-be-built-on-top-of-ipfs/12816/6 "2021-12-06T09:43:45Z")

</div>

Technically you can, if you don’t care about the decentralized internet you don’t have to use it, just provide a server that act as your ipfs api, for starter, run ipfs in a server, then use apche or nginx to proxy incoming request to ipfs that’s running.  
Now you can just call that public api regardless of whether clients even has ipfs running for them.  
then you can scale it by putting this proxy in a load balencer

---

<div class="post-metadata">

**Author:** ![imestin](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/imestin/32/4140_2.png) [@imestin](https://discuss.ipfs.tech/u/imestin)\
**Post date:** [December 12, 2021, 2:36pm UTC](https://discuss.ipfs.tech/t/can-non-javascript-web-applications-be-built-on-top-of-ipfs/12816/7 "2021-12-12T14:36:51Z")

</div>

I followed [this Conway’s Game of Life](https://rustwasm.github.io/docs/book/) tutorial, which is using Rust+WebAssembly. I uploaded it to IPFS and it works: [IPFS version](https://ipfs.io/ipfs/QmNpYaqPFpBA7BB24TLS8cYcMUpYZmnDeHaotXnThi69qV/). A lot of languages can be ported to WebAssembly, but you can’t have a classical backend with IPFS, as I understand it.

I also did [this](https://pouchdb.com/getting-started.html) tutorial, which is a tutorial about PouchDB, and uploaded the front-end to IPFS. (the database is NOT on IPFS). Here I experienced CORS errors, because the IPFS gateway is using SSL, so I had to solve that the database connection is also going through https://. I think this https problem I had before. Here is live version: [https://ipfs.io/ipfs/QmQw9vJrUhaJBHQJvEwMfT6cqURxzpwQvo1GNnvVjsNZXo/](https://ipfs.io/ipfs/QmQw9vJrUhaJBHQJvEwMfT6cqURxzpwQvo1GNnvVjsNZXo/)
