console
omicron
console | omicron | |
---|---|---|
11 | 9 | |
107 | 213 | |
10.3% | 4.3% | |
9.7 | 9.9 | |
2 days ago | about 5 hours ago | |
TypeScript | Rust | |
Mozilla Public License 2.0 | Mozilla Public License 2.0 |
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.
omicron
-
My favourite Git commit (2019)
> On my work I make 1-15 commits a day. If I have to spend thought cycles on the commit message, that is time that goes from other productive endeavours.
I make roughly that many commits a day as well. If something's easy to understand I'll put in a simple commit message (e.g. [1]), but I do put in the effort for more complicated ones.
[1] https://github.com/nextest-rs/nextest/commit/efd194b2e1d8d61...
[2] https://github.com/oxidecomputer/omicron/commit/b07a8f593325...
-
Oxide Computer releases distribution of illumos intended to power the Oxide Rack
> I also wonder if internally Linux is used for development of the platform itself
Developers at Oxide work on whatever platform they'd like. I will say I am in the minority as a Windows user though, most are on some form of Unix.
> so they can create "virtual" racks to dogfood the product without full blown physical racks.
So one of the reasons why Rust is such an advantage for us is its strong cross-platform support: you can run a simulated version of the control plane on Mac, Linux, and Illumos, without a physical rack. The non-simulated version must run on Helios. [1]
That said we do have a rack in the office (literally named dogfood) that employees can use for various things if they wish.
1: https://github.com/oxidecomputer/omicron?tab=readme-ov-file#...
-
Oxide: The Cloud Computer
> I think the question is how well they can do the management plane.
Docs:
* https://docs.oxide.computer/api/guides/responses
See perhaps "This repo houses the work-in-progress Oxide Rack control plane."
* https://github.com/oxidecomputer/omicron
-
OpenAI Used Kenyan Workers on Less Than $2 per Hour to Make ChatGPT Less Toxic
When we started the company, we knew it would be a three year build -- and indeed, our first product is in the final stages of development (i.e. EMC/safety certification). We have been very transparent about our progress along the way[0][1][2][3][4][5][6][7] -- and our software is essentially all open source, so you can follow along there as well.[8][9][10]
If you are asking "does anyone want a rack-scale computer?" the (short) answer is: yes, they do. The on-prem market has been woefully underserved -- and there are plenty of folks who are sick of Dell/HPE/VMware/Cisco, to say nothing of those who are public cloud borne and wondering if they should perhaps own some of their own compute rather than rent it all.
[0] https://oxide-and-friends.transistor.fm/episodes/holistic-bo...
[1] https://oxide-and-friends.transistor.fm/episodes/the-oxide-s...
[2] https://oxide-and-friends.transistor.fm/episodes/bringup-lab...
[3] https://oxide-and-friends.transistor.fm/episodes/more-tales-...
[4] https://oxide-and-friends.transistor.fm/episodes/another-lpc...
[5] https://oxide-and-friends.transistor.fm/episodes/the-pragmat...
[6] https://oxide-and-friends.transistor.fm/episodes/tales-from-...
[7] https://oxide-and-friends.transistor.fm/episodes/the-sidecar...
[8] https://github.com/oxidecomputer/omicron
[9] https://github.com/oxidecomputer/propolis
[10] https://github.com/oxidecomputer/hubris
- CockroachDB crashed in Go runtime during test run: s.allocCount = s.nelems
- Debugging CockroachDB crash in Go runtime during test run
- Oxide Builds Servers
- Apparent CockroachDB data corruption due to CockroachDB issue 74475
-
Hubris – An OS from Oxide Computer
Speaking of interesting names, their control plane is called Omicron: https://github.com/oxidecomputer/omicron
What are some alternatives?
orval - orval is able to generate client with appropriate type-signatures (TypeScript) from any valid OpenAPI v3 or Swagger v2 specification, either in yaml or json formats. 🍺
hubris - A lightweight, memory-protected, message-passing kernel for deeply embedded systems.
meetup-contacts-app-2021 - Modern, structured React application demo with pages, services. An Opinionated React App template for large projects.
terraform-provider-oxide - Oxide Terraform provider
cio - Rust libraries for APIs needed by our automated CIO.
propolis - VMM userspace for illumos bhyve
moonfire-nvr - Moonfire NVR, a security camera network video recorder
git-subrepo
manifold-api - Manifold API Client Bindings
ferros - A Rust-based userland which also adds compile-time assurances to seL4 development.
oxide.ts - TypeScript client for the Oxide API
oxide-and-friends - Show notes from Oxide and Friends recordings