From 7e77ae2f161f9d7a642819cdab795e8ba46dd18d Mon Sep 17 00:00:00 2001 From: unnoq Date: Sat, 12 Apr 2025 15:44:07 +0700 Subject: [PATCH 01/10] og --- apps/content/.vitepress/config.ts | 1 + apps/content/public/og.jpg | Bin 9171 -> 55401 bytes 2 files changed, 1 insertion(+) diff --git a/apps/content/.vitepress/config.ts b/apps/content/.vitepress/config.ts index 5364f2c1f..e1ad99a7e 100644 --- a/apps/content/.vitepress/config.ts +++ b/apps/content/.vitepress/config.ts @@ -208,6 +208,7 @@ export default defineConfig({ }, head: [ ['meta', { property: 'og:image', content: 'https://orpc.unnoq.com/og.jpg' }], + ['meta', { property: 'og:description', content: 'End-to-end type-safe, first-class OpenAPI support, Contract-First, ...' }], ['meta', { property: 'og:type', content: 'website' }], ['meta', { property: 'twitter:domain', content: 'orpc.unnoq.com' }], ['meta', { property: 'twitter:image', content: 'https://orpc.unnoq.com/og.jpg' }], diff --git a/apps/content/public/og.jpg b/apps/content/public/og.jpg index a5f32fcabf72716efdb8b1bb83c9caf358a605b6..2b41d3a0e7e744e453630a6d86e2d7da7c478b15 100644 GIT binary patch literal 55401 zcmeFZc{r5q|35sUgcu}3OpDTjscdDNN?DRriV$;`EJI`Nl1v$MiR_`}jyvv5Swgmo zp=@JUN%n2TELyC&MvUt=i|4#Q-{0@|Jm2j(p5yub@f^=_B+blW#yNAI=lguWUhmiY zby*o&VWSj}+t}NnBvwhF?7%oC^-@wo3AIW| zLQ+X$r5S}mp(IxS+t{f8@g=cJQfl=Y>9sPla^MAYMbs(@Ny$}GlB-usNr6{~gXd9F zN~@K(>^r<>{ppL+Td%6@zkUDN+HFT(HEcN34eJkOl(|y!h?r@JW5Ub z^Kp7sc24f|y!?U}ugl8m6_sz^Ry8&?x3spsd;g)Qx37O-aA=sx;f{a#`tAF~

lI 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%0A?L}m=s=J4oleZu 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 literal 9171 zcmeIuu?@mN429w6yA()J#8Q}t0x1Fp$~vsT2owwvpkWL;b4eFcMoRVjs(Z3*>x(`< zsxR%il_k@uJjGi_*}@uzEF57LcljoD)h(MVxn;L_XkU)gw6-N~>i<+jI_n)%pZC7B z%T~5z*Fo3sbOApE5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** IRuPEj4_ Date: Sat, 12 Apr 2025 16:22:47 +0700 Subject: [PATCH 02/10] wip --- apps/content/.vitepress/config.ts | 6 ++-- apps/content/index.md | 59 ++++++++++++------------------- 2 files changed, 25 insertions(+), 40 deletions(-) diff --git a/apps/content/.vitepress/config.ts b/apps/content/.vitepress/config.ts index e1ad99a7e..2b0bebd3d 100644 --- a/apps/content/.vitepress/config.ts +++ b/apps/content/.vitepress/config.ts @@ -5,9 +5,8 @@ import llmstxt from 'vitepress-plugin-llms' export default defineConfig({ lang: 'en-US', - title: 'oRPC', - description: - 'oRPC makes it easy to build APIs that are end-to-end type-safe and adhere to OpenAPI standards, ensuring a smooth and enjoyable developer experience.', + title: 'oRPC - Typesafe APIs Made Simple πŸͺ„', + description: 'Easy to build APIs that are end-to-end type-safe and adhere to OpenAPI standards', lastUpdated: true, cleanUrls: true, markdown: { @@ -208,7 +207,6 @@ export default defineConfig({ }, head: [ ['meta', { property: 'og:image', content: 'https://orpc.unnoq.com/og.jpg' }], - ['meta', { property: 'og:description', content: 'End-to-end type-safe, first-class OpenAPI support, Contract-First, ...' }], ['meta', { property: 'og:type', content: 'website' }], ['meta', { property: 'twitter:domain', content: 'orpc.unnoq.com' }], ['meta', { property: 'twitter:image', content: 'https://orpc.unnoq.com/og.jpg' }], diff --git a/apps/content/index.md b/apps/content/index.md index ab063644e..48cc0db94 100644 --- a/apps/content/index.md +++ b/apps/content/index.md @@ -1,13 +1,12 @@ --- title: oRPC - Typesafe APIs Made Simple πŸͺ„ +description: Easy to build APIs that are end-to-end type-safe and adhere to OpenAPI standards titleTemplate: ':title' -head: - - ['meta', { property: 'og:description', content: 'oRPC makes it easy to build APIs that are end-to-end type-safe and adhere to OpenAPI standards, ensuring a smooth and enjoyable developer experience.' }] layout: home hero: name: oRPC text: Typesafe APIs Made Simple πŸͺ„ - tagline: Easy to build APIs that are end-to-end type-safe and adhere to OpenAPI standards, ensuring a smooth and enjoyable developer experience. + tagline: Easy to build APIs that are end-to-end type-safe and adhere to OpenAPI standards image: light: /code-light.png dark: /code-dark.png @@ -20,54 +19,42 @@ hero: text: Playgrounds link: /docs/playgrounds features: - - icon: πŸ”’ + - icon: πŸ”— title: End-to-End Type Safety - details: Ensure complete type safety from inputs to outputs and errors, bridging server and client seamlessly. - - icon: πŸ“„ + details: Ensure type-safe inputs, outputs, and errors from client to server. + - icon: πŸ“˜ title: First-Class OpenAPI - details: Adheres to the OpenAPI standard out of the box, ensuring seamless integration and comprehensive API documentation. - - icon: πŸ“œ + details: Built-in support that fully adheres to the OpenAPI standard. + - icon: πŸ“ title: Contract-First Development - details: (Optional) Define your API contract upfront and implement it with confidence. - - icon: ✨ - title: Exceptional Developer Experience - details: Enjoy a streamlined workflow with robust typing and clear, in-code documentation. - - icon: 🌍 - title: Multi-Runtime Support - details: Run your code seamlessly on Cloudflare, Deno, Bun, Node.js, and more. - - icon: 🧩 + details: Optionally define your API contract before implementation. + - icon: βš™οΈ title: Framework Integrations - details: Supports Tanstack Query (React, Vue, Solid, Svelte), Pinia Colada, and more. - - icon: ⚑ + details: Seamlessly integrate with TanStack Query (React, Vue, Solid, Svelte), Pinia Colada, and more. + - icon: πŸš€ title: Server Actions - details: Fully compatible with React Server Actions on Next.js, TanStack Start, and more. - - icon: πŸ—‚οΈ + details: Fully compatible with React Server Actions on Next.js, TanStack Start, and other platforms. + - icon: πŸ”  title: Standard Schema Support - details: Effortlessly work with Zod, Valibot, ArkType, and others right out of the box. - - icon: πŸ’¨ - title: Fast & Lightweight - details: Built on native APIs across all runtimes – optimized for speed and efficiency. - - icon: πŸ“¦ + details: Works out of the box with Zod, Valibot, ArkType, and other schema validators. + - icon: πŸ—ƒοΈ title: Native Types - details: Enjoy built-in support for Date, File, Blob, BigInt, URL and more with no extra setup. + details: Supports native types like Date, File, Blob, BigInt, URL, and more. - icon: ⏱️ title: Lazy Router - details: Improve cold start times with our lazy routing feature. + details: Enhance cold start times with our lazy routing feature. - icon: πŸ“‘ title: SSE & Streaming - details: Provides SSE and streaming features – perfect for real-time notifications and AI-powered streaming responses. - - icon: πŸ”„ - title: Reusability - details: Write once and reuse your code across multiple purposes effortlessly. + details: Enjoy full type-safe support for SSE and streaming. + - icon: 🌍 + title: Multi-Runtime Support + details: Fast and lightweight on Cloudflare, Deno, Bun, Node.js, and beyond. - icon: πŸ”Œ title: Extendability - details: Easily enhance oRPC with plugins, middleware, and interceptors. + details: Easily extend functionality with plugins, middleware, and interceptors. - icon: πŸ›‘οΈ title: Reliability - details: Well-tested, fully TypeScript, production-ready, and MIT licensed for peace of mind. - - icon: πŸ’‘ - title: Simplicity - details: Enjoy straightforward, clean code with no hidden magic. + details: Well-tested, TypeScript-based, production-ready, and MIT licensed. ---