Introduction

What's Next

Upcoming features and improvements for mion.

Top Priorities

These are the issues and improvements that we plan to fix before going out of beta
But still could take a while 😂

Mature API

mion is in the early stages of development, so the first priority is to establish a robust and developer-friendly API.

To avoid maintainer burnout once we reach v1, we want to maintain long release cycles and not add too many new features.

RunType Forms and UI

Generate forms from types, the idea is to create components that can be used by multiple FE frameworks. This will provide a default UI for many apps, and speed up the development of our own dashboard.

type User = {
  email: StrEmail;
  birthDate: StrDate;
};
const userFormSchema = generateFormSchema<User>();
const renderFullUserForm = () => (
    <FormRenderer
        schema={userFormSchema}
        onSubmit={(data) => routes.users.create(data).call()}
    />
)
const renderCustomForm = () => (
    <FormRenderer
        schema={userFormSchema}
        overrides={{
            email: ({ value, onChange }) => (
            <UserFields.email value={value} onChange={onChange} />
            )
        }}
    />
)

Multiple Route Calls - Output Input Chaining

Following the concept of multiple route calls, a step forward would be using the output of one request as input for another so some logic can be directed by the client but executed in the server. We might investigate the use of pure functions that will be declared in the client but executed in the server. This way we could add complex filtering, mapping and logic to the output of a request before using it as input for another request in the server allowing requesting data for for entire pages in a single request.

TypeScript 7 (Go Version) Support

Support for the upcoming TypeScript 7 Go-based compiler. Typescript go is still in early stages and there is no official compiler API or similar available yet, so we will wait until the TypeScript Go ecosystem is more mature before implementing support.