OS for the browser
- MacOS like interface
- Forked from the awesome PuruVijay's macos-web
- Full screen experience for apps
- Cross-tab experience using service worker
- VSCode inbuilt (real version)
- Web assembly + WASI based OS
- Persisted File system
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8" /> | |
| <meta http-equiv="X-UA-Compatible" content="IE=edge" /> | |
| <link | |
| rel="icon" | |
| href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>🛢</text></svg>" | |
| /> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
| import { render } from "solid-js/web"; | |
| import type { getOwner } from "solid-js"; | |
| import { | |
| createEffect, | |
| createMemo, | |
| createResource, | |
| createSignal, | |
| For, | |
| Match, |
OS for the browser
| import reactRefresh from "@vitejs/plugin-react-refresh"; | |
| export default { | |
| plugins: [reactRefresh()], | |
| }; |
| |
| |
| export const LoadingIcon = (props) => { | |
| return ( | |
| <svg | |
| {...props} | |
| xmlns="http://www.w3.org/2000/svg" | |
| fill="none" | |
| viewBox="0 0 24 24" | |
| > | |
| <circle | |
| className={tw`opacity-25`} |
| /** | |
| * Shamelessly copied from the amazing `urql` client | |
| * https://github.com/FormidableLabs/urql/blob/main/packages/core/src/utils/error.ts | |
| */ | |
| import { GraphQLError } from "graphql/error/GraphQLError"; | |
| const generateErrorMessage = ( | |
| networkErr?: Error, | |
| graphQlErrs?: GraphQLError[] |
| #!/usr/bin/env node | |
| const { existsSync, promises: fs } = require('fs') | |
| const path = require('path') | |
| if (require.main === module) { | |
| main().catch((error) => { | |
| console.error(error) | |
| process.exit(1) | |
| }) |
| const shellac = require('shellac').default; | |
| shellac` | |
| $$ node scripts.js ${process.argv.slice(1).join(' ')} | |
| ` |