> For the complete documentation index, see [llms.txt](https://docs.valist.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.valist.io/publishing/publishing-web-apps.md).

# Publishing Web Apps

Publishing a static web app with Valist is easy!

No matter what web framework you're using, whether it's Next.js, Create React App, Gatsby or any other, Valist has got you covered. It supports all frameworks that can generate static sites, making the process simple and easy for you.

### **Deploy Next JS Application**

{% content-ref url="/pages/3Gas1IhcoWzc7k1v4Nbj" %}
[Publishing a Next JS App](/publishing/publishing-web-apps/publishing-a-next-js-app.md)
{% endcontent-ref %}

### Deploy React JS Application

{% content-ref url="/pages/AE0DT8hG2LSMJlhwlQoB" %}
[Publishing a React JS App](/publishing/publishing-web-apps/publishing-a-react-js-app.md)
{% endcontent-ref %}

Please note that IPFS gateways that don't use subdomains are not secure for accessing web applications due to sharing the same origin.

IPFS Gateways support either or both of the following formats:

1. Subdomain gateway mode: e.g. `https://<CID>.ipfs.dweb.link/`
2. Path gateway mode: e.g. `https://ipfs.io/ipfs/<CID>/`

You only want to access web apps from IPFS via the first type of gateway. This is because the browser will treat the subdomain as a different "origin" and therefore treat local storage and other security policies in a way that prevents other websites from interfering with your app.

More information can be found here:

{% embed url="<https://consensys.net/diligence/blog/2021/06/ipfs-gateway-security/>" %}

### Example Projects

We also have examples of common JavaScript frameworks like Next.js and Create React App, check them out below!

{% embed url="<https://github.com/valist-io/example-projects/tree/main/nextjs-project>" %}
Next.js App
{% endembed %}

{% embed url="<https://github.com/valist-io/example-projects/tree/main/react-project>" %}
Create React App
{% endembed %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.valist.io/publishing/publishing-web-apps.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
