Repository navigation
Product page at graph-explorer.net, and the web app moves to /app - #51
Merged
Merged
Conversation
added 4 commits
September 28, 2026 08:46
The site at graph-explorer.net was only the web app. Most new work now goes to the desktop app, so the site needs a page that tells what the product does, where to download it, and where the web app is. site/index.html is a second Vite entry. The build puts it in dist/site/index.html. The desktop embeds dist/ too, but it never loads this page. The key of the app entry stays `index`, because scripts/build-local-capabilities-release.sh looks for dist/assets/index-*.js. The page uses the colors of the app's drafting theme, and the workbench theme in dark mode. site.js gets the latest release from the GitHub API and links the exact files, with a fallback to the releases page. It also shows "Open your library" to a visitor who has a web library, and it runs the diagram in the desktop section. site/flow.dot is the source of that diagram, and site/flow-svg.py makes its inline SVG. The screenshots come from the web build. og-image.jpg is the social preview. It is in the public folder, because og:image needs a fixed URL.
Netlify now sends `/` to site/index.html. The rule needs `!`, because index.html exists at `/` and Netlify serves a file before a plain rule. The library is at `/app` (Router.homePath). A library at `/` would show the product page after a reload. The router still reads `/` as the library, because the desktop loads `/`. A desktop reload at `/app` also works: Tauri tries app, app.html, and app/index.html, then index.html. Links to /diagrams/<id>, ?dot=, /example/<slug>, and /documents/<id> do not change. HomeRouteSpec records the new paths. DocumentConflictSpec expected `/` after a navigation to the library, and now expects Router.homePath.
The README described only the web app, and its list of planned features included Mermaid and keyboard navigation, which ship now. The new README tells what the three parts do, how to install the desktop app and gx on each platform, and what each platform lacks. It also tells how to build from source and how the site is hosted. The facts come from the code and from the v0.9.5 release. The macOS files are for Apple silicon only (checked with `file`). The Windows and Linux files are not signed. Share URL is a command, not a toolbar icon.
"Share URL" built the link from window.location.origin. In the desktop app, that origin is the webview: tauri://localhost, or http://tauri.localhost on Windows. Only the same computer can open it, so nobody could use a link copied from the desktop. Now the desktop uses https://graph-explorer.net (ShareUrl.publicOrigin). The web keeps the origin of the page, so local dev and previews still link to themselves. The check is DesktopIpc.available, which looks for the invoke function that the shell installs. Library.isDesktop is not correct here: it is false when the desktop library fails to install, but the page still runs on the webview origin. A check on the URL scheme also fails, because the Windows origin uses http. ShareUrlSpec has a desktop case, which failed before this change, and a web case, which keeps the old behavior. The command description said "(local only)". The link holds the full diagram and opens anywhere, so it now says "Copy a link that holds this diagram". The product page and the README no longer say that only the web app can share a link.
✅ Deploy Preview for graph-explorer-net ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Most new work now goes to the desktop app, but graph-explorer.net showed only the web app. This PR adds a product page at
/. The page tells what Graph Explorer does, links the downloads of the latest release, and links the web app. The web app moves to/app, and the README is new.Changes
Product page (
site/)dist/site/index.html, and Netlify serves it at/. The desktop embedsdist/too, but it never loads this page.gx, and your files connect (you can select its boxes), a desktop and web table, agxsection with the agent skill, and a download table for each platform.site.jsgets the latest release from the GitHub API and links the exact files with their sizes. If the API call fails, each link goes to the releases page. The page also works without the script.site/flow.dotis the source of the diagram, andsite/flow-svg.pymakes its inline SVG.The web app moves to
/app_redirectssends/tosite/index.html. The rule needs!, becauseindex.htmlexists at/.Router.homePathis/app. The router still reads/as the library, because the desktop loads/. A desktop reload at/appalso works, because Tauri falls back toindex.html./diagrams/<id>,?dot=,/example/<slug>, and/documents/<id>do not change.vite.config.jsstaysindex, becausescripts/build-local-capabilities-release.shlooks fordist/assets/index-*.js.Share links from the desktop
window.location.origin. In the desktop, that is the webview origin (tauri://localhost, orhttp://tauri.localhoston Windows), so nobody else could open the link. The desktop now useshttps://graph-explorer.net. The web keeps its own origin.README
gx, what each platform lacks, how to build from source, and how the site is hosted.Tests
sbt viewer/testFull: 239 passed, 0 failed, on this branch after the rebase onto The screen follows the record, and a canvas edit keeps the file whole #50.HomeRouteSpec(the/appand/paths), and two cases inShareUrlSpec(desktop and web). The desktop case failed before the fix.DocumentConflictSpecexpected/after a navigation to the library. It now expectsRouter.homePath.npm run buildmakesdist/index.html,dist/site/index.html, anddist/assets/index-*.js.Check after the deploy
The Netlify rules cannot run locally. After the deploy, check these:
https://graph-explorer.net/shows the product page.https://graph-explorer.net/appshows the library, and a reload stays there./diagrams/<id>?dot=...) still opens the diagram.For review
downloadevent for each download click.fileon the v0.9.5 binaries).gx open.og-image.jpg(117 KB) is in the public folder, so it also goes into the desktop build.