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.
翻訳待ち
Flowboard - a shared kanban and task-prioritization board for creative teams. Single-file HTML/Tailwind/vanilla JS, backed by Firebase, deployed on GitHub Pages.
翻訳待ち
生産性HTML · JavaScriptGitHub @mediashock-apacオンライン所有者未確認
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Loading the full README. The saved excerpt is shown below.
A shared project & task prioritization kanban board for creative, fast-paced teams. Runs entirely
as a single client-side HTML file (no build step), backed by Firebase (Firestore + Authentication)
so the whole team edits one live board together, with live updates.
Sign in with a @mediashock.com.sg Google account. Anyone outside that domain is blocked, both
in the UI and independently at the database level via Firestore Security Rules
(firestore.rules) — so it's not just a client-side gate.
Ten views, switched from the left rail:Read the full README ↗A shared project & task prioritization kanban board for creative, fast-paced teams. Runs entirely as a single client-side HTML file (no build step), backed by Firebase (Firestore + Authentication) so the whole team edits one live board together, with live updates.
Live: https://mediashock-apac.github.io/ms-project-manager/
Sign in with a @mediashock.com.sg Google account. Anyone outside that domain is blocked, both
in the UI and independently at the database level via Firestore Security Rules
(firestore.rules) — so it's not just a client-side gate.
Ten views, switched from the left rail:
Throughout: search and filters (priority, project, assignee), in-app and opt-in desktop
notifications with @mentions, a light/dark theme toggle, and JSON export/import of the whole
board.
All of it is shared and live — an edit one person makes appears for everyone else with the page open, no refresh needed.
index.html — the whole app: markup, styling, and logic in one file, no build steptasks collection (one document per task), read via a live
onSnapshot listener. Task documents use client-generated IDs (not Firestore auto-IDs)chat-images/, read-gated to the team by
storage.rules (not public-read). This is why the Firebase project is on the Blaze
pay-as-you-go plan; Firestore usage alone would still fit inside the free Spark tierfirebase.json, .firebaserc, firestore.rules, storage.rules — standard Firebase CLI
project files, for the project pscr-project-managerversion.txt + CURRENT_BUILD_VERSION in index.html — a deploy timestamp polled
client-side, which auto-reloads open tabs when a new version ships (never mid-modal). Bump
both to the same value; scripts/check-syntax.mjs fails the push if they driftThe Firebase Local Emulator Suite lets you test auth + Firestore fully offline, without touching the real project:
firebase emulators:start --project demo-flowboard
python -m http.server 8765 # serve the file over http:// — Firebase Auth's popup
# sign-in flow needs a real http(s) origin, not file://
The app auto-detects localhost/127.0.0.1 and points itself at the emulator instead of the real
project in that case — no config changes needed to switch between the two.
There's no build, lint or test tooling, but there is a syntax gate — the app is one big
type="module" script, so a single syntax error anywhere takes the whole board down:
node scripts/check-syntax.mjs
git config core.hooksPath .githooks # one-time per clone: runs the check on every push
darkMode: 'class'), and vanilla
JavaScript (ES modules) — no framework, no bundlergstatic.com CDNPush to main — GitHub Pages serves the repo's root branch directly, so the live site updates
on its own. Note that firestore.rules, firestore.indexes.json and storage.rules are not
covered by that push; they need a separate firebase deploy --only firestore:rules /
--only storage, or a paste into the Firebase console.
CLAUDE.md in this repo is the deep architecture reference — the data model, every view's
design reasoning, and the gotchas worth knowing before changing anything. Read it first. The
patterns shared across all Mediashock internal tools (auth, notifications, icons, Firestore
rules conventions) live in the CLAUDE.md one folder up.