# Designing a tenant app

As mentioned before, building an application on top of Finqware means **in general** that you have to build a front-end (web/mobile) and a backend. It is unsafe to build a client-only app unless it will run on trusted devices.

It will be possible to build your app entirely on the backend though. This is targeted to enterprise applications.

The example architecture presented here is following a pattern mainly used by native mobile apps and web applications that render data inside the browser:

* the back-end handles the main database, business logic, sensitive information, communication with 3rd party APIs (eg: Finqware) etc. It also exposes a private API (eg: REST or GraphQL) that is available only to a known front-end. It may be developed in any popular language (eg: Java, PHP, NodeJS etc).
* the front-end is an application developed with Android, Swift, JavaScript (React, Angular etc). It only consumes data from its own backend. It initiates external API calls only in exceptional situations. An example Js/React app is running at [https://play.finqware.com/](https://play.finqware.com).

NOTE: *Classic architectures based on server-side rendering (PHP, JSP etc) are perfectly possible but here we chose a more generic example that applies to both mobile & web front-end types. The data model and state management still apply.*

## What the Finqware API is not

We do not offer at the moment a backend-less solution. That means there is work to be done in your own backend:

* user management
* extra processing of data (eg: custom data transformations)
* caching for improving your SLAs


---

# Agent Instructions: 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:

```
GET https://docs.finqware.com/dev-guide/designing-a-tenant-app.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
