{"id":13850128,"url":"https://github.com/unisonweb/elm-browser","last_synced_at":"2025-07-12T21:33:04.706Z","repository":{"id":66260991,"uuid":"202440144","full_name":"unisonweb/elm-browser","owner":"unisonweb","description":"A Unison Github repo explorer in Elm","archived":true,"fork":false,"pushed_at":"2021-10-13T14:50:20.000Z","size":339,"stargazers_count":34,"open_issues_count":11,"forks_count":4,"subscribers_count":14,"default_branch":"master","last_synced_at":"2024-11-01T19:42:49.802Z","etag":null,"topics":["unison","unison-language"],"latest_commit_sha":null,"homepage":null,"language":"Elm","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/unisonweb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-08-14T23:26:54.000Z","updated_at":"2023-12-06T21:09:42.000Z","dependencies_parsed_at":"2023-06-25T22:15:28.867Z","dependency_job_id":null,"html_url":"https://github.com/unisonweb/elm-browser","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unisonweb%2Felm-browser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unisonweb%2Felm-browser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unisonweb%2Felm-browser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unisonweb%2Felm-browser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/unisonweb","download_url":"https://codeload.github.com/unisonweb/elm-browser/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225839485,"owners_count":17532305,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["unison","unison-language"],"created_at":"2024-08-04T20:00:59.614Z","updated_at":"2024-11-22T03:30:46.142Z","avatar_url":"https://github.com/unisonweb.png","language":"Elm","funding_links":[],"categories":["Elm"],"sub_categories":[],"readme":"# Archived\n\nSee the Codebase UI for a similar and active project: https://github.com/unisonweb/codebase-ui\n\n# Unison Codebase Explorer\n\nThe Unison Codebase Explorer is an Elm application and companion Haskell server\nfor exploring your Unison codebase. It is very alpha-quality software, but you\ncan still use it in anger. Pull requests welcome and appreciated :)\n\n## Building\n\nTo build, you need `elm` 0.19+ and either `cabal-install` 2.4+ or `stack`.\n\n- Generate the `main.js` JavaScript blob.\n\n      elm make client-src/Main.elm --output main.js\n\n- If you are using `cabal`, make sure you've configured it to install executables somewhere on your `$PATH`. Open `~/.cabal/config` and uncomment the `symlink-bindir` line to be something like:\n\n      symlink-bindir = /home/mitchell/.local/bin\n\n- Build and install the Haskell server, which bundles the `index.html` to make it available by the server at runtime.\n\n      // One or the other\n      cabal v2-install . --overwrite-policy=always\n      stack install\n\nThat's it! Now you have a `unison-browser` executable that you can run in any\ndirectory with a `.unison` folder.\n\n### Note: Development Workflow\n\n#### Client\n\nFor a slightly optimized workflow, you can have live reloading with [elm-live](https://github.com/wking-io/elm-live)\n\n- Start the haskell server\n\n      // One or the other\n      cabal v2-run\n      stack run\n\n- Use elm-live\n\n      elm-live client-src/Main.elm -- --output=main.js\n      # or, equivalently\n      make watch\n\nThe `--debug` for `elm-live`/`elm-make` is possible with tiny Unison codebases, but it becomes untenable by the time you have around 1000 definitions.\n\n#### Server\n\nUse `ghcid` for live reloading.\n\n    // One or the other\n    ghcid -c \"cabal v2-repl -O0\" --restart unison-browser.cabal\n    ghcid -c \"stack ghci\" --restart unison-browser.cabal\n\nRemember that `ucm` saves your `.unison` codebase in your home directory by default, so you'll probably want to start the server in there.\n\n## Code guide\n\nModule guide:\n\n- `GitHub`\n\n  GitHub API.\n\n- `Misc`\n\n  Random junk! Find a home for me pls!\n\n- `Ucb.Main.*`\n\n  Main stuff, model-view-update loop.\n\n- `Ucb.Unison.*`\n\n  Unison-specific app stuff (needs better organization).\n\n- `Ucb.Util.*`\n\n  Miscellaneous stuff missing from the core Elm ecosystem.\n\n- `Unison.*`\n\n  Core Unison language kit, suitable as a standalone library. Contains types and\n  pure functions that roughly match the Haskell source.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funisonweb%2Felm-browser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funisonweb%2Felm-browser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funisonweb%2Felm-browser/lists"}