Wenlan
Wenlan is a source-backed AI knowledge base and LLM wiki for AI work: organize documents and decisions into pages you can find, inspect, and review.
Use your iPhone or iPad as a mouse, trackpad and keyboard for your Mac, plus a shortcut Grid for every Mac app that switches by itself. Free Mac app.
ProductivityHTML · JavaScriptGitHub @sebstech24OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Website for Control My Mac: use your iPhone or iPad as a mouse, trackpad and keyboard for your Mac.
Loading the full README. The saved excerpt is shown below.
For the current App Store build, code-delivery, subscriber email, APNs setup, testing, and launch checklist, see CONTROL_MY_MAC_OPERATIONS.md.
Static marketing site for Control My Mac — an iPhone app plus a free Mac menu-bar companion that lets you operate your entire Mac with one finger.
This repository contains only the public site, legal pages and public release assets attached through GitHub Releases. It must never contain app source code, signing material, credentials, private configuration or internal project files.Read the full README ↗For the current App Store build, code-delivery, subscriber email, APNs setup, testing, and launch checklist, see CONTROL_MY_MAC_OPERATIONS.md.
Static marketing site for Control My Mac — an iPhone app plus a free Mac menu-bar companion that lets you operate your entire Mac with one finger.
This repository contains only the public site, legal pages and public release assets attached through GitHub Releases. It must never contain app source code, signing material, credentials, private configuration or internal project files.
Plain HTML + CSS + a few lines of vanilla JS. No build step, no frameworks, no external fonts or CDNs. Deployable as-is on Vercel (vercel.json enables cleanUrls, so /start, /one-hand etc. resolve without .html). For local preview: python3 -m http.server from the repo root (the pages use root-relative asset paths).
| Path | File | Purpose |
|---|---|---|
/ | index.html | Main landing page — full feature, pricing and privacy overview |
/start | start.html | Audience selector ("What brings you here?"), remembers the choice in localStorage |
/one-hand | one-hand.html | Variant: one-handed / accessibility framing |
/couch | couch.html | Variant: couch & home-theater framing |
/present | present.html | Variant: presenters & educators framing |
/pro | pro.html | Variant: power-user framing |
/iphone-as-mouse-for-mac | iphone-as-mouse-for-mac.html | Guide: iPhone as a mouse for Mac |
/stream-deck-alternative | stream-deck-alternative.html | Guide: Stream Deck alternative |
/compare | compare.html | Guide: Compare Mac remote apps |
/macro-pad-for-mac | macro-pad-for-mac.html | Guide: Macro pad for Mac |
/privacy | privacy.html | Privacy policy (no data collected, no account, local-only) |
/terms | terms.html | Terms of Use for the free Mac app and, once out, Control My PC for Windows and Android (the iPhone app uses Apple's standard licence). English only for now; effective 22 October 2026. Google Play and the Microsoft Store link to it |
/support | support.html | Setup, pairing troubleshooting, plans, contact |
/download | download.html | Mac companion download handoff page with GitHub and direct .dmg actions |
/app | app.html | Where the download area's QR code leads: iPhone/iPad to the App Store, Android to Google Play (with QR tracking), both badges otherwise. noindex |
/smartwake | smartwake.html | Product page: Smart Wake (iPhone + Apple Watch alarm, unreleased). #privacy / #support anchors double as its App Store privacy & support URLs |
/filepilot | filepilot.html | Product page: FilePilot (Explorer-style file manager for macOS, unreleased, direct download). #privacy / #support anchors serve as its privacy & support URLs |
| — | assets/site.css | Shared design system (glass chrome, accent gradient, light/dark, reduced-motion/transparency fallbacks) |
| — | assets/site.js | Audience-choice memory for /start (no tracking, localStorage only), newsletter opt-in UI, donate-button seam |
/api/subscribe | api/subscribe.ts | Vercel serverless function: adds newsletter signups to the email provider (env-var configured, see below) |
| — | scripts/store-buttons.py + .json | The download area on every homepage and download page: main button per device, every app in two groups, QR code, store tracking; one live switch per store (see "Download area") |
| — | AUDIENCE-RESEARCH.md | Public-safe research notes behind the variant messaging |
Run this after every Mac or iPhone release, then commit and push what it changed (a push to main publishes):
python3 scripts/after-release.py --fix
It compares the site with what is really out (appcast.xml, the newest GitHub release, the live /download.dmg,
Apple's public lookup) and rewrites the press page facts. Without --fix it only reports and exits 1 when
something is stale. Apple's lookup can lag a few hours behind an approval: if it still shows the old iPhone
version, run it again later.
| What | Where | How |
|---|---|---|
| The DMG | GitHub release vX.Y.Z in this repo, file named ControlMyMac-X.Y.Z.dmg | gh release create (steps in the app repo, native/AppStore/mac-<version>/PUBLISH.md) |
| Update for people who already have the app | appcast.xml, new item on top | by hand from the release's appcast-item.xml |
| Download buttons | nothing | /download.dmg follows the newest GitHub release by itself (cached up to 30 minutes) |
| Press page "Current versions" and the facts file in the press kit zip | press.html, assets/press/control-my-mac-press-kit.zip | after-release.py --fix (never edit press.html by hand) |
The links to v1.2.3 are the last Intel version and stay as they are.
| What | Where | How |
|---|---|---|
| Press page version, date and language list | press.html and the kit zip | after-release.py --fix, once the App Store shows the new version |
| Copy about a feature that changed | the pages that describe it, in every language folder | by hand, then scripts/sync-locales.py |
This is the beginning of the README. Read the rest at the original. Read the full README ↗