## File: README.md
# Vike
(Replaces Next.js/Nuxt) 🔨 Build mission-critical applications with stability and development freedom.
## Links
:eyes: What is Vike: [vike.dev](https://vike.dev)
:clipboard: Version history & breaking changes: [CHANGELOG.md](/packages/vike/CHANGELOG.md)
:question: Get help: [vike.dev > FAQ > How can I reach out for help?](https://vike.dev/faq#how-can-i-reach-out-for-help)
:green_heart: Contribute: [CONTRIBUTING.md](/CONTRIBUTING.md)
## Monorepo
This is the [monorepo](https://en.wikipedia.org/wiki/Monorepo) for:
| Source | Output |
|-|-|
| [./packages/vike/](packages/vike/) | Package [`vike`](https://npmjs.com/package/vike) |
| [./packages/create-vike-core/](packages/create-vike-core/) | Package [`create-vike-core`](https://npmjs.com/package/create-vike-core) |
| [./docs/](docs/) | Website [vike.dev](http://vike.dev) |
## See also
| Monorepo | Output |
|-|-|
| [github.com/vikejs/vike-react](https://github.com/vikejs/vike-react) | Packages [`vike-react`](https://npmjs.com/package/vike-react), [`vike-react-zustand`](https://www.npmjs.com/package/vike-react-zustand), [`vike-react-query`](https://www.npmjs.com/package/vike-react-query), ... |
| [github.com/vikejs/vike-vue](https://github.com/vikejs/vike-vue) | Packages [`vike-vue`](https://npmjs.com/package/vike-vue), [`vike-vue-pinia`](https://www.npmjs.com/package/vike-vue-pinia), [`vike-vue-query`](https://www.npmjs.com/package/vike-vue-query), ... |
| [github.com/vikejs/vike-solid](https://github.com/vikejs/vike-solid) | Packages [`vike-solid`](https://npmjs.com/package/vike-solid), [`vike-solid-query`](https://www.npmjs.com/package/vike-solid-query), ... |
---
## File: docs/components/Advanced.mdx
import { Advanced } from '@brillout/docpress'
{ props.children }
👉
We recommend using this advanced capability — which can be complex — only if you have a clear reason why alternatives aren't an option for you.
---
## File: docs/components/DefaultRouting.mdx
import { Link } from '@brillout/docpress'
import { UiFrameworkExtension } from '../components'
> The use Client Routing. If you don't use such Vike extension, then Vike does Server Routing by default while you can opt into Client Routing.
---
## File: docs/components/JustAMiddleware.mdx
import { Link } from '@brillout/docpress'
From the perspective of a server, Vike is just a middleware:
```ts
// server.ts
// renderPage() doesn't depend on Node.js and can be used within any JavaScript environment:
// Node.js, AWS, Cloudflare, Vercel, Deno, Bun, Lagon, ...
import { renderPage } from 'vike/server'
// Any server: Express.js, Cloudflare Worker, AWS Lambda Function, Fastify, Hono, Nitro, ...
server.addMiddleware({
method: 'GET',
route: '*', // catch-all
async handler(request: Request) {
const pageContextInit = { urlOriginal: request.url }
const pageContext = await renderPage(pageContextInit)
// `body` is the HTML of the page with a route matching pageContextInit.urlOriginal
const { body, statusCode, headers } = pageContext.httpResponse
const response = { body, statusCode, headers }
return response
}
})
```
You can embed {(() => {const content = `renderPage()`; return props.noLink ? content : {content} })()} into any server and any deployment environment.
> Alternatively, instead of using `renderPage()`, you can pre-render your pages and remove the need for a production server (and deploy to a static host instead).
---
## File: docs/components/OnlyHtmlNote.mdx
import { Link } from '@brillout/docpress'
It only generates `