---
id: custom-ui
title: Build Your Own UI
---

Ory Kratos is an HTTP API server and does not include a traditional HTML user
interface (rendering forms such as "Login" or "Registration") in its code base.

:::info

Please read the [User Interface concepts](../concepts/ui-user-interface.mdx)
before starting this journey! It contains many code and API examples and is a
useful starting point for anyone implementing their own UI!

:::

We provide several reference UI implementations which you can use to get started
quickly, or as the basis for your own UI:

- [React Native Reference Implementation](https://github.com/ory/kratos-selfservice-ui-react-native)
- [NodeJS Reference Implementation](https://github.com/ory/kratos-selfservice-ui-node)
- [React / SPA Reference Implementation](https://github.com/ory/react-nextjs-example)

Let's take a look at some individual examples!

## React Native

You can implement your own login, registration, account recovery, ... user
interface for Ory Kratos in React Native. Check out our in-depth
[Add Authentication to your React Native App](https://www.ory.sh/login-react-native-authentication-example-api/)
guide!

## ExpressJS

For now, please head over to our
[NodeJS Reference Implementation](https://github.com/ory/kratos-selfservice-ui-node).

## ReactJS

For now, please head over to our
[React / SPA Reference Implementation](https://github.com/ory/react-nextjs-example).
