Shared meaning
++ Knowledge Types describe what a record is and where it belongs. + Apps keep their own focused views. +
+diff --git a/AGENTS.md b/AGENTS.md index be53d16..6ad7fe3 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -100,3 +100,4 @@ Assume environment is set up. - Pressidian enrolls previously unmanaged private Knowledge rows when they have any administrator-selected Knowledge Type (default `note` or `todo`), skips Gutenberg block-shaped content, and keeps already-enrolled rows synced if their types later change. It uses the existing immutable WordPress slug as record identity, calls the Markdown representation kind `markdown`, hides derived `artifact`/`note`/`obsidian` terms from Obsidian tags, exposes `todo` and other semantic terms as tags, preserves TODO operational meta, and treats WordPress trash as a sync tombstone rather than a hard delete. - The default Knowledge-only wp-env intentionally omits the standalone Abilities API plugin. PHPUnit bootstrap must treat that fixture as optional and stay silent when it is absent; writing the expected absence to STDERR breaks tests marked `@runInSeparateProcess` before they can skip. - `pull_request_target` evaluates the workflow definition from the base branch but may execute local composite actions from the checked-out PR merge ref. During CI migrations, keep changed composite actions backward-compatible with the base workflow's inputs until the workflow change has merged; the split build action therefore falls back to the legacy monolith preview ZIP when no package slug is supplied. +- The public landing page is the static GitHub Pages site in `docs/` (custom domain `personalos.net`). Keep it focused on the six standalone Knowledge-backed packages, distinguish four app destinations from two background sync integrations, and verify release assets before advertising downloads; the merged Stuff package initially exists only in source. Use synthetic demo records for public app screenshots and attach a full-page design capture to landing-page PRs. diff --git a/docs/INSTALL.md b/docs/INSTALL.md index c18e81a..ee8a96b 100644 --- a/docs/INSTALL.md +++ b/docs/INSTALL.md @@ -1,8 +1,71 @@ -# Get PersonalOS +# Install PersonalOS plugins -## I have a WordPress site +PersonalOS is a set of six independent plugins built on WordPress Knowledge. Install only the modules you want; no PersonalOS base plugin or sibling plugin is required. -## Getting a WordPress site +## Requirements -## Get a WordPress on your laptop +- WordPress 7.0 or later **with a Knowledge runtime** that registers `wp_knowledge`, hierarchical `wp_knowledge_type`, and the core `/wp/v2/knowledge` REST collection. The WordPress version number alone does not guarantee that Knowledge is available. Check your runtime before installing. +- PHP 7.4 or later for Notes, TODO, Stuff, and AI Chat; PHP 7.2.24 or later for the Readwise and Evernote integrations. +- Pretty permalinks for the private app routes. In WordPress, open **Settings → Permalinks** and choose a structure such as **Post name**. +- A WordPress account with permission to edit posts to use the apps. +AI Chat additionally needs WordPress AI Client and a configured provider through Connectors to generate replies. Readwise and Evernote imports need your credentials for those services. Core Knowledge access does not require an AI provider. + +## Choose your plugins + +Download individual ZIPs from [GitHub Releases](https://github.com/artpi/PersonalOS/releases). In WordPress, use **Plugins → Add New Plugin → Upload Plugin**, upload a ZIP, and activate it. + +| Plugin | Where to open it | What it adds | +| --- | --- | --- | +| Personal Notes | `/notes/` | Note library, Knowledge Type organization, and editor integration | +| Personal TODO | `/todo/` | Tasks, scheduling, recurrence, dependencies, history, and ICS feeds | +| Personal Stuff | `/stuff/` | Inventory with photos, places, tags, search, and print/PDF | +| Personal AI Chat | `/ai-chat/` | Conversations saved in Knowledge, generation through AI Client | +| Personal Readwise Sync | Settings → Personal Readwise Sync | Import Readwise highlights and articles | +| Personal Evernote Sync | Settings → Personal Evernote Sync | One-way import from selected Evernote notebooks | + +As of September 6, 2026, release `0.3.0` contains five plugin ZIPs. Personal Stuff is merged into `main` and can be built from source; it is awaiting its first release ZIP. Check the release asset list before downloading. + +Open Readwise or Evernote settings to add your per-user token and configure the import scope. The integrations run in the background; apps such as Personal Notes can read their imported Knowledge records. + +## Try the local development site + +The repository's `wp-env` configuration mounts all six packages. It uses pinned Gutenberg 23.7.0 and enables its Knowledge experiment as a **development fixture**. That fixture is not a bundled release dependency or a promise of production support for the experiment. + +With Node.js, Composer, and Docker available: + +```bash +git clone https://github.com/artpi/PersonalOS.git +cd PersonalOS +npm ci +composer install +npm run build +npm run wp-env -- start +``` + +Open [localhost:8901](http://localhost:8901), sign in using wp-env's default development credentials (`admin` / `password`), and configure pretty permalinks. Then open `/notes/`, `/todo/`, `/stuff/`, or `/ai-chat/`. Use these default credentials only for local development. + +If your WordPress environment does not provide Knowledge, the apps need a compatible runtime before they can work. The repository fixture is a way to evaluate the plugins locally. + +## Build installable ZIPs + +From the repository root, after installing dependencies and building assets: + +```bash +# Build all six standalone plugins. +npm run package:plugins +npm run verify:split-packages + +# Or build just Personal Stuff. +npm run package:plugin -- --package=personal-stuff +``` + +The packaging command reports the output paths. Install the generated ZIP, rather than copying a package source directory: release ZIPs contain their own shared helpers and required bundled runtimes. + +## Your data and connections + +The apps store their durable records in WordPress Knowledge. User-created records are private by default and use WordPress permissions. Deactivation or uninstall leaves records in place. This does not guarantee that every Knowledge consumer displays every type of record: each app chooses its own relevant types. + +Stuff photos are WordPress Media attachments. Their URLs remain publicly accessible to someone who knows the URL, even when the inventory record is private. Knowledge Type terms retain the visibility provided by your Knowledge runtime. + +Readwise and Evernote contact the services you configure. AI generation sends prompts to your configured provider. See each [package readme](https://github.com/artpi/PersonalOS/tree/main/packages) for the exact privacy and retention behavior. diff --git a/docs/assets/knowledge-notes.png b/docs/assets/knowledge-notes.png new file mode 100644 index 0000000..966e977 Binary files /dev/null and b/docs/assets/knowledge-notes.png differ diff --git a/docs/assets/knowledge-stuff.png b/docs/assets/knowledge-stuff.png new file mode 100644 index 0000000..93aa0c8 Binary files /dev/null and b/docs/assets/knowledge-stuff.png differ diff --git a/docs/assets/knowledge-todo.png b/docs/assets/knowledge-todo.png new file mode 100644 index 0000000..509c870 Binary files /dev/null and b/docs/assets/knowledge-todo.png differ diff --git a/docs/assets/mark.svg b/docs/assets/mark.svg new file mode 100644 index 0000000..ae9c721 --- /dev/null +++ b/docs/assets/mark.svg @@ -0,0 +1 @@ + diff --git a/docs/design/README.md b/docs/design/README.md new file mode 100644 index 0000000..f258b52 --- /dev/null +++ b/docs/design/README.md @@ -0,0 +1,30 @@ +# Knowledge landing page design + +The public site is served directly from `docs/` by GitHub Pages at `personalos.net`. It has local CSS, a small script for screenshot tabs, and no runtime CDN, font service, or build dependency. + +Preview it from the repository root: + +```bash +python3 -m http.server 4173 --bind 127.0.0.1 --directory docs +``` + +Open `http://127.0.0.1:4173`. + +## Design captures + +- [Full-height desktop, 1440px wide](knowledge-landing-desktop.png) +- [Full-height mobile, 390px wide](knowledge-landing-mobile.png) + +The three app screenshots under `docs/assets/knowledge-*.png` are unmodified browser captures of the running local wp-env site at 1440×900. The site had all six split plugins active, with its pinned Gutenberg Knowledge fixture. An isolated author account named Demo owns eight synthetic notes, seven synthetic tasks, and four synthetic inventory items. The Stuff screenshot is filtered to the synthetic Field kit tag. No personal notes, photos, or credentials are included. The hero map and record panel are explanatory illustrations, not app screenshots. + +## Verification — September 6, 2026 + +- CSS and JavaScript pass the repository's WordPress linters; `node --check docs/site.js` and `git diff --check` pass. +- Chromium browser checks at 320, 375, 390, 768, 820, 1024, and 1440px: no horizontal overflow, page errors, or failed local asset responses. +- All three screenshot tabs work with clicks and keyboard navigation, including arrow keys, Home, and End. Selected state, focus, panel visibility, URL decoration, and captions update together. +- Axe's WCAG 2 A/AA and WCAG 2.1 AA checks report zero violations at the checked 1440px desktop viewport. This is an automated scan, not a comprehensive accessibility certification. +- All internal anchors and linked repository paths resolve. The default screenshot and all six modules remain available without JavaScript. +- Desktop and mobile captures were visually reviewed. Screenshots were decoded before full-page capture; the default tab is Notes. Reduced-motion preference is respected. +- The latest published release was inspected: `0.3.0` has the five pre-Stuff ZIPs. The landing page links to the releases list and identifies Stuff as source-available while its first ZIP is pending. + +This change is static site content, styles, screenshots, and installation documentation. Plugin code and wp-env configuration are unchanged; backend suites were not rerun for this page redesign. diff --git a/docs/design/knowledge-landing-desktop.png b/docs/design/knowledge-landing-desktop.png new file mode 100644 index 0000000..05b7bf7 Binary files /dev/null and b/docs/design/knowledge-landing-desktop.png differ diff --git a/docs/design/knowledge-landing-mobile.png b/docs/design/knowledge-landing-mobile.png new file mode 100644 index 0000000..050258a Binary files /dev/null and b/docs/design/knowledge-landing-mobile.png differ diff --git a/docs/index.html b/docs/index.html index 5bfcbf6..dd011fd 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,547 +1,609 @@ - + -
- - -+ A personal operating system for + WordPress +
++ A home for your notes, tasks, and everyday things. Independent apps + that speak the same language: WordPress Knowledge. +
+ ++ Self-hosted. Open source. Yours to build on. +
+- PersonalOS is your all-in-one personal management system, designed to keep your personal data in your control, but accessible for AI agents. -
- - Get Started - -[Mockup Placeholder: Sleek app interface showing todos and notes]
-01 / THE CONNECTIVE TISSUE
++ A highlight you saved. A task you need to finish. The box with + your camera gear. They belong to your life. Their data should live + together, too. +
++ PersonalOS stores them as native WordPress Knowledge records. Each + app adds its own view and behavior; compatible plugins and tools + can work with the same underlying content. +
+ Explore the shared foundation + +wp_knowledge/wp-json/wp/v2/knowledge
+
+ An illustrative record. A native format.
Ready for another
+ Knowledge-aware tool.
+
+ Knowledge Types describe what a record is and where it belongs. + Apps keep their own focused views. +
++ Posts, terms, blocks, media, and REST. Familiar WordPress + primitives make your data useful beyond one interface. +
++ Build on the core Knowledge API. TODO also exposes task actions + through the WordPress Abilities API. +
+02 / BUILD YOUR OWN EVERYDAY
+
+ Start with what you need. Add what you love.
Every module is a
+ standalone plugin. No other PersonalOS plugin required.
+
+ A place for unfinished thoughts and useful knowledge. Search, + organize, and bring your notes into the WordPress editor. +
++ Make space for what matters now. Capture tasks quickly, plan what + comes next, and let the recurring things take care of themselves. +
++ Remember what you own. And where you put it. A visual inventory + for the gear, boxes, and everyday objects in your life. +
++ A home for conversations with AI. Keep your chat history in + Knowledge and connect generation through WordPress AI Client. +
++ Good ideas deserve a second life. Bring your Readwise highlights + and articles into Knowledge, alongside your own notes. +
++ Bring an existing notebook habit home. Import selected Evernote + notebooks into WordPress as private Knowledge records. +
++ Four private app destinations. Two + background integrations. One WordPress site. +
+
- - An opinionated TODO manager designed to surface what's important right now while giving you the peace of mind that everything is taken care of: -
- - Your notes, now powered with the most extensible editor on the web - WordPress Block Editor. -
03 / LESS ABSTRACT. MORE EVERYDAY.
+
+ Familiar WordPress foundations.
Focused spaces for getting on
+ with life.
+
+ Your notes, organized with Knowledge Types and the native + WordPress DataViews interface. +
+ LOCAL WORDPRESS DEMO · CLICK TO ENLARGE +- Invite AI into your Second Brain so it can read your mind. -
-- Effortlessly share context with AI to set it up for success the first time. -
- Give AI superpowers to external services. -
- Start your day with a personal podcast from your Second Brain. -
04 / A DIGITAL HOME, ON YOUR TERMS
++ These plugins add ways to work with your data. The records live in + WordPress, and remain there when a PersonalOS plugin is + deactivated or uninstalled. +
++ User-created records are private by default, with WordPress + controlling access. Sync services and AI providers are connections + you configure. Stuff photos use standard WordPress Media URLs; + private records do not make those files private. +
+ Read the code. Make it your own. + +
- PersonalOS is built on top of WordPress, the most popular self-hosted, and most extensible CMS in the world.
Your data is in your control in a familiar interface.
-
- PersonalOS will work just as good in 50 years -
-+ SMALL TOOLS. AN OPEN FOUNDATION. +
+
+ Pick a plugin. Connect it to Knowledge.
Build a system that
+ feels like you.
+
+ Target WordPress 7.0+ with a runtime that provides Knowledge. + The repository includes a local development fixture. +
++ Install individual plugin ZIPs. Stuff is available from source + on main while awaiting its first release ZIP. +
+- WordPress has thousands of plugins, and PersonalOS is built to integrate with them seamlessly. -
-- Incentivized to integrate with everything -
-+ Open your apps. Add tokens for the sync integrations, or + configure AI Client and a provider for AI Chat. +
+- Launch a fully-functioning WordPress instance with PersonalOS pre-installed, inside your browser. Data will never leave your browser, but AI features will require your own API keys. -
- +- PersonalOS is a WordPress plugin that turns your WordPress site into a personal operating system. You will need a WordPress instance to use it - you can launch one on WordPress.com, use one you already have or even install it on your own computer. -
-- Learn how to install PersonalOS, if you have a WordPress or not yet. +
+ A personal project by
+ Artur Piszek.
Built for a life
+ beyond the browser.