멤버들이 아카이브와 상호작용하는 방식, 그리고 그 행동의 흔적이 Activity에 기록되는 과정을 시각화했습니다. p5.js로 제작.
월간 업데이트: 최신 기능, 개선 사항, 버그 수정 소식을 전합니다.
두 달 동안 네 가지 큰 성과를 이뤘습니다 — 그 사이에 2주간의 휴식도 있었고요. 아카이브 브라우저는 완전히 새로 만들었습니다. 인물, 도구, 카테고리, 태그, 저자, 연대기를 하나로 묶은 통합 분류 탐색기로 거듭났고, D3.js 네트워크 시각화와 함께 새로운 시맨틱 스페이스(Semantic Space)도 선보였습니다. 시맨틱 스페이스는 약 4,300개의 아카이브 게시물 전체를 Three.js 3D 포인트 클라우드로 구현한 것으로, 임베딩과 UMAP 클러스터링을 적용해 멤버들이 단순히 태그가 아닌 의미를 기준으로 17년 넘는 CAN의 기록을 탐색할 수 있게 했습니다. API 문서도 완전히 탈바꿈했습니다 — 단순한 페이지에서 즉각 반응하는 인터랙티브 브라우저로, 과제 중심 내비게이션과 실제 작동하는 cURL/Python/JS 예제를 갖췄으며, 멤버를 위한 검색 API도 처음으로 공식 문서화했습니다. Activity iOS는 내부적으로 더 빠르고 안정적으로 개선됐습니다 — 스마트한 캐싱, 더 안정적인 멘션과 채널, 깔끔한 자격증명 처리는 물론, 새로운 인앱 검색, 선명해진 통계 차트, iOS 26을 위한 실험적인 리퀴드 글래스(Liquid Glass) 디자인, 그리고 피드와 스레드 전반에 걸친 대대적인 개선까지 담았습니다.
CAN의 작은 (소셜) 공간, Activity가 어느덧 첫 돌을 맞았습니다 🎉 — 런칭 후 373일, 단순한 활동 로그로 시작했던 이 공간은 이제 CAN 커뮤니티의 심장부로 자리 잡았습니다. 580명의 참여자(그 중 232명은 API 또는 iOS 앱을 통해 합류)와 함께, 포스트·좋아요·저장·댓글·멘션 등 3,809개의 활동이 차곡차곡 쌓였습니다. 서로의 작업에 반응하고, 교감하고, 영감을 나눈 순간들이죠. 1년 동안 한 걸음씩 개선을 거듭하며, 그 중심에 iOS 앱까지 완성했습니다 — 정말 자랑스럽습니다 🏆. 두 번째 해도 기대해 주세요!
통계 화면: 7일 차트(활동 방문 수, API 세션)에서 게시물이 없는 날이 차트 끝으로 밀려나는 문제를 수정했습니다 — 데이터 유무와 관계없이 x축이 7일 전체 배열 순서로 고정됩니다
통계 화면: 7일 합계가 이제 Matomo의 전체 집계(오늘 제외) 대신 일별 카운트를 직접 합산하는 방식으로 변경되었습니다
통계 화면: 콜드 런치 시 데이터가 로드되기 전 "Analytics" 제목이 화면 중앙에 떴다가 로드 후 상단으로 튀어오르던 문제를 수정했습니다
런치 스크린의 로딩 점이 흐릿하게 표시되던 문제를 수정하여 단색으로 렌더링되도록 했습니다. 앱 내 로딩 점 전환 동작도 이에 맞게 조정했습니다
채널 목록: 채널 미리보기가 있는 행에서 제목, 항목 수, 꺾쇠 아이콘이 이제 수직 정렬됩니다
Watch 앱과 위젯이 항목을 읽음 처리할 때 다음 새로고침 주기를 기다리지 않고 즉시 업데이트됩니다
아티클 카드의 라이브 임베드(동영상/HTML/오디오/이미지/SVG)가 삽입 전 소스 접근 가능 여부를 먼저 확인합니다. 소스에 접근할 수 없을 경우 로딩 상태에서 멈추는 대신 일반 아티클 슬라이드쇼로 대체됩니다
새 검색 기능 추가: 사이드바 및 플로팅 바(기존 Mentions 플로팅 바 버튼을 대체)로 접근 가능한 검색 화면이 추가되었습니다. Activity 항목과 Members를 아우르며, 쉼표 또는 Return 키로 확정되는 캡슐형 토큰 쿼리 빌더, 입력 중 실시간 미리보기, 최근 검색 기록, 일치 검색어 하이라이트, 스레드 뷰 또는 멤버 프로필로의 바로가기를 지원합니다
스레드(단일 항목) 뷰의 코드 블록에서 "Apply Theme" 버튼이 표시되지 않던 문제와, 코드 블록만 있고 이미지나 링크가 없는 항목에서 카드가 아예 렌더링되지 않던 관련 버그를 수정했습니다
검색: Activity 결과에서 이모지 및 특수문자가 원시 코드(예: 😀)로 표시되던 문제를 수정했습니다. 테마 변경 후 하이라이트된 검색어의 색상이 업데이트되지 않던 문제도 수정했습니다. 최근 검색 저장 수가 15개로 늘어났으며 개별 삭제가 가능하고 명칭도 "Recent"로 변경되었습니다. 토큰 캡슐 스타일이 New Entry 시트의 추천 칩과 통일되었으며, 사이드바의 Members와 Saved 사이 간격이 제거되었습니다
앱 설정 → 외관에 새로운 "리퀴드 글래스(Liquid Glass)" 토글 추가 (기본값 비활성화, 실제 글래스 효과를 지원하는 iOS 26 이상에서만 표시) — 활성화하면 플로팅 바, 필터/채널 피커 드롭다운, 플로팅 "@사용자명" 캡슐에 iOS 26 글래스 효과가 적용됩니다. 기본값(비활성화) 상태에서는 기존 플랫 배경 스타일이 유지됩니다
앱 설정: 피커 행(테마, 아이콘, 위젯, 더 불러오기)의 펼치기/접기 꺽쇠 아이콘에 다른 행 인디케이터보다 오른쪽 패딩이 더 붙던 문제 수정
검색: 검색 패널 바깥을 탭해 닫은 후에도 화면 키보드가 닫히지 않던 문제 수정
검색: 이전(만료된) 요청으로 인해 검색 중간에 로딩 점 애니메이션이 취소되던 문제 수정, 결과가 화면을 채운 상태에서 로딩 점이 화면 밖에 렌더링되던 문제 수정
메인 피드, 필터, 채널 피드: 자동으로 3페이지를 연속 불러온 후에는 스크롤이 일시 중지되며, 지금까지 읽은 항목 수와 함께 계속 보기 / 필터 / 검색 선택지를 제공합니다 — 무한 로딩 대신 적절한 시점에 멈춥니다
앱 설정의 "더 불러오기" 페이지당 항목 수 설정이 채널 피드에 적용되지 않던 문제 수정 (설정값과 무관하게 25개로 고정되던 문제)
"플로팅 바 확장" 옵션이 켜진 상태에서 채널 피드 하단 여백이 없어 목록 끝 콘텐츠가 플로팅 바 뒤에 가려지던 문제 수정
19/07/2026
CAN API 캐시
사이트에서 관련 없는 이벤트(새 게시물 작성, 좋아요, 저장 등)가 발생할 때마다 액티비티 스레드 전체가 초기화되던 문제를 수정했습니다. 이로 인해 단일 스레드 로딩 속도가 전체 피드를 불러오는 것만큼 느려지는 현상이 있었습니다.
이제 스레드 캐시는 해당 스레드 내 게시물이 수정·삭제되거나, 그 스레드에 댓글이 추가될 때만 무효화됩니다.
댓글 추가 시 스레드 캐시를 무효화하는 키에 언더스코어가 누락되어 아무것도 매칭되지 않던 문제를 수정했습니다.
관리자 대시보드에 "캐시된 스레드(Cached Threads)" 통계 항목을 추가해 현재 캐시된 액티비티 스레드 수를 확인할 수 있습니다.
재로그인 안정성 개선 — Keychain이 중복 항목(iCloud Keychain 동기화 충돌) 발생 시 자격 증명을 제자리에서 업데이트하고 쓰기 여부를 검증하도록 수정. 여러 번 시도해야 했던 로그인이 이제 첫 시도에 정상적으로 완료됩니다.
로그인 인증 강화 — executeWithAuth가 로그인 직후 자격 증명 전파 구간에서 일시적인 401 오류를 백오프(backoff) 방식으로 재시도합니다.
동영상 임베드가 카드 영역을 벗어나는 문제 수정 — 활성 동영상 플레이어에 유연한 비율 기반 앵커를 적용하여 간헐적으로 발생하던 오버플로를 해결했습니다.
패널 닫기 제스처 개선 — Stats, App Settings, About, Channels, Blocked Users, Channel Feed 패널의 스와이프-백 닫기를 왼쪽 엣지 스와이프로 교체. 드래그 속도와 관계없이 닫힘 동작이 자동 완료되어 이전의 뻑뻑한 느낌이 사라졌습니다.
앱 실행 화면에 인앱 로딩 인디케이터와 동일한 중앙 정렬 로딩 점 표시 추가
새 글 작성 시트: 커스텀 테마에서 메인 에디터와 코드 에디터 간 키보드 표시 방식 통일
회원가입 시트가 멤버십 등급, 설명, 가격 정보를 한꺼번에 불러온 뒤 화면을 표시 — 단계별 깜빡임 현상 제거
선호 채널(플로팅 바)은 이제 컨텍스트 메뉴를 통해서만 설정 가능하며, 첫 채널 방문 시 한 번만 자동 지정됨
People, Tools, Categories, Tags, Authors, Chronology를 한데 묶는 통합 분류 브라우저용 워드프레스 커스텀 플러그인을 새로 개발하여 적용했습니다. AJAX 기반 포스트 로딩, 무한 스크롤, 그리고 D3.js 네트워크 시각화를 통해 People과 Tools의 공출현(co-occurrence) 관계를 탐색할 수 있습니다.
Relationships 탭에 세 번째 시각화 뷰인 '시맨틱 스페이스(Semantic Space)'가 추가되었습니다. 아카이브에 수록된 모든 게시물을 인터랙티브 3D 포인트 클라우드로 펼쳐 보여주는 뷰로, 공간상의 거리가 곧 의미적 유사성을 뜻합니다. 작동 원리는 이렇습니다. 아카이브의 게시물 약 4,300개를 문장 변환 모델(all-MiniLM-L6-v2)에 통과시켜 제목과 본문을 384차원 임베딩 벡터로 변환합니다. 이 벡터는 단순한 키워드가 아니라 '의미'를 좌표로 표현하기 때문에, 예를 들어 제너레이티브 타이포그래피를 다룬 두 글은 공유 태그가 하나도 없더라도 서로 가까운 위치에 놓이게 됩니다. 이 벡터에서 두 가지 결과물을 뽑아냅니다. 하나는 코사인 유사도 기반의 '관련 게시물' 기능으로, 각 게시물마다 전체 아카이브와의 유사도를 미리 계산해 상위 매칭 항목을 경량 ID 인덱스로 저장합니다. 다른 하나는 UMAP으로 3D로 축소한 좌표를 포인트 클라우드로 렌더링한 '시맨틱 스페이스'로, Archives → Relationships에서 확인할 수 있습니다. 여기서 거리는 개념적 유사성이며, KMeans 클러스터링으로 자연스럽게 드러나는 주제별 그룹에 색상이 입혀집니다. 임베딩, 유사도 계산, 차원 축소 등 무거운 연산은 모두 Python 파이프라인에서 오프라인으로 처리되어 정적 JSON으로 저장되기 때문에, 실제 서비스에서는 미리 계산된 좌표와 관계 데이터를 읽어오기만 합니다. 요청 시점에 모델 추론이 전혀 일어나지 않는 구조입니다. 결과적으로 17년이 넘는 아카이브가 하나의 아이디어 지도로 탈바꿈합니다. 카테고리를 뒤지는 대신, 개념적 유사성을 따라 자유롭게 탐색할 수 있습니다.
세부 업데이트
모바일에서 네트워크가 세로 공간의 절반만 차지하던 문제를 수정했습니다.
시맨틱 스페이스 시각화에서 포인트 위에 커서를 올리면 툴팁 안에 썸네일이 표시되도록 업데이트했습니다.
모바일에서 네트워크가 세로 공간의 절반만 차지하던 문제를 수정했습니다.
Archives 플러그인의 JS 주입으로 인해 회원 가입 완료가 어려워지던 버그를 수정했습니다.
시맨틱 스페이스(Semantic Space) — CAN 아카이브를 3D 클라우드로 시각화합니다. 모든 포스트를 임베딩하고, UMAP으로 배치한 뒤 k-means로 클러스터링했습니다. 마우스를 올리면 제목이 표시되고, 클릭하면 연관 포스트를 탐색하거나 검색할 수 있습니다.
카운트 기준 목록 보기를 활성화했을 때 카테고리가 두 번 표시되는 버그를 수정했습니다.
항목을 알파벳순 또는 등록 수 기준으로 정렬할 수 있는 버튼을 추가했습니다.
이제 People, Tools, Chronology, Categories, Authors, Tags를 모두 포함합니다. 현재 존재하는 모든 택소노미를 망라한 것입니다. 'Relationships' 탭에서는 People과 Tools의 시각화를 확인할 수 있습니다.
멤버 전용 새 아카이브 페이지로 활용할 /archives-browser/ 템플릿을 새로 만들었습니다.
오프라인 생성: generate_embeddings.py가 각 CSV 내보내기 파일을 순회하며, 로컬 all-MiniLM-L6-v2 sentence-transformer 모델로 모든 포스트의 제목과 정제된 본문을 임베딩합니다. 이후 쌍별 코사인 유사도를 계산해 각 포스트와 가장 유사한 상위 5개 포스트를 추출하고, ID만 담긴 경량 파일 related-index.json(약 210KB, {post_id: [관련 id]})으로 저장합니다.
라이브 렌더링: 숏코드가 임베딩에서 해당 인덱스를 읽어 현재 포스트의 연관 ID를 조회한 뒤, WordPress 데이터(제목·썸네일·링크는 렌더링 시점에 테마의 content-grid 템플릿을 통해 가져옴)를 이용해 카드 형태로 표시합니다. 임베딩 연산이나 유사도 계산은 서버에서 전혀 실행되지 않습니다.
아직 멤버가 아니신가요? 멤버십에 가입하거나 후원을 통해 저희를 응원해 주세요. 개인 멤버십은 연간 $20(월 $2 미만)으로, 멤버 전용 커뮤니티 기능(Activity 등)을 모두 이용할 수 있습니다. 이 플랫폼과 커뮤니티가 계속 살아 숨 쉴 수 있도록 여러분의 도움이 필요합니다!
Illustrating members' interaction with the archives, and the consequent echoes of their actions captured by Activity. Created with p5js. Monthly update: The latest features, improvements, and fixes. Two months, four big wins — plus a well-earned two-week break in there. The Archives Browser got rebuilt from the ground up into a unified taxonomy explorer — People, Tools, Categories, Tags, Authors, Chronology — with D3.js network visualisations and the new Semantic Space: a Three.js 3D point cloud of all ~4,300 archive posts, embedded and UMAP-clustered so members can finally browse seventeen-plus years of CAN by meaning , not just tags. The API docs got the same glow-up — flat page to instant, interactive browser, task-based navigation, working cURL/Python/JS examples, and a first-ever documented Search API for our members to use. Activity iOS gets faster and more reliable under the hood — smarter caching, more reliable mentions and channels, cleaner credential handling, with a slick new in-app Search, sharper stats charts, an experimental Liquid Glass look for iOS 26, plus a big batch of feed and thread polish. Activity , our little (social) corner of the internet, has also just turned one 🎉 — 373 days since launch, and what started as a log has grown into the beating heart of the CAN community: 580 participants (232 of them via the API / iOS App), and 3,809 actions logged along the way — posts, likes, saves, comments, mentions, all the moments of our members engaging with each other's work. A year of iterations, one small step or update at a time, and a full iOS app built around it — we're incredibly proud of it 🏆. Here's to year two! Days (+63) 373 Participants (+53) 580 Actions (+492) 3,809 28/07/2026 CAN API Documentation The CAN Member API documentation is no longer one long page — it's now an interactive browser, matching the look and feel of the Archives browser (including your custom theme). Documentation is organised around what you want to do — Browse Activity, Post to the Feed, Manage Your Profile, Explore Members & Channels, Search, Browse Projects — rather than a flat list of endpoints. Click any endpoint and its full details open in a panel right below: parameters, response formats, and copy-ready examples. No page reloads — navigation is instant. Every endpoint now ships with working examples in cURL, plus Python and JavaScript for the common ones. The Search API is now documented for the first time — token-based search across articles, books, events, jobs, People/Tools/Tags, members, and activity. Filled in gaps from the old docs: session handling for WebViews, credential validation, the live URL blocklist, and a complete reference for the extra data fields activity responses can carry. Added a guide for building polling clients (menu bar apps, notification tools) that check for new activity without clearing your "new activity" indicator on the site. A full Version History of the API (v1.0 → v2.5) is now browsable, pinned at the bottom of the docs sidebar. Better troubleshooting: common 401/403/404 issues and the error response format are documented in the Introduction. 25/07/2026 Fixed the bug where Reports would not load data for certain posts. The post_views_count fallback (displayed with * ) remains in place as a safety net for pages Matomo genuinely has nothing for. 24/07/2026 Built and implemented CAN Cookie, an ultra-lightweight WP plugin for cookie acceptance notifications. Built with simplicity and performance in mind. Finally can get rid of the bloated "free" plugin that was there before. 22/07/2026 CAN Member API v2.5 Update Added GET /can/v1/projects endpoint — paginated, card-shaped list of published CAN articles (title, url, live_url, excerpt, thumbnail, author, people, tools, date) Supports page, per_page (default 25, max 50), tool, people and search parameters tool and people accept either a term slug or a display name Response envelope includes projects, total, total_pages and page Scoped to the Project category, covering editorial articles and member submissions alike; responses are cached for 10 minutes Added GET /can/v1/projects/tools endpoint — all Tools with at least one project, sorted by count, for discovering valid tool values CAN API Cache The new GET /can/v1/projects endpoint is now cached with its own timeout settings in Admin. Activity iOS V2.1.0 now available — Download New (optional) Liquid Glass effect on the floating bar. New Search view, use tokens to modify your search Update to stats, now with real-time data Stats view: 7-day charts (Activity Visits, API Sessions) no longer push 0-post days to the end of the chart — x-axis order now pinned to the full 7-day array regardless of which days have data Stats view: 7-day totals now summed locally from daily counts instead of using Matomo's total, which excludes today Stats view: fixed the "Analytics" title appearing vertically centered on screen during a cold launch before data loads, then jumping to the top once loaded Launch screen dot now renders as a solid color instead of appearing faded; in-app loading dot handoff adjusted to match Channels list: title, entry count, and chevron now vertically aligned on rows with a channel preview Watch app and widget now update instantly when entries are marked as read, instead of waiting for the next refresh cycle Article-card live embeds (video/HTML/audio/image/SVG) now check the source is reachable before embedding it — falls back to the normal article slideshow instead of a stuck loading state when the source is down New Search: added a search screen (sidebar and floating bar access, replacing the old Mentions floating-bar button) covering Activity entries and Members — token-based query builder with comma/Return-committed capsule terms, live preview while typing, recent-searches history, highlighted matched terms, tap-through to the thread view or member profile Fixed the "Apply Theme" button missing from code blocks in the thread (single entry) view, and a related bug where entries with only a code block (no image or link) wouldn't render the card at all there Search: fixed emoji and other special characters showing as raw codes (e.g. 😀 ) in Activity results; fixed the highlighted search term not updating colour after a theme change; recent searches raised to 15 with individual removal, retitled to "Recent"; token capsules restyled to match the New Entry sheet's suggestion chips; sidebar gap removed between Members and Saved New "Liquid Glass" toggle in App Settings → Appearance (disabled by default, only shown on iOS 26+ where the real glass effect is available) — when enabled, applies an iOS 26 glass effect to the floating bar, its filter/channel picker dropdowns, and the floating "@username" capsule; off by default keeps the existing flat background style App Settings: fixed the expand/collapse chevron on picker rows (Theme, Icon, Widget, Load More) sitting with extra right-side padding compared to other row indicators Search: fixed the on-screen keyboard staying open after tapping outside to close the Search panel Search: fixed the loading dots being cancelled out mid-search by a superseded (stale) request, and fixed them rendering off-screen once results already filled the visible area Main feed, filters, and channel feeds: after 3 consecutive auto-loaded pages, scrolling now pauses with a prompt showing how many entries have been read, offering Continue / Filters / Search — instead of loading indefinitely Fixed channel feeds ignoring the "Load More" entries-per-page setting in App Settings (was hardcoded to 25 regardless of the setting) Fixed missing bottom clearance in channel feeds when "Floating Bar Expanded" is on, so end-of-list content no longer renders behind the bar 19/07/2026 CAN API Cache Fixed activity threads being wiped on every unrelated site event (any new post/like/save), which made single-thread loads as slow as a full feed Thread caches are now invalidated only when a post inside them is edited/deleted, or a comment is added to that specific thread Fixed the comment-added thread invalidation key (was missing an underscore, so it silently matched nothing) Added a "Cached Threads" stat to the admin dashboard showing how many activity threads are currently cached 15/07/2026 Member Newsletter / Last Week The intro text is now included in the /last-week/ page. New member list is now generated, much easier to update in the newsletter rather than track them manually 28/06 - 12/07/2026 - Break ⛱️ 19/06/2026 Activity Web Fixed #channel detection for comments: in record_wp_activity() , channel parsing was gated to Activity Entry only; extended it to Comment / Term Comment / Event Comment so _can_activity_channels is now saved. Consolidated Matomo auth to a single token: set MATOMO_TOKEN to the API class's Super User token and removed the divergent token. Surfaced the three hardcoded secrets to the user for manual re-entry (two Matomo tokens — one now removed — and the Google Maps key). Migrated remaining secrets to admin settings: added an "API Credentials" section to Activity Logs → Settings Fixed the bug where the Mentions filter was not ordering activity logs correctly. 07/06/2026 Activity iOS 2.0.3 Bug fixes and Improvements Re-login reliability fix — Keychain now updates credentials in place on a duplicate (iCloud Keychain sync race) and verifies the write, so credentials and session token stick on the first login attempt instead of taking several tries Login auth hardened — executeWithAuth retries transient 401s with backoff during the brief post-login credential propagation window Video embeds no longer escape the card — active video player uses a flexible aspect-ratio anchor (matches the placeholder path), fixing the intermittent overflow Swipe-back to close panels (Stats, App Settings, About, Channels, Blocked Users, Channel Feed) replaced with a snappy left-edge swipe that auto-completes the close (no more sluggish drag) Launch screen now shows a centered loading dot matching the in-app loading indicator New Entry sheet: keyboard appearance now consistent between the main editor and code editor on the custom theme Registration sheet loads membership levels, descriptions, and prices together before reveal — no progressive flashing Preferred channel (floating bar) is now set only via the contextual menu; seeded once on the first channel visit Conditional haptic feedback added to floating-bar filter and channel selection Manage Account intro text top/bottom padding reduced to match the menu rows below it Empty-state tray icon ("No Entries") now uses body color 04/06/2026 Archives Browser Built and implemented a new custom built wordPress plugin providing a unified taxonomy browser for People, Tools, Categories, Tags, Authors, and Chronology with AJAX-driven post loading, infinite scroll, and D3.js network visualisations for People and Tools co-occurrence relationships. Semantic Space (3D embedding visualisation) A third Relationships viz tab ("Semantic Space") renders all posts as an interactive 3D point cloud where spatial proximity = semantic similarity. Under the hood every post in the archive (≈4,300 articles) is passed through a sentence-transformer model (all-MiniLM-L6-v2) that encodes its title and body into a 384-dimensional embedding — a vector whose position captures meaning rather than keywords, so two articles about, say, generative typography land near each other even with no shared tags. From these vectors we derive two things: cosine-similarity rankings that power the new semantic "Related Posts" (each post precomputed against every other, top matches stored as a lightweight id index), and a UMAP projection down to 3D that we render as an interactive point cloud — the "Semantic Space" in Archives → Relationships — where proximity is conceptual distance and KMeans clustering colours the emergent themes. The heavy lifting (embedding, similarity, dimensionality reduction) is all done offline in a Python pipeline and baked into static JSON, so the live site just reads precomputed coordinates and relationships — no model inference at request time. It effectively turns seventeen-plus years of archive into a navigable map of ideas, where you can explore by resemblance instead of hunting through categories. Details fixed the mobile issue when the networks would only take up half the vertical space. Updated the Semantic Space viz to include thumbnails on rollover, inside tooltips. fixed the mobile issue when the networks would only take up half the vertical space. fixed the bug where the js injection by the Archives plugin was making it difficult to complete registration. Semantic Space — CAN archives as a 3D cloud. Every post embedded, mapped with UMAP, clustered with k-means. Hover for titles, click to trace relatives + search. Fixed the bug that shows categories twice when list by count is enabled. Buttons added to list things alphabeticaly or by the count of entries Now includes People, Tools, Chronology, Categories, Authors and Tags. These are all the taxonomies that exist. The Relationships' tab shows People and Tools visualizations. New template created /archives-browser/ to become a new Archive page for Members Offline generation: generate_embeddings.py runs over each CSV export, embedding every post's title + cleaned content with the local all-MiniLM-L6-v2 sentence-transformer model, then computes pairwise cosine similarity to find each post's top 5 most similar posts — saved as a tiny ids-only related-index.json (~210 KB, {post_id: [related ids]}). Live rendering: the shortcode reads that index from embeddings, looks up the current post's related ids, and renders them as cards using WordPress data (titles/thumbnails/links fetched at render time via the theme's content-grid template) — no embeddings or similarity math ever run on the server. Not a Member yet? Please support us by becoming one or by donating . With the personal membership priced at only $20 per year (less than $2 a month), you unlock a heap of community features (like Activity) available only to Members. Please help us keep this platform and community alive and thriving ! Join the Community Support by Donating See the previous update here → V6 Development Log (05/2026) . All dev-log updates are here .