Minimal Full-Stack JavaScript
import { html } from "client:page";
export const handler = async (req) => {
return new Response(
html, // bundled client application
{
headers: { "Content-Type": "text/html" },
},
);
};
Create Full-Stack Applications with Vite
domco turns your Vite project into a full-stack application. You can take advantage of Vite’s build pipeline, plugins, and HMR on the server using web APIs. domco enables the following in addition to Vite.
- Automatic entry point configuration for client and server builds.
- Development and preview server configuration.
- Easy access to client resources on the server.
- Build time prerendering of static routes.
- Standardized authoring experience across runtimes and deployment providers with adapters.
Add a Framework, or don’t
One of the main goals of domco is to be able to create full-stack applications using vanilla JavaScript. With domco, it’s easy to achieve the same developer experience as other frameworks that are based around a UI library, without having to pull in additional dependencies. By default, domco only bundles only the code you write, making it efficient and straightforward.
If you need a UI framework, you can still use any Vite plugin as you would in a traditional Vite application. These plugins will also work on the server.
domco is compatible with any server-side JavaScript framework that provides a web request handler taking a Request
argument and returning a Response
. Check out the examples to see how to use popular server frameworks with domco.
Build with Web APIs
Server-side JavaScript runtimes are standardizing on the Web Request
and Response
APIs. This makes it possible to write your app once and deploy it to a variety of different platforms using adapters.
Minimal Dependencies
domco is lightweight, relying solely on Vite as its dependency. This results in quick installation times, fast build and development processes, and a reduced risk of supply chain attacks.
Open Source
domco is open source under the MIT License. Contributions are welcome, see the contributing guide for instructions.