The Full Stack JavaScript SDK
See the code

The JavaScript toolkit to build full stack apps and frameworks with your own opinions.
powered by vite and nitro
vinxiCompose full stack applications (and frameworks) using Vite, the versatile bundler and dev server, and Nitro, the universal production server.
Inspired by the Bun.App API, the core primitive in Vinxi is the router, which is simply a brief specification defining how a group of URLs should be handled.
Vinxi supports many common router types:
Creating a new router is as simple as adding a specification object to the routers array in the createApp call:
import { createApp } from "vinxi";
export default createApp({
routers: [
// A static router serving files from the `public` directory
{
name: "public",
type: "static",
dir: "./public",
base: "/",
},
// A http router for an api
{
name: "api",
type: "http",
handler: "./app/api.ts",
base: "/api",
plugins: () => [
// Vite plugins applying exclusively to `http` router
],
},
],
});
Frameworks actively being developed on vinxi:
There are also a few other frameworks experimenting with vinxi:
Primary goal is to build the tools needed to build a NextJS or SolidStart style metaframework on top of vite without worrying about a lot of the wiring required to keep dev and prod working along with SSR, SPA, RSC, and all the other acronyms. etc. On top of that, we should be able to deploy anywhere easily.
Mostly trying to disappear for the user outside the app.js file
The surface layer we are intending to tackle:
handler API to control the servervinxi deploynpm install vinxi
import reactRefresh from "@vitejs/plugin-react";
import { createApp } from "vinxi";
export default createApp({
routers: [
{
name: "public",
type: "static",
dir: "./public",
},
{
name: "client",
type: "client",
handler: "./app/client.tsx",
target: "browser",
plugins: () => [reactRefresh()],
base: "/_build",
},
{
name: "ssr",
type: "http",
handler: "./app/server.tsx",
target: "server",
},
],
});
import { createApp } from "vinxi";
import solid from "vite-plugin-solid";
export default createApp({
routers: [
{
name: "public",
type: "static",
dir: "./public",
},
{
name: "client",
type: "client",
handler: "./app/client.tsx",
target: "browser",
plugins: () => [solid({ ssr: true })],
base: "/_build",
},
{
name: "ssr",
type: "http",
handler: "./app/server.tsx",
target: "server",
plugins: () => [solid({ ssr: true })],
},
],
});
(top 24 of 73)
13,166 followers · starred Oct 2024
1,712 followers · starred Feb 2024
771 followers · starred Feb 2024
2,475 followers · starred Jan 2024
The Full Stack JavaScript SDK
See the code

The JavaScript toolkit to build full stack apps and frameworks with your own opinions.
powered by vite and nitro
vinxiCompose full stack applications (and frameworks) using Vite, the versatile bundler and dev server, and Nitro, the universal production server.
Inspired by the Bun.App API, the core primitive in Vinxi is the router, which is simply a brief specification defining how a group of URLs should be handled.
Vinxi supports many common router types:
Creating a new router is as simple as adding a specification object to the routers array in the createApp call:
import { createApp } from "vinxi";
export default createApp({
routers: [
// A static router serving files from the `public` directory
{
name: "public",
type: "static",
dir: "./public",
base: "/",
},
// A http router for an api
{
name: "api",
type: "http",
handler: "./app/api.ts",
base: "/api",
plugins: () => [
// Vite plugins applying exclusively to `http` router
],
},
],
});
Frameworks actively being developed on vinxi:
There are also a few other frameworks experimenting with vinxi:
Primary goal is to build the tools needed to build a NextJS or SolidStart style metaframework on top of vite without worrying about a lot of the wiring required to keep dev and prod working along with SSR, SPA, RSC, and all the other acronyms. etc. On top of that, we should be able to deploy anywhere easily.
Mostly trying to disappear for the user outside the app.js file
The surface layer we are intending to tackle:
handler API to control the servervinxi deploynpm install vinxi
import reactRefresh from "@vitejs/plugin-react";
import { createApp } from "vinxi";
export default createApp({
routers: [
{
name: "public",
type: "static",
dir: "./public",
},
{
name: "client",
type: "client",
handler: "./app/client.tsx",
target: "browser",
plugins: () => [reactRefresh()],
base: "/_build",
},
{
name: "ssr",
type: "http",
handler: "./app/server.tsx",
target: "server",
},
],
});
import { createApp } from "vinxi";
import solid from "vite-plugin-solid";
export default createApp({
routers: [
{
name: "public",
type: "static",
dir: "./public",
},
{
name: "client",
type: "client",
handler: "./app/client.tsx",
target: "browser",
plugins: () => [solid({ ssr: true })],
base: "/_build",
},
{
name: "ssr",
type: "http",
handler: "./app/server.tsx",
target: "server",
plugins: () => [solid({ ssr: true })],
},
],
});
(top 24 of 73)
13,166 followers · starred Oct 2024
1,712 followers · starred Feb 2024
771 followers · starred Feb 2024
2,475 followers · starred Jan 2024