Source & license
Upstream license: AGPL-3.0
License TL;DR
You can use and change it, even commercially. If people use your modified version over a network, offer them its corresponding source under the AGPL. Sharing copies has source-sharing duties too. Sharing source code is different from sharing users’ content.
Explain AGPL v3 in plain English →Summary of the main license. Separate packages and assets can have different terms.
Inspect repository ↗Read this project’s actual license ↗Repository owner
See the upstream repository for the original creator and contributors.
Maintain this project? Maintainer verification →Cloudflare hosting
Free tier eligible within limits
The reviewed Cloudflare deployment is eligible for Free-plan allowances for the stated small workload and feature scope. Usage limits, CPU, required account setup and separate services apply.
Hosting requirements
- Assess the core text-note and image deployment only; Groq, 888box and optional AI integrations have separate accounts and costs.
- Stay within KV's daily write/read/list quotas; frequent autosave and public note traffic must be measured.
- D1 note history retention and R2 images must stay within their included storage and operation allowances.
- Workers Free dynamic requests are shared across this account (100,000/day), with 10 ms CPU per invocation; workload fit is conditional and has not been measured.
- D1 Free allowance: 5 million rows read/day, 100,000 rows written/day and 5 GB total storage; unindexed scans and history retention consume quota.
- KV Free allowance: 100,000 keys read/day and 1,000 each writes/deletes/list requests/day; this may constrain updates before Worker request limits.
- R2 Standard allowance: 10 GB-month storage, 1 million Class A and 10 million Class B operations/month; account activation may require billing setup, and other storage classes are excluded.
Sources checked 01/10/2026
Repository snapshot: 034d335. Hosting eligibility reflects the deployment documentation and listed assumptions.
- notion ↗
# 888wiki **A Markdown-first knowledge workspace you can run in your own Cloudflare account.** Start with plain Markdown, capture voice, files, and web pages into it, then use Block, Canvas, or Whiteboard when the work calls for another shape. [](https://deploy.workers.cloudflare.com/?url=https://github.com/tbdavid2019/888wiki) [Live site](https://wiki.david888.com) · [API](https://wiki.david888.com/api) · [
- workers ↗
name = "888wiki" main = "src/index.js" compatibility_date = "2024-12-01" compatibility_flags = ["nodejs_compat"] kv_namespaces = [ { binding = "NOTES", id = "demo" }, { binding = "SHARE", id = "demo" } ] [assets] directory = "./static" [vars] SCN_STORAGE_DRIVER = "auto" SCN_APP_NAME = "888wiki" SCN_ADMIN_PATH = "/admin" SCN_SLUG_LENGTH = "4" SCN_ENABLE_R2 = "1" SCN_R2_DOMAIN = "" SCN_GA_MEASUREMENT_ID = "" SCN_ENABLE_WEBTALK = "0" SCN_WEBTALK_SCRIPT_URL = "" SCN_WEBTALK_AI_ENDP
- d1 ↗
PW"] [[r2_buckets]] binding = "IMAGES" bucket_name = "888wiki-images" [[d1_databases]] binding = "NOTE_HISTORY_DB" database_name = "888wiki-history" database_id = "demo" # Cron trigger: Daily cleanup at 9 AM Taiwan time (1 AM UTC) [triggers] crons = ["0 1 * * *"] # Workers AI binding is optional. AI operations fall back to Groq when no AI binding is configured. # [ai] # binding = "AI"
- kv ↗
bility_date = "2024-12-01" compatibility_flags = ["nodejs_compat"] kv_namespaces = [ { binding = "NOTES", id = "demo" }, { binding = "SHARE", id = "demo" } ] [assets] directory = "./static" [vars] SCN_STORAGE_DRIVER = "auto" SCN_APP_NAME = "888wiki" SCN_ADMIN_PATH = "/admin" SCN_SLUG_LENGTH = "4" SCN_ENABLE_R2 = "1" SCN_R2_DOMAIN = "" SCN_GA_MEASUREMENT_ID = "" SCN_ENABLE_WEBTALK = "0" SCN_WEBTALK_SCRIPT_URL = "" SCN_WEBTALK_AI_ENDPOINT = "" SCN_WEBTALK_SCOPE = "meta" SCN_WEBTALK_SITE_ID = "" SCN_ENABLE_NOTE_HISTORY = "1" SCN_NOTE_HISTORY_LIMIT = "10" SCN_NOT
- r2 ↗
= "300" [secrets] required = ["SCN_SALT", "SCN_SECRET", "SCN_ADMIN_PW"] [[r2_buckets]] binding = "IMAGES" bucket_name = "888wiki-images" [[d1_databases]] binding = "NOTE_HISTORY_DB" database_name = "888wiki-history" database_id = "demo" # Cron trigger: Daily cleanup at 9 AM Taiwan time (1 AM UTC) [triggers] crons = ["0 1 * * *"] # Workers AI binding is optional. AI operations fall back to Groq when no AI binding is configured. # [ai] # binding = "AI"
- free-tier-eligible ↗
name = "888wiki" main = "src/index.js" compatibility_date = "2024-12-01" compatibility_flags = ["nodejs_compat"] kv_namespaces = [ { binding = "NOTES", id = "demo" }, { binding = "SHARE", id = "demo" } ] [assets] directory = "./static" [vars] SCN_STORAGE_DRIVER = "auto" SCN_APP_NAME = "888wiki" SCN_ADMIN_PATH = "/admin" SCN_SLUG_LENGTH = "4" SCN_ENABLE_R2 = "1" SCN_R2_DOMAIN = "" SCN_GA_MEASUREMENT_ID = "" SCN_ENABLE_WEBTALK = "0" SCN_WEBTALK_SCRIPT_URL = "" SC
- free-tier-eligible ↗
ount Manager. | | Requests<sup>1, 2, 3, 4</sup> | Duration | CPU time | | --- | --- | --- | --- | | **Free** | 100,000 per day | No charge for duration | 10 milliseconds of CPU time per invocation | | **Standard** | 10 million included per month <br> +$0.30 per additional million | No charge or limit for duration | 30 million CPU milliseconds included per month<br> +$0.02 per additional million CPU milliseconds<br><br> Max of [5 minutes of CPU time](https://developers.cloudflare.com/workers/platform/limits/#account-plan-limits) per invocation (default: 30 second
- free-tier-eligible ↗
rs Paid](https://developers.cloudflare.com/workers/platform/pricing/#workers) | | --- | --- | --- | | Rows read | 5 million / day | First 25 billion / month included + $0.001 / million rows | | Rows written | 100,000 / day | First 50 million / month included + $1.00 / million rows | | Storage (per GB stored) | 5 GB (total) | First 5 GB included + $0.75 / GB-mo | Track your D1 usage To accurately track your usage, use the [meta object](https://developers.cloudflare.com/d1/worker-api/return-object/), [GraphQL Analytics API](https://developers.cloudflare.com/d1/obs
- free-tier-eligible ↗
flare.com/workers/platform/pricing/). | | Free plan<sup>1</sup> | Paid plan | | --- | --- | --- | | Keys read | 100,000 / day | 10 million/month, + $0.50/million | | Keys written | 1,000 / day | 1 million/month, + $5.00/million | | Keys deleted | 1,000 / day | 1 million/month, + $5.00/million | | List requests | 1,000 / day | 1 million/month, + $5.00/million | | Stored data | 1 GB | 1 GB, + $0.50/ GB-month | <sup>1</sup> The Workers Free plan includes limited Workers KV usage. All limits reset daily at 00:00 UTC. If you exceed any one of these limits, further o
- free-tier-eligible ↗
f you have retrieved data (for infrequent access storage) for 1.1 GB, you will be billed for 2 GB. ### Free tier You can use the following amount of storage and operations each month for free. | | Free | | --- | --- | | Storage | 10 GB-month / month | | Class A Operations | 1 million requests / month | | Class B Operations | 10 million requests / month | | Egress (data transfer to Internet) | Free <sup>[1](#user-content-fn-1)</sup> | Caution The free tier only applies to Standard storage, and does not apply to Infrequent Access storage. ### Storage usage S
- AGPL-3.0 ↗
GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the community in the case of network server software.
- architecture ↗
name = "888wiki" main = "src/index.js" compatibility_date = "2024-12-01" compatibility_flags = ["nodejs_compat"] kv_namespaces = [ { binding = "NOTES", id = "demo" }, { binding = "SHARE", id = "demo" } ] [assets] directory = "./static" [vars] SCN_STORAGE_DRIVER = "auto" SCN_APP_NAME = "888wiki" SCN_ADMIN_PATH = "/admin" SCN_SLUG_LENGTH = "4" SCN_ENABLE_R2 = "1" SCN_R2_DOMAIN = "" SCN_GA_MEASUREMENT_ID = "" SCN_ENABLE_WEBTALK = "0" SCN_WEBTALK_SCRIPT_URL = "" SCN_WEBTALK_AI_ENDP
Upstream screenshot · tbdavid2019/888wiki repository contributors ↗. Depicts the upstream project. We have not deployed and tested a fresh installation here.
What it can replace
Compare the workflow you need. These mappings describe overlap; full feature parity requires a separate comparison.
Editorial workflow alternative: Markdown note editing, block documents, visual canvases and public/password-protected note publishing; team database and administration parity not asserted.
See supporting source ↗How it works
The shape of 888wiki on Cloudflare, and how it stacks up against the rented tools it replaces.
Architecture
Diagram of deployment declarations at the reviewed commit. Each app has its own entrypoint; declared resources do not prove runtime calls. Follow file and line sources below.
View upstream source ↗Configuration and workflow sources
Reviewed commit 034d3358ad0e. Files were read as data; upstream applications and CI jobs were not executed.
Deployment configuration · 1 files
Cloudflare Workers · compatibility 2024-12-01
888wiki · default
Entrypoint: src/index.js
Static assets: ./static
Cron triggers (UTC): 0 1 * * *
NOTE_HISTORY_DB→ D1NOTES→ KVSHARE→ KVIMAGES→ R2Static assets→ Static assets
Named environments are separate deployments. Bindings are shown only where declared. Configured routes are URL patterns, not verified application endpoints.
Runtime source · handlers, binding usage and workflow steps
Observed TypeScript/JavaScript declarations from Worker entrypoints and resolved relative imports. Calls and workflow steps may run conditionally; their listed order is not a proven end-to-end request flow. Router declarations may be mounted under a prefix or may not be registered. This shows code wiring, not a successful deployment or runtime test. Dynamic wiring, aliases and generated code may not resolve.
No direct runtime declarations resolved from this snapshot. Generated framework bundles or dynamic entrypoints need manual tracing.
Build and deployment pipeline · 0 GitHub Actions workflows
Repository CI declarations, separate from runtime request processing. Job dependencies and conditions are shown as written; long commands are shortened with an ellipsis; a workflow file does not prove a recent successful run.
No GitHub Actions workflow was found in the collected tree. Deployment may be manual or configured elsewhere.
build:block-editor: node scripts/build-block-editor.mjsbuild:canvas-editor: node scripts/build-canvas-editor.mjsbuild:whiteboard-editor: node scripts/build-whiteboard-editor.mjsbuild:ocr: node scripts/build-ocr-client.mjspredeploy: npm run prepare:skill-doc && npm run build:block-editor && npm run build:canvas-editor && npm run build:whiteboard-editor && npm run build:ocrdeploy: npm run db:init && wrangler deployprepublish: npm run prepare:skill-docpublish: wrangler deploy
Repository README
View original on GitHub ↗Full upstream document by @tbdavid2019 · README.md · snapshot 034d335
888wiki
A Markdown-first knowledge workspace you can run in your own Cloudflare account. Start with plain Markdown, capture voice, files, and web pages into it, then use Block, Canvas, or Whiteboard when the work calls for another shape.
Live site · API · Agent Skill
Capture voice, files, or web pages in one menu
The + New menu moves content from wherever it starts into a note:
- Live recording: Save a local recording and player in IndexedDB, transcribe it when online, then upload it to the 888box attachment service when you publish or sync.
- Import audio (Transcript): Get a faithful transcript with timestamps.
- Import audio (Smart format): Turn speech into organized sections with AI.
- Import file: Convert Markdown, Office documents, PDFs, spreadsheets, and more into a note. Supported document conversion runs in the browser; drag and drop also offers attachment upload when you want to keep the original file.
- Import website: Extract supported public pages into Markdown; insert or replace content in the current note, or create the note from an empty editor.
The same import choices can create Markdown notes or convert content into editable Block documents.
Choose the right workspace for the idea
| Mode | Best for | What you get |
|---|---|---|
| Markdown | Articles, research, and technical notes | Live preview, math, diagrams, citations, imports, search and replace, and flexible layouts. |
| Block | Structured pages and mixed media | Rich editable blocks, slash commands, drag-to-reorder, editable embeds, and direct exports. |
| Canvas | Maps, plans, and connected ideas | Eight kinds of thought cards, labeled relationships, media cards, undo/redo, and .canvas / PNG / SVG export. |
| Whiteboard | Sketches and visual explanations | Excalidraw drawing tools, read-only sharing, and PNG / SVG export. |
Seal: publish on a schedule, or let a rule decide
Seal separates content passwords from release timing. Set a scheduled unlock, burn a public share after a chosen number of views, release it after a missed check-in, or expire a link on a deadline. Ten presets cover single-view credential sharing (including the One-Time Password preset; 1-hour expiry), Shared Secrets (1-day expiry), Crypto Inheritance, Emergency Backup, Whistleblower disclosures, Product Launches, Birthday Gifts, Legal Holds, Scavenger Hunts, and Course Content. The One-Time Password preset controls a share; it does not generate or verify OTP codes. Presets never change the note body, and burning a share leaves the author's original note intact.
Your writing and publishing workspace
- AI writing: Format, rewrite, and translate drafts; transcribe recordings with Groq as the primary provider and Workers AI as fallback.
- Publish and present: Share public or password-protected notes in a responsive reader featuring a left-side outline spine rail (dashes
-for major headings, dots·for subheadings) and a slide-out TOC drawer, section-aware reading progress, one-tap dedicated print and vector PDF export, front-row import/export controls, Fitts's Law-optimized high-frequency visual controls (theme, dark mode, and preview width positioned right beside publish and save), unified security & access protection (edit lock, view lock, and Seal controls consolidated into the share dropdown for a streamlined bottom toolbar), developer & agent info consolidated into a single popover dropdown and auto-hidden on mobile RWD, mobile quick tools dropdown, restore D1 history, discuss selected passages, and present content as books or slides. - Work offline & Smart Sync: Keep browser drafts in IndexedDB, monitor live sync status with a compact cloud icon state capsule (
[ ☁️🟢 | ▾ ], eliminating bulky text and layout shifts), toggle idle autosave, and sync pending changes or inspect and restore D1 cloud history on demand (accessible from both the Save & Sync menu and the publication status version count). - Keep control of the stack: One-click deploy the Worker, KV/D1 note storage, and R2 image storage to your Cloudflare account. Core notes and images stay in your account; published audio and large-file attachments use the external 888box service.
A Markdown workspace with room to shape the page
Markdown is the starting point: write portable plain text, preview it live, and use math, diagrams, citations, footnotes, alerts, and extended Markdown syntax. Enjoy clean, standardized Lucide and Tabler vector iconography with pixel-perfect vertical and horizontal centering across all toolbars, menus, and modals. Editor toolbars feature Fitts's Law-optimized visual controls and a compact cloud save capsule, using a consistent warm palette in light and dark UI modes with restrained active states and square-corner controls. Receive inspiration from bilingual editor tips and Tagore's Stray Birds poetry upon opening a new note. Choose from 20 colorful light and dark themes, fonts, preview widths, and split layouts. The same Markdown can become a book or slide presentation.
Built for agents and automation
Connect compatible agents and LLM clients through the native /mcp endpoint, browser WebMCP tools, the REST API and OpenAPI description, or the published Agent Skill. These interfaces let agents read, create, and publish wiki content using documented formats and permissions.
Get started
- Deploy and configure 888wiki · 繁體中文安裝指南
- How to capture, write, publish, and use Seal · 繁體中文使用指南
- Complete feature guide · 繁體中文功能詳情
- 繁體中文專案首頁 · Changelog
The installation guide lists required secrets, every optional parameter, and the defaults included in the deployment configuration.
Project
- Source code
- Report an issue
- License: AGPL-3.0
Frequently asked about 888wiki
What is 888wiki?+
888wiki is a self-hosted Notion alternative built on the Cloudflare developer platform. Markdown notes, visual workspaces and controlled publishing in your Cloudflare account.
What does 888wiki replace?+
888wiki is listed as an alternative to Notion. Compare the features and tradeoffs before migrating.
What Cloudflare primitives does 888wiki use?+
888wiki is built on D1, KV, R2, Workers.
How much does 888wiki cost to run?+
The reviewed Cloudflare deployment is eligible for Free-plan allowances for the stated small workload and feature scope. Usage limits, CPU, required account setup and separate services apply. Assess the core text-note and image deployment only; Groq, 888box and optional AI integrations have separate accounts and costs. Stay within KV's daily write/read/list quotas; frequent autosave and public note traffic must be measured. D1 note history retention and R2 images must stay within their included storage and operation allowances. Workers Free dynamic requests are shared across this account (100,000/day), with 10 ms CPU per invocation; workload fit is conditional and has not been measured. D1 Free allowance: 5 million rows read/day, 100,000 rows written/day and 5 GB total storage; unindexed scans and history retention consume quota. KV Free allowance: 100,000 keys read/day and 1,000 each writes/deletes/list requests/day; this may constrain updates before Worker request limits. R2 Standard allowance: 10 GB-month storage, 1 million Class A and 10 million Class B operations/month; account activation may require billing setup, and other storage classes are excluded. Check current Cloudflare pricing before deploying.
Is 888wiki open source?+
The upstream repository declares the AGPL-3.0 license. Read its terms at https://raw.githubusercontent.com/tbdavid2019/888wiki/034d3358ad0ea98d213693ad2796ebc8ea4a1130/LICENSE. Source code and contributor credit are available at https://github.com/tbdavid2019/888wiki.


Discussion · 0
sign in to comment →