console
orval
console | orval | |
---|---|---|
11 | 20 | |
107 | 2,344 | |
10.3% | - | |
9.7 | 9.6 | |
1 day ago | 1 day ago | |
TypeScript | TypeScript | |
Mozilla Public License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
console
-
Oxide Cloud Computer. No Cables. No Assembly. Just Cloud
>https://console-preview.oxide.computer/
That's pretty cool! The design language is a nice touch for sure.
-
Storybook 8
I've used Storybook during development for a while now and the use case you present is how the Storybook is pitched. I actually agree about the simplicity of discovering the components. What I disagree with, though, is that I can't see value of "develop & test your UI independently from your app" part. It forces me to decouple the state from a component and this in turn adds unnecessary complexity to the architecture.
I'm going to use Oxide console [1] as an example because it has a really good setup of MSW + OpenAPI autogenerated mocks (which means that it doesn't need any complete backend, just a defined contract).
Consider this fairly simple page [2]. If I'm using the Storybook pattern, I'm keeping all of the state outside of the component, which means I now have to manually memoize every single variable defined before the return to make sure that the component doesn't do any unnecessary re-renders. This includes `intervalPicker`, `commonProps`, `setFilterId`, every return of `useDateTimeRangePicker`. With MSW I have benefits not needing the API, testing in real production app, using the same exact mocks for unit tests and development.
[1]: https://github.com/oxidecomputer/console
[2]: https://github.com/oxidecomputer/console/blob/main/app/pages...
- Tailwind CSS v4.0.0 Alpha
-
Remix Vite Is Now Stable
SPA mode (what I assume you mean by BFF mode) is brand new, so almost nobody has used it. However, a close example would be the Oxide web console, which we build as an SPA because we want to serve it as static assets from a Rust backend. It's very close to your suggested stack: React + React Router + Tanstack query + zustand, though importantly we also use React Router's loaders to give the app a better-than-SPA feel on navigations. I do plan on moving it to Remix SPA mode when I get a chance, but like I said the result should be very similar so it's not that high a priority for me. If I were starting from scratch I'd probably use Remix SPA.
Repo: https://github.com/oxidecomputer/console/
Live demo here with in-browser MSW mock API: https://oxide-console-preview.vercel.app
-
Oxide: The Cloud Computer
VPS providers are nice, but they don't provide the same cloud-level capabilities that Oxide offers. Check out the console to get an idea of what I mean (this is a demo with mock data): https://oxide-console-preview.vercel.app/
-
Mock Service Worker(msw) releases 2.0
Yeah, basically. We do it with a function call where the argument to the function is that interface representing all the API endpoints. `makeHandlers` handles parsing path params, query params, and request body and passes them to each endpoint handler. So the runtime validation of request bodies is also generated — we generate a zod schema for each request body in the OpenAPI definition and use it to parse the actual request body that comes in.
big function call https://github.com/oxidecomputer/console/blob/bd65b9da7019ad...
automatic body parsing and argument passing: https://github.com/oxidecomputer/console/blob/bd65b9da7019ad...
When an endpoint gets added to the spec, we can rerun the generator and get type errors in the `makeHandlers` telling us endpdoints are missing.
orval
-
HonoJS: Small, simple, and ultrafast web framework for the Edges
In cases where the client needs to stay separate, we have had a good experience with Orval[1] to generate a fully-typed @tanstack/query client from our OpenAPI spec.
[1] https://orval.dev/
-
Litestar – powerful, flexible, and highly performant Python ASGI framework
- Vite/React/Tailwind for the frontend, with [Orval](https://orval.dev/) to generate FE definitions based on the API spec.
For non-API/SPA use-cases, it also has good HTML support, with built-in Jinja and HTMX integrations. The docs are great (https://docs.litestar.dev/latest/ - not quite Django-tier but that's the gold standard), however the reference application is a tad too complex imo (https://github.com/litestar-org/litestar-fullstack).
https://github.com/litestar-org/awesome-litestar has a list of useful extensions - highly recommend trying it out if you are starting a new Python web project.
-
How to Automatically Consume RESTful APIs in Your Frontend
In order to generate the API client, there are a few options available, but we are going to use (Orval)[https://orval.dev]. Orval is a CLI tool that generates API clients based on an OpenAPI specification. It supports TypeScript, JavaScript, Axios, React, Vue, Angular and Svelte and it's highly customizable.
-
Getting the most out of vscode
I would use "reveal": "never" if I don't care about the results of the command, for example, I generate swagger types using orval.dev on every folder open, but I want this to run in background as it's not that important, so I use "reveal": "never" for it.
-
Mock Service Worker(msw) releases 2.0
we started using (and now contributing to) https://orval.dev/ this year which both generates the mocks using MSW as well as the client-side networking code (React Query in our case). It removes so much boilerplate its amazing.
wrote up the basics of our workflow few weeks ago https://betaacid.co/blog/api-contracts
-
Ask HN: Why isn't JSON-RPC more widely adopted?
Personally, find gRPC-Web very attractive but the current state of TypeScript/JS code-gen is very confusing and lacking.
I would love something like https://orval.dev for gRPC-web. Have I missed something or is it just early to expect it?
I tried a few libraries but couldn't get them to work or would generate unappealing results. I believe I'm hitting this issue with my local experiments. https://github.com/grpc/grpc-web/issues/535
-
I made a framework to build fully-typed RESTful server and client with zero dependency
This is a Library I've used in the past, https://github.com/anymaniax/orval
-
Best / Modern Test Stack for a new big Next.js project
If you have OpenAPI specs to work with you could also use Orval (https://orval.dev/) to generate a lot of code. We’re just starting to evaluate it at work but so far the team that’s trialing it is liking it.
-
React & REST APIs: End-To-End TypeScript Based On OpenAPI Docs
On the frontend we can use the OpenAPI docs to generate the TS types for our data structures. Not only types but fetch functions as well as react-query hook can be generated as well. And in this blog post you can see how to do that with a library called Orval.
-
React & REST APIs: End-To-End TypeScript Based On OpenAPI Docs
On this page, we’ll use a code generator called Orval.
What are some alternatives?
meetup-contacts-app-2021 - Modern, structured React application demo with pages, services. An Opinionated React App template for large projects.
openapi-typescript-codegen - NodeJS library that generates Typescript or Javascript clients based on the OpenAPI specification
cio - Rust libraries for APIs needed by our automated CIO.
jest-mock-extended - Type safe mocking extensions for Jest https://www.npmjs.com/package/jest-mock-extended
moonfire-nvr - Moonfire NVR, a security camera network video recorder
react-query-auth - ⚛️ Authenticate your react applications easily with react-query.
manifold-api - Manifold API Client Bindings
rtk-query - Data fetching and caching addon for Redux Toolkit
oxide.ts - TypeScript client for the Oxide API
NSwag - The Swagger/OpenAPI toolchain for .NET, ASP.NET Core and TypeScript.
third-party-api-clients - A place for keeping all our generated third party API clients.
graphql-code-generator - A tool for generating code based on a GraphQL schema and GraphQL operations (query/mutation/subscription), with flexible support for custom plugins.