DEV Community

Slee Woo
Slee Woo

Posted on

My vision on a Concept Car - Part 1

In a world supersaturated with top-notch cars from Mercedes, Audi, BMW, Range Rover, Aston Martin - why bother about a Concept Car at all?

Well, because we can.

The webdev world, though equally supersaturated with Next/Nest/Nuxt, Astro, SvelteKit, SolidStart and friends, still has plenty of space for maneuvers. And improvements.

But what if improvements aren't enough anymore?

New features in top-notch cars are improvements. New features in top-notch frameworks are improvements too.
We are great at improvements. Give us improvements with every new version!

But what about innovations?

What if every part is already perfect (though not ideal), and the only missing piece is the composition?

What if I want a compound car?

  • body from an Aston Martin 70s Vantage
  • interior from a Range Rover
  • hybrid powertrain from Toyota
  • suspension from an 80s Bentley?

And one chassis to rule them all.

Unfortunatelly, no such universal chassis exists in the hardware world.

Fortunatelly, in the webdev world... huh, in our beloved shiny world of possibilities - we have everything.

Just 10 years ago we were where the auto industry was 100 years ago (sort of).
We are lucky. Our industry moves fast - faster than we manage to follow, but that's another story.

We definitely have that universal chassis. In fact we have several.
Vite being the most prominent one - congrats on the v8 release, that's huge!


So, what if I want a compound app?

A meta-app comprising multiple purpose-specific apps, each built on its own stack.
A monorepo-like project - admin built on Vue, marketing SSR site on Svelte, customer app on React.

And the backend also a choice, not soldered onto the chassis.
Koa for admin, Fastify for marketing, Hono for the customer app.

With a universal chassis underneath:

  • The same consistent way to define routes for all apps, regardless of framework
  • File-based routing - create a file, get a route, chassis handles the wiring
  • Nested layouts - create a layout file, all underlying routes wrap into it, regardless of framework
  • Each app with its own base URL and dev server port, but all running with a single pnpm dev

And in the best traditions of classic development - backend separate from frontend.
API routes in api/, frontend pages in pages/. No client code on the server.
Well, except SSR. But SSR gets its own server. The API stays lean and focused.

Each source folder deployable independently: admin on company servers,
marketing on Cloudflare edge, customer app on Vercel.


Is this madness? Of course it is. But it's a constructive madness.
No innovations without madness.

This is a vision of a Concept Car - fantasy and hallucinations are welcome :)

What is it for? What problem does it solve? I don't know.
Perhaps it's just me feeling locked into a single paradigm by monolithic frameworks.

Dreaming about a composable meta-framework where every concern is a separate entity, free to choose its own backend, frontend, CSR vs SSR, deployment strategy.
Where every app uses the full API of its chosen framework -
without caring how each framework implements routing under the hood.

Because the other kind of madness - the one I want to escape -
is when Vue and Svelte devs have to learn React because the app is a monolith and if the frontend is React, then admin, documentation, marketing, control panel, everything is React.

What if one infrastructure could span multiple stacks?
Vue devs doing their best on the admin app.
Svelte professionals working on the marketing site.
React experts performing on the customer app.
All under the same roof - same routing patterns, same validation logic, same node_modules.
And where separation of concerns isn't something to implement and maintain. It's just the default.

Just thoughts in the wind. Don't take it too seriously :)
It is safer to stay with what we have - it just works, don't touch the inertia.


All product and company names - Mercedes, Audi, BMW, Range Rover, Aston Martin, Bentley, Toyota, Next.js, NestJS, Nuxt, Astro, SvelteKit, SolidStart, Vite, Koa, Fastify, Hono, Vue, Svelte, React, Vercel, Cloudflare - are trademarks or registered trademarks of their respective owners. Their mention is purely for illustrative purposes.

Top comments (0)