diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 0000000..878c7cb --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,32 @@ +name: Pages + +# Publishes site/ to https://webtools-dotcom.github.io/Zynlex/. +on: + push: + branches: [main] + paths: ['site/**', '.github/workflows/pages.yml'] + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: true + +jobs: + deploy: + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - uses: actions/checkout@v7 + - uses: actions/configure-pages@v5 + - uses: actions/upload-pages-artifact@v4 + with: + path: site + - id: deployment + uses: actions/deploy-pages@v4 diff --git a/site/assets/api.webp b/site/assets/api.webp new file mode 100644 index 0000000..d381bdd Binary files /dev/null and b/site/assets/api.webp differ diff --git a/site/assets/home.webp b/site/assets/home.webp new file mode 100644 index 0000000..fca37aa Binary files /dev/null and b/site/assets/home.webp differ diff --git a/site/assets/logo.png b/site/assets/logo.png new file mode 100644 index 0000000..a01ad0e Binary files /dev/null and b/site/assets/logo.png differ diff --git a/site/assets/mocks.webp b/site/assets/mocks.webp new file mode 100644 index 0000000..7412ef4 Binary files /dev/null and b/site/assets/mocks.webp differ diff --git a/site/assets/network.webp b/site/assets/network.webp new file mode 100644 index 0000000..53b7d2a Binary files /dev/null and b/site/assets/network.webp differ diff --git a/site/assets/og.png b/site/assets/og.png new file mode 100644 index 0000000..a7ce561 Binary files /dev/null and b/site/assets/og.png differ diff --git a/site/assets/viewport.webp b/site/assets/viewport.webp new file mode 100644 index 0000000..6f035d1 Binary files /dev/null and b/site/assets/viewport.webp differ diff --git a/site/favicon.png b/site/favicon.png new file mode 100644 index 0000000..df2672b Binary files /dev/null and b/site/favicon.png differ diff --git a/site/fonts/jetbrains-mono-latin-400-normal.woff2 b/site/fonts/jetbrains-mono-latin-400-normal.woff2 new file mode 100644 index 0000000..5858873 Binary files /dev/null and b/site/fonts/jetbrains-mono-latin-400-normal.woff2 differ diff --git a/site/fonts/jetbrains-mono-latin-500-normal.woff2 b/site/fonts/jetbrains-mono-latin-500-normal.woff2 new file mode 100644 index 0000000..be878e6 Binary files /dev/null and b/site/fonts/jetbrains-mono-latin-500-normal.woff2 differ diff --git a/site/fonts/space-grotesk-latin-500-normal.woff2 b/site/fonts/space-grotesk-latin-500-normal.woff2 new file mode 100644 index 0000000..0db251f Binary files /dev/null and b/site/fonts/space-grotesk-latin-500-normal.woff2 differ diff --git a/site/fonts/space-grotesk-latin-700-normal.woff2 b/site/fonts/space-grotesk-latin-700-normal.woff2 new file mode 100644 index 0000000..44604a0 Binary files /dev/null and b/site/fonts/space-grotesk-latin-700-normal.woff2 differ diff --git a/site/index.html b/site/index.html new file mode 100644 index 0000000..be5eae6 --- /dev/null +++ b/site/index.html @@ -0,0 +1,419 @@ + + + + + +ZYNLEX — the minimal browser for web developers + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ ZYNLEX + +
+
+ +
+
+
The browser for localhost
+

The minimal browser for web developers.

+

ZYNLEX finds the dev servers running on your machine and puts the network log, API mocking, device viewports and an API client in the browser itself. The things you'd otherwise open DevTools, Postman, Charles and a responsive tester for.

+ +

Free and open source · Windows 10 & 11 · Rust + Tauri, not Electron · no account, no telemetry

+ +
+ +
+
new tab — scanning localhost…
+
:5173 Vite + React 200
+
:3000 Dashboard — Next.js 200
+
:6006 Storybook 200
+
:8000 api (listening, no page)
+
4 servers · click one to open it
+
+
+
+ +
+
+
What it's for
+

Four questions you ask all day, answered in one window.

+

Which port is that on? What did that request return? What happens when the API fails? How does it look on a phone? Each used to be a different app.

+ +
+
+
Which port is that on?

Your servers, on the new tab page

+

ZYNLEX scans the usual dev ports every few seconds, reads each page's title and shows what's running. Vite, Next.js, Astro, Storybook, Django, whatever. Add your own ports in settings.

  • Label and pin the ones you care about
  • Shows a server as stopped when it goes down
+
+
The new tab page listing three detected local dev servers
+
+ +
+
+
What did that request return?

A network log per tab

+

Every request with method, status, type, size and timing, captured through WebView2's own API. There's no proxy to route through and no certificate to trust.

  • Filter by errors, API calls or slow requests
  • Response headers and bodies, copy as cURL or fetch()
+
+
The network panel with captured requests and one expanded
+
+ +
+
+
+
What happens when the API fails?
+

Mock any response. No proxy.

+

Match a URL, set the status, body and delay, and the page gets your version. Or click Mock this on a real request and edit what came back. It works cross-origin, so you can build against a backend that doesn't exist yet.

  • Fake the 500, the empty list, the 3-second endpoint
  • Mocked requests are marked in the network log
+
+
+
+ GET + 200 + /api/users?page=1 + Fetch +
+

+          
+ + + + + try it +
+
+
+
The Mock Responses panel with a rule returning a 500 error to jsonplaceholder
+
+ +
+
+
How does it look on a phone?

Devices at their real size

+

Pick a phone or tablet and the page renders at its true width, pixel ratio and user agent, with touch. One device at a time, at 1:1, not a shrunken thumbnail.

  • Current iPhone, Pixel, Galaxy and iPad sizes
  • Server-side device detection sees the right client
+
+
A Galaxy phone viewport rendering GitHub at 412 by 891
+
+ +
+
+
And the rest

An API client that ignores CORS

+

Requests run through Rust, so the page's CORS rules don't apply. Saved collections and cURL import, per project. Next to it: header rules per URL pattern, an inspector for meta tags, Open Graph and HttpOnly cookies, a JWT decoder, Base64 and a user-agent switcher.

  • Workspaces keep each project's tabs, rules and requests apart
  • Ctrl+K finds all of it
+
+
The API tester with a saved collection and a JSON response
+
+
+
+ +
+
+
Small on purpose
+

No bundled Chromium. No sync. No extension host.

+

Tabs render with WebView2, the Chromium runtime that already ships with Windows, so heavy pages cost the same as in Chrome. The savings come from everything ZYNLEX doesn't run.

+
+
3.6 MBinstaller
+
452 MBidle with one tab, vs 689 MB for Chrome
+
27 MBfor the app process itself
+
0accounts, trackers or telemetry
+
+

Measured on one Windows 11 machine with clean profiles. Method and numbers.

+
+
+ +
+
+
Before you download
+

What it doesn't do.

+
+
Windows only, for now

Every developer feature sits on WebView2 APIs that only exist on Windows. macOS and Linux are on the roadmap.

+
One device at a time

If you need many viewports side by side or accessibility audits, Polypane and Responsively do that well.

+
Its own tabs only

Mocks and header rules apply to pages open in ZYNLEX, not to other apps on your machine. WebSocket handshakes aren't covered.

+
+
+
+ +
+
+
FAQ
+

Questions people ask.

+
+
Can I use it as my everyday browser?

You can browse in it like any browser, and it is minimal: no sync, no extensions, no account. It's built around development work, so most people keep it open next to their editor rather than replacing their main browser.

+
Will websites work in it?

Yes. Tabs render with WebView2, Microsoft's packaging of Chromium, the same engine as Chrome and Edge. Pages look and behave the same.

+
How is it different from Chrome DevTools?

DevTools is a drawer inside a general browser. ZYNLEX puts the network log, device viewports and header rules in the browser's own sidebar, per tab and per project, and adds what DevTools doesn't have: localhost server detection, response mocking without a proxy, and an API client.

+
Do I need a proxy or certificate to mock responses?

No. Mocks are answered inside the browser before the request reaches the network, so there's nothing to install or trust. Cross-origin requests work too.

+
Why is it so small? Is it Electron?

It's not Electron. It's built with Tauri and Rust, and uses the WebView2 runtime that already ships with Windows instead of bundling its own copy of Chromium.

+
Does it collect any data?

No account, no telemetry, no analytics. The only network call it makes on its own is an update check against the project's GitHub releases. This page makes no third-party requests either.

+
+
+
+ +
+
+

Open localhost in something built for it.

+ +
+
+
+ + + + + + diff --git a/site/robots.txt b/site/robots.txt new file mode 100644 index 0000000..dc7b92e --- /dev/null +++ b/site/robots.txt @@ -0,0 +1,3 @@ +User-agent: * +Allow: / +Sitemap: https://webtools-dotcom.github.io/Zynlex/sitemap.xml diff --git a/site/sitemap.xml b/site/sitemap.xml new file mode 100644 index 0000000..462297b --- /dev/null +++ b/site/sitemap.xml @@ -0,0 +1,4 @@ + + + https://webtools-dotcom.github.io/Zynlex/2026-09-27 +