Arkive

Phase 3 Additions: System Design Handover

As of
Version1.0.0
Kindplan
Length2,661 words, about 12 min
Tagssystem-designhandoverone-repoi18nsynergy

Retired 2026-11-06. The pass settled all twelve questions with Pratik and wrote the answers into the live pages (D249 to D260): Public site, Hosting and domains, Design tokens, Native UI, Internationalization, the Synergy overview, Runtime validations and Dependency flow. Two answers changed the scope: the public site is temporary (D256), and Mantine leaves the App in a new lesson M1 (D255). This page stays as the record of the questions.

The system design was last written for Synergy alone: Synergy 1.3.0, from arkive #25, with the violations work (#33, #34) folded in since. Phase 3 has grown after that. Lesson 0 merges Arkive into Sidekick, the site lessons S1 to S7 rebuild the public site and move it to ossidekick.com, and the i18n lessons I1 and I2 replace @sidekick/copy (arkive #38 to #50). Those decisions live in PRD, spec and plan pages, and the system design pages they touch still describe the old shape.

This page is the input for one system-design pass. It lists what was added, where the current design is now wrong or silent, and the questions the pass has to settle with Pratik, each with a recommendation. The pass writes its answers into the system design pages; this page then retires.

Read first

What was added

AdditionDatumsBuilt in
One repo: content/docs, content/writings, apps/www, apps/app, @sidekick/content, licencesD213 to D217Lesson 0, PRs 1 to 3
The site type-checked with astro check and hosted on the sidekick-www Worker with branch previewsD220, D231, D233Lesson 0, PRs 4 and 5, hosting
No published URL changes, tested by the sitemap diffD221, D234Every step
Project vocabulary in 07-glossary/, no CONTEXT.mdD226Lesson 0, PR 1
English only but i18n-ready: next-intl, use-intl, colocated catalogs, @sidekick/i18n, logical CSS, lintD240 to D248I1, I2
The new site: one 58rem breakpoint, milestone tiles, Writings-only feed, components in contentD223 to D225, D227S1 to S6
The cutover: ossidekick.com, app.ossidekick.com, arkive.blog 301s for a year, no App linkD218, D219, D222, D235S7

Order inside Phase 3: Lesson 0, lessons 1 to 13, Checkpoint 3a, I1, I2, S1 to S7, then 3b.

Where the design is now wrong or silent

Grouped by area. Each item names the page, what it says today and what has been decided since. Items marked (decide) need a question below; the rest are updates the pass can write directly.

Repo and package map

  • Dependency flow (1.6.0). The apps row names apps/web and "later apps/cli"; there is no apps/www and no content/. Foundation lists copy, which I1 deletes, and not i18n, which I1 creates. dependency-flow.svg shows the same. (decide: Q1, Q2, Q3)
  • React as peer dependency (D58) says apps/web owns the installed React. Two apps now install it: apps/app, and apps/www, which renders content components with renderToStaticMarkup (D227). Both take react from the pnpm catalog; the page should say so.
  • eslint-plugin-boundaries. apps/* is one app element, so apps/www would get an app's rights: the registry, features, platform packages and @sidekick/core, which holds the database client. content/ matches no element. (decide: Q1, Q2)
  • Synergy overview. The package table and synergy-packages.svg name apps/web; D201 says every label comes from packages/copy. (decide: Q4, Q5)
  • Lesson 1's move list still moves copy into packages/foundation/, and I1 deletes it a few weeks later. That is fine, but the pass should say it is expected, so nobody "fixes" lesson 1 to skip the move.

Hosting and domains

  • Vercel (D54): root directory apps/web, and the stable vercel.app URL as NEXT_PUBLIC_APP_URL. Since then: root directory apps/app (Lesson 0, PR 2), Skip deployment on for content-only commits (D215), and from the cutover app.ossidekick.com as a DNS-only CNAME, with NEXT_PUBLIC_APP_URL and Supabase's Site URL changed on the same day (D218).
  • No page describes the public site's hosting. The Worker (D220), the URL rule (D221), the zero-downtime cutover and the arkive.blog redirect rules (D222) live only in the PRD and spec. (decide: Q9)
  • Technology stack (1.0.0) has one hosting row (Vercel) and no row for the public site (Astro, Cloudflare Workers) or i18n (next-intl, use-intl).
  • System overview diagram (architectural-overview.svg) shows only the App's tiers. The public site is a second, static surface with no API calls.
  • Turbo env. The shared build task lists the App's environment variables (NEXT_PUBLIC_APP_URL, Supabase, Stripe), so a change to any of them also misses the site's cache. Small, but @sidekick/www#build can declare its own env when it gets its inputs line in Lesson 0.
  • Node version files. Sidekick's CI reads .nvmrc (24); the spec gives the site .node-version 24 because Cloudflare reads that file. Two files for one version should be stated as deliberate, or one should go.

Code quality and tooling

  • Prettier (D56): .prettierignore gains content/ (D216) and the files the site ships as given, and the root gains prettier-plugin-astro. The page's script examples also predate prettier --check ..
  • ESLint does not reach the site yet. apps/www has no lint script, and nothing decides how .astro files are linted. When it does run, the Pages Router ban in eslint.config.js matches apps/*/src/pages/** with selector Program, so it fails every Astro page. D248's no-literal-string must cover the site's user-facing code. (decide: Q8)
  • Stylelint. lint:styles globs only *.module.css, and selector-class-pattern requires camelCase. The site's stylesheet is global with kebab-case classes (.prose, .wide), and stylelint-use-logical (D246, D248) has to see it and tokens.css. (decide: Q7)
  • Shared tsconfig (D50) says every package extends tsconfig.base.json; the site extends astro/tsconfigs/strict. (decide: Q8)
  • CI. The labeler workflow (D215) is the first one that needs pull-requests: write; CI is read-only today. pnpm typecheck gains astro check and the build gains the privacy and datum gates (D231). The catalog check (D248) becomes a Turbo task. Testing layers should say which of these are checks and which are tests.

Styling and the design system

  • One token source. D227 moves tokens.css into @sidekick/ui as "the one token source". The App styles with Mantine's theme and CSS modules (D47, the Mantine page), and nothing says whether the Mantine theme reads the same variables. (decide: Q6)
  • CSS modules everywhere (D47) says "all styling uses CSS modules without exception". The site's S1 stylesheet is global, and only its content components use CSS modules. (decide: Q7)
  • The one breakpoint (D223) is written as a site rule. The App uses Mantine's breakpoints. The pass should say that D223 binds the site only, or extend it to the App on purpose.

The public site

  • The site has no system design page. Its pipeline (vault.mjs, entries.ts, tree.ts, the remark and rehype plugins), the publish: true gate, the privacy and datum gates, retired entries and "As of" are written only in the site's agent notes (CLAUDE.md, becoming apps/www/AGENTS.md). (decide: Q9)
  • Components in content (D227): a remark plugin loads a component by name, validates its props, renders it with renderToStaticMarkup and replaces the fenced block. Two things are unsettled. Where the name-to-component map and the props schemas live (zod is the house validator, D49). And whether a CSS module imported by a component rendered from inside a remark plugin is processed and emitted by Astro's build, since that component is outside Astro's component graph. (decide: Q10)
  • One interface (D48) forbids pages that read the database directly. The site reads Markdown files at build time, which is not user data, so it does not break D48, but no page says so. It matters later: datums move into the database at Taxila beta, and then the site's datum index would read through the API like any other consumer.
  • Live paths. Violations and exceptions cites the arkive repo's CLAUDE.md and src/lib/datums.mjs, which become apps/www/AGENTS.md and apps/www/src/lib/datums.mjs. Lesson 0's step 9 does not list this page.

Internationalization against the rest of the design

  • @sidekick/i18n's layer. It is domain-free, so foundation. But foundation packages never import each other, and ui primitives have words of their own (a close button's accessible name). (decide: Q3)
  • Whose namespace a type label is in. D201 keys a type's label as synergy.type.sandbox-notes.note. D243 says a package's strings live in its own catalog under its own namespace, so the label "Note" belongs to the sandbox-notes provider, not to Synergy. (decide: Q4)
  • How the Sneak Peek Link gets its words. The component is host-agnostic: the host injects the transport, and a third party can render it. A useTranslations call needs a provider above it, which Sidekick's pages get from next-intl and a third party does not have. (decide: Q5)
  • Validation messages. /contracts shares zod schemas between server and browser (D199). Zod's default messages are English sentences, which breaks keys-never-copy (D201) once they reach an API response. (decide: Q11)
  • The person's locale and time zone. D242 reads the locale from "their setting" and D245 shows dates "in the person's time zone", but the profile has neither field. next-intl also needs an explicit timeZone, or server-rendered and browser-rendered dates can differ. (decide: Q12)
  • Amounts with a currency (D245) are a rule for every future table, so it belongs in the database conventions (syncable tables) as well as on the i18n page.
  • Other consumers of keys. The API returns keys, so apps/cli, bots and third parties need the catalogs to show labels. Nothing in Phase 3 needs it; the pass should record it as a known gap, not design it.
  • Retiring Centralized Copy. I1's docs PR retires D36, rewrites D23 in best practices and fixes the architecture invariants (plan). The pass only confirms that list is complete.

Security and auth

  • The App's sign-up is off and the site has no App link until Open House (D219). The authentication page should record the sign-up setting and the Supabase redirect URLs that change at the cutover (Site URL, the vercel.app URL, localhost and the preview pattern kept).

Questions for the pass

One at a time, recommendation first, Pratik decides. Write each answer into the page it changes, with a Decision History row and a log row.

  1. What may apps/www import? Recommended: a new boundaries element type, site (apps/www), that may import only foundation packages, and that nothing imports. The public site is static and public; it must never reach core's database client, the registry or a feature, and lint should make that impossible rather than unlikely. Runner-up: keep it an app and rely on review.
  2. Is content/ an element? Recommended: no. It holds Markdown and no code, so ESLint ignores it, and the site reads it through vault.mjs by path, not by import. The @sidekick/content dependency exists for Turbo's hashing and Vercel's skip (D215); the dependency flow page should say exactly that, so nobody adds code to it.
  3. Where does @sidekick/i18n live, and may ui use it? Recommended: packages/foundation/i18n, and ui primitives take their words as props, so the foundation rule stays flat and ui stays usable in a host that has no catalogs. Runner-up: one explicit exception, ui may import i18n, written as a boundaries rule.
  4. Who owns a type's label? Recommended: the provider. Each provider's catalog holds its types' labels (sandbox-notes.type.note); Synergy's catalog holds only Synergy's own words (link states, the seeded relation types, error codes). This follows D243 and keeps "deleting a feature deletes its words". D201 is rewritten to say so, and its synergy.type.<provider>.<type> example goes.
  5. How do the Sneak Peek Link's labels reach it? Recommended: the component calls useTranslations('synergy') from use-intl, not next-intl, and the host wraps it in an intl provider. In the App that is next-intl's provider, which is use-intl's; a third party wraps it in use-intl's IntlProvider with Sidekick's catalog. The pass should check that one copy of use-intl serves both, the way D58 does for React. Runner-up: labels injected as a prop, like the transport.
  6. Is tokens.css the App's token source too? Recommended: yes, as the target, and not built yet. tokens.css is the one source for the site and for ui from S1; the App's Mantine theme reads the same CSS variables when the App is next restyled, and until then the page says the App is not on the tokens. A second source is what D227 set out to prevent.
  7. What does D47 cover? Recommended: CSS modules for every component, in the App, in packages and in the site's content components. The site may also have one global stylesheet for its chrome and prose. Stylelint gets a second config block for the site: kebab-case classes, and stylelint-use-logical on every CSS file in both apps and ui.
  8. How do the site's TypeScript and lint join the repo's? Recommended: the site keeps astro/tsconfigs/strict and adds the base options Astro does not set, and D50 names the site as its one exception. In I2, apps/www gets a lint script with eslint-plugin-astro, and the Pages Router ban is narrowed to the App's folders.
  9. Where does the site's design live? Recommended: two new pages. A Public site page in functional-design/ (the content pipeline, gates, routes, retired entries, milestones, the feed, components, the JS budget), with apps/www/AGENTS.md keeping only the short rules. And a Hosting and domains page in non-functional/ that holds the App on Vercel (D54, revised in place), the site on the Worker (D220), the domains and the cutover (D218, D222), with the Vercel page folded into it.
  10. How are content components built and styled? Recommended: a component map in apps/www (name, component, zod props schema), the way the feature registry collects manifests, with a build failure on an unknown name or bad props (D238). Before the design commits to CSS modules here, the first lesson that builds a component spikes whether Astro emits a CSS module imported from inside a remark plugin. If it does not, the fallback is to render the block through an Astro wrapper component.
  11. How do validation errors stay keys? Recommended: /contracts sets a zod error map that turns every issue into a key and parameters ({ code: 'too_small', path, minimum }), the API returns those, and the App translates them with ICU messages. The runtime validations page (D49) records the rule.
  12. Where do locale and time zone come from before a setting exists? Recommended: no profile columns yet, since a nullable column is cheap to add later. I1 sets next-intl's timeZone explicitly in i18n/request.ts (UTC, or the browser's time zone sent in a cookie, decided in I1's brief) so server and browser agree. The columns arrive with the settings screen.

Constraints to keep

  • Individual first: one person, every setting optional (D1).
  • One interface for every consumer (D48).
  • Scope by the cost to add later: decide now only what would force a migration or a rewrite later.
  • Pratik types every change; the coach explains. The pass writes docs, not code.
  • Datum ids are global and never renumbered. New datums start at D249; check with node scripts/check-datums.mjs --next.
  • Retired pages (the one-repo map and its tickets, the Synergy map and tickets) are records and are never edited. New decisions go into live pages only.
  • A page whose decision lands in a later lesson describes the target and says what the code does until then, as Centralized Copy does now.

Done when

  • Every item above is either updated in its page or answered by a question, and every question's answer is in a live page with a Decision History row and a row in the decisions log.
  • The Synergy plan's "Handover from system design" table gains a row for each answer that changes a lesson, and Lesson 0's step 9 lists any extra live paths found.
  • npm run build passes, with the privacy and datum gates.
  • This page is marked status: deprecated.
Arkive

Index

Notes, decisions, and progress on my journey as I build Project Sidekick — built in the open; written as it happens.

Tags (145)

View

241 entries.

As ofTitleKind
2026-11-06Design Tokenssystem-design css design-systemspec
2026-11-06Hosting and Domainssystem-design deployment vercel cloudflare domainspec
2026-11-06Native UIsystem-design css design-system mantinespec
2026-11-06Public Site: System Designsystem-design site one-repospec
2026-11-06Internationalizationsystem-design content i18nspec
2026-11-06Synergy Lesson 0: One Repoplan phase-3 task monorepo one-repo git cloudflareplan
2026-11-06Decisions Logdecisionlog
2026-11-06Synergy Lesson 1: Layer Folders and Lintplan phase-3 task monorepo eslintplan
2026-11-06Synergy: System Designsystem-design synergyspec
2026-11-06Agent Guideai-coding agent gateway agent-guidance rls supabase drizzle api react prettierguidance
2026-11-06CSS Modulessystem-design css eslint stylelintspec
2026-11-06Dependency Flowsystem-design monorepo clispec
2026-11-06ESLint Plugin Boundariessystem-design code-quality-check eslintspec
2026-11-06Non-Syncable Tablessystem-design database offlinespec
2026-11-06Prettier at Repo Levelsystem-design code-quality-check prettierspec
2026-11-06Runtime Validationssystem-design typescriptspec
2026-11-06Shared tsconfigsystem-design code-quality-check typescriptspec
2026-11-06Syncable Tablessystem-design database offline soft-deletespec
2026-11-06Synergyplan living-plan phase-3 synergy rls postgresql api graphplan
2026-11-06Technology Stacksystem-design supabase drizzle postgresql nextjs typescript turborepo pnpm vercelspec
2026-11-05One Repoprd feature synergy one-repoprd
2026-11-05Synergy Checkpoint 3a: Prove the Store, Plan 3bplan phase-3 checkpoint guidanceplan
2026-11-05Synergy - Feature Specificationsprd spec synergyprd
2026-11-05Overview of Synergyprd feature synergyprd
2026-11-05Approve Buildssystem-design monorepo nextjs pnpmspec
2026-11-05Centralized Copysystem-design contentspec
2026-11-03Commands and Environmentai-coding command environment agent-guidance prettier pnpm cliguidance
2026-11-01Synergy Lesson 10: Save Call, Anchorsplan phase-3 task synergy apiplan
2026-11-01Synergy Lesson 11: Delete and Restoreplan phase-3 task synergy databaseplan
2026-11-01Synergy Lesson 12: Tagsplan phase-3 task synergy apiplan
2026-11-01Synergy Lesson 13: Race Testsplan phase-3 task synergy testing postgresqlplan
2026-11-01Synergy Lesson 2: Per-Package Migrationsplan phase-3 task database drizzle testingplan
2026-11-01Synergy Lesson 3: Entity Index and Version Logplan phase-3 task synergy database rls postgresqlplan
2026-11-01Synergy Lesson 4: Sandbox Providers and the First Routesplan phase-3 task synergy feature-system apiplan
2026-11-01Synergy Lesson 5: Outbox, Status and Versionsplan phase-3 task synergy database postgresqlplan
2026-11-01Synergy Lesson 6: Links, Relation Types and Cyclesplan phase-3 task synergy graph postgresql apiplan
2026-11-01Synergy Lesson 7: Staleness Dots and the Roll-Upplan phase-3 task synergy apiplan
2026-11-01Synergy Lesson 8: Lists and Supersedeplan phase-3 task synergy graph postgresqlplan
2026-11-01Synergy Lesson 9: Save Call, Mentionsplan phase-3 task synergy apiplan
2026-11-01Violations and Exceptionssystem-design synergyspec
2026-11-01Content Sequencesystem-design synergyspec
2026-11-01Tombstone Visibilitysystem-design synergy rlsspec
2026-11-01Anchors in Contentsystem-design synergy anchorsspec
2026-11-01Capture External Contentsystem-design synergy taxilaspec
2026-11-01Lexicon Highlightingsystem-design synergy taxilaspec
2026-11-01Mentions and Link Lifetimesystem-design synergyspec
2026-11-01Synergy Store Choicessystem-design synergy postgresqlspec
2026-11-01Testing Layerssystem-design testing vitest playwrightspec
2026-11-01Relationshipsprd feature synergyprd
2026-11-01Scope and Phasesprd feature synergyprd
2026-11-01Best Practice Rulessystem-design code-quality-check eslintspec
2026-11-01Stay on ESLint, Revisit Oxlintsystem-design eslint typescriptspec
2026-11-01API Versioningsystem-design apispec
2026-11-01App Runtime for Drizzlesystem-design database drizzle postgresqlspec
2026-11-01Best Practicesai-coding-harness agent-guidance drizzle api react pnpm css offline embedding soft-deleteguidance
2026-11-01Corepacksystem-design monorepo pnpmspec
2026-11-01dotenv CLIsystem-design config clispec
2026-11-01Edge Runtimesystem-design security supabasespec
2026-11-01Env Vars in Turbo JSONsystem-design monorepo turborepo vercelspec
2026-11-01Flat Configsystem-design code-quality-check eslintspec
2026-11-01Force Dynamicsystem-design nextjs supabasespec
2026-11-01GraphQL and Relaysystem-design api graphql relayspec
2026-11-01Installation at Workspace Levelsystem-design code-quality-check typescript pnpmspec
2026-11-01Living Implementation Planplan living-plan taxila zinsser alter-ego war-room factory parrot core-driveplan
2026-11-01Module Resolution: Bundlersystem-design code-quality-check typescriptspec
2026-11-01Profile Creation Postgres Triggersystem-design security postgresql api authenticationspec
2026-11-01Public API Onlysystem-design api rls authentication clispec
2026-11-01tsupsystem-design code-quality-check eslintspec
2026-11-01Turboreposystem-design monorepo turborepo pnpmspec
2026-11-01Architectural OverviewSidekick's architectural overview — an API-first platform tuned for solo developerssidekick project technical architecturedocument
2026-10-31Build mind palaceprd value-proposition specificationprd
2026-10-31Exponential Evolutionprd value-proposition specificationprd
2026-10-31Remember everythingprd value-proposition specificationprd
2026-10-31Entities and the Entity Indexprd feature synergyprd
2026-10-31Foundationsprd feature synergyprd
2026-10-31Keeping Links Trueprd feature synergyprd
2026-10-31Sneak Peek Linkprd feature synergyprd
2026-10-30Search and Backlinksprd feature synergyprd
2026-10-30Tagsprd feature synergyprd
2026-10-29Cost to Add Laterprinciple product engineeringguidance
2026-10-27Individual Firstprinciple productguidance
2026-10-27One Interfaceprinciple api cliguidance
2026-10-24Gatekeeper Lesson 7 Walkthrough: The Ops Package and Entitlements Grantbuild walkthrough phase-2 feature-system database postgresql cliguidance
2026-10-24Gatekeeper Lesson 8: Close-Outplan phase-2 task guidanceplan
2026-10-24Gatekeeper Walkthroughbuild walkthrough phase-2 api-guard feature-system rls authenticationguidance
2026-10-24Gatekeeper Lesson 3 Walkthrough: Entitlementsbuild walkthrough phase-2 feature-system database drizzle rls postgresql testingguidance
2026-10-24Gatekeeper Lesson 4 Walkthrough: withApiGuardbuild walkthrough phase-2 api-guard rls api authentication testingguidance
2026-10-24Gatekeeper Lesson 5 Walkthrough: Request and Auth-Failure Loggingbuild walkthrough phase-2 api-guard observability eslint testingguidance
2026-10-24Gatekeeper Lesson 6 Walkthrough: /api/health and Guard Verificationbuild walkthrough phase-2 api-guard api nextjs testingguidance
2026-10-24Gatekeeper Lesson 2 Walkthrough: resolveApiCallerbuild walkthrough phase-2 api-guard authentication supabase testingguidance
2026-10-24Gatekeeper Build Rules and Target Designplan phase-2 api-guard rls api authentication typescript guidanceplan
2026-10-24Gatekeeper Lesson 1 Walkthrough: Feature Registrybuild walkthrough phase-2 feature-system typescript monorepo testingguidance
2026-10-24Gatekeeper Lesson 7 (Task 2.10): Dev Entitlement Seed Scriptplan phase-2 task feature-system database postgresqlplan
2026-10-24Front Door: Hardening Walkthroughbuild walkthrough pre-2 rls supabase drizzle postgresql testing eslintguidance
2026-10-24Backlogged / Unplannedplan living-plan backlog feature-system taxila zinsser alter-ego parrot rls supabaseplan
2026-10-24Gatekeeperplan living-plan phase-2 api-guard rls api authentication feature-systemplan
2026-10-24Terminalplan living-plan phase-9 taxila api-guard rls api authentication cliplan
2026-10-24With API Guardsystem-design security api-guard rls api authentication typescriptspec
2026-10-23Gatekeeper Lesson 3 (Tasks 2.8, 2.9): Entitlements Table and getEnabledFeaturesplan phase-2 task feature-system database drizzle rls postgresql testingplan
2026-10-23Gatekeeper Lesson 4 (Tasks 2.2, 2.3): withApiGuard With withRLSplan phase-2 task api-guard rls api security testingplan
2026-10-23Gatekeeper Lesson 5 (Tasks 2.4, 2.5): Request and Auth-Failure Loggingplan phase-2 task api-guard observability eslintplan
2026-10-23Gatekeeper Lesson 6 (Tasks 2.11, 2.12): /api/health and Guard Verificationplan phase-2 task api-guard api nextjs testingplan
2026-10-23Centralizedsystem-design observability api authenticationspec
2026-10-23Database and Securityai-coding database security agent-guidance api-guard rls drizzle api react repository-patternguidance
2026-10-23Error Handlingsystem-design observability api-guard rls supabase api nextjs react aispec
2026-10-23Front Door: Row-Level Security Walkthroughplan phase-1.1 rls database supabase drizzle postgresql api typescriptguidance
2026-10-23Groundwork Checkpoint B Walkthroughbuild walkthrough phase-0 checkpointguidance
2026-10-20Gatekeeper Lesson 2 (Task 2.1): resolveApiCallerplan phase-2 task api-guard authentication supabase nextjsplan
2026-10-18Gatekeeper Lesson 1 (Tasks 2.6, 2.7): FeatureManifest and ALL_FEATURESplan phase-2 task feature-system typescript monorepoplan
2026-10-18Registrysystem-design feature-systemspec
2026-10-17Core Drive to Be Practical and Grounded in Realitysystem-design feature core-drive prdprd
2026-10-17MVP Scopeprd mvp specification core-drive taxila war-room factory alter-ego zinsser parrot api cli native-appprd
2026-10-17An AI Writing Coach and an Appsystem-design prd feature zinsser aiprd
2026-10-17Overview of Taxilasystem-design prd feature taxila ragprd
2026-10-16Front Door: Hardeningplan pre-2 foundation security database testingplan
2026-10-16Server Actionssystem-design nextjs rls api authenticationspec
2026-10-14Profiles Schemasystem-design security rls authenticationspec
2026-10-14Tag Taxonomyai-coding agent-guidance taxonomy discoveryguidance
2026-10-13Anatomy of a Core Drive Entrysystem-design prd feature core-driveprd
2026-10-13Core Drive Stores Personal and Sensitive Informationsystem-design prd feature core-drive taxila graphprd
2026-10-13Core Drive Stores Values Onlysystem-design prd feature core-drive war-room factoryprd
2026-10-13Core Drive to Foster Reflections and Learningssystem-design prd feature core-driveprd
2026-10-13Groundwork: Checkpointsplan phase-0 api nextjs typescript eslint turborepo pnpmplan
2026-10-13Model Routingprd vercel ai embedding routingprd
2026-10-13Overview of Core Drivesystem-design prd feature core-drive factory ai alter-egoprd
2026-10-13Source Attributionprd feature alter-ego aiprd
2026-10-12Command Paletteprd ux specificationprd
2026-10-12MVP Design Objectiveprd ux specificationprd
2026-10-12Be the Best Version of Yourselfprd value-proposition specificationprd
2026-10-12Make the Right Behavior Easierprd value-proposition specificationprd
2026-10-11Solve Problems and Build Thingsmotivation creativityjournal
2026-10-11A Personal Discoverymotivation discipline bucket-list ambition entrepreneurship sidekickjournal
2026-10-11Commercialize Sidekickmotivation finance freedomjournal
2026-10-10Realityprinciple reality pragmatism survivalguidance
2026-10-10Seek Closureprinciple productivity happiness purposeguidance
2026-10-08No Do-Oversprinciple core-drive execution productivityguidance
2026-10-08Pragmatismprinciple practical pragmaticguidance
2026-10-04Protect Your Mind and Your Timeprinciple productivity automation minimalismguidance
2026-10-03Focus Funnelprinciple core-drive productivityguidance
2026-10-02Fuel Career Growthmotivation career ambitionjournal
2026-10-02Learnmotivation learning ai ragjournal
2026-09-19Actual Stateglossary terminologyglossary
2026-09-19Algorithm of Lifeglossary terminology nextjsglossary
2026-09-19Alter Egoplan living-plan phase-6 taxila zinsser alter-ego war-room factory core-driveplan
2026-09-19Alter Egosystem-design prd feature taxila alter-ego factory aiprd
2026-09-19API Firstsystem-design api clispec
2026-09-19Architectural Driverssystem-design offlinespec
2026-09-19Architecture Invariantsai-coding architecture invariant agent-guidance api nextjsguidance
2026-09-19Asynchronoussystem-design rag embeddingspec
2026-09-19Atomicsystem-design rag embeddingspec
2026-09-19Authenticationsystem-design security taxila api authentication pwa mobile clispec
2026-09-19Background Jobssystem-design vercel background-jobspec
2026-09-19Build for Today, Designed for Futuresystem-design offlinespec
2026-09-19Bundle Everythingsystem-design monorepospec
2026-09-19Capacitorsystem-design native-app nextjs mobile offlinespec
2026-09-19Centralizedsystem-design feature-systemspec
2026-09-19Centralized and Client-Agnosticsystem-design security rls api authentication clispec
2026-09-19CLIsystem-design cli apispec
2026-09-19Context Assemblersystem-design ai war-room factory api-guardspec
2026-09-19Coresystem-design feature-systemspec
2026-09-19Core Drive and Taxilasystem-design prd feature taxila core-driveprd
2026-09-19Driving Forces and Key Featuressystem-design api offlinespec
2026-09-19Embedding Status Fieldsystem-design rag embedding typescriptspec
2026-09-19Enforced Conventionssystem-designspec
2026-09-19Essential and Ideal Stateglossary terminologyglossary
2026-09-19Evolvabilitysystem-design rls offlinespec
2026-09-19Factorysystem-design prd feature factoryprd
2026-09-19Feature Package Workai-coding feature monorepo agent-guidance feature-systemguidance
2026-09-19Front Doorplan living-plan phase-1 api-guard rls supabase drizzle postgresql apiplan
2026-09-19Front Door Task 1.1plan phase-1 task supabase postgresql api authentication nextjsplan
2026-09-19Front Door Task 1.10plan phase-1 task rls supabase drizzle postgresql authentication typescriptplan
2026-09-19Front Door Task 1.11plan phase-1 task api-guard rls supabase api authentication nextjsplan
2026-09-19Front Door Task 1.14plan phase-1 task react pnpm mantine cssplan
2026-09-19Front Door Task 1.17plan phase-1 task supabase authenticationplan
2026-09-19Front Door Task 1.18plan phase-1 task api-guard rls supabase drizzle postgresql authenticationplan
2026-09-19Front Door Task 1.2plan phase-1 task supabase drizzle postgresql authentication nextjs pnpmplan
2026-09-19Front Door Task 1.3plan phase-1 task supabase nextjs typescriptplan
2026-09-19Front Door Task 1.4plan phase-1 task supabase authentication nextjs react typescriptplan
2026-09-19Front Door Task 1.5plan phase-1 task rls supabase authentication typescriptplan
2026-09-19Front Door Task 1.6plan phase-1 task rls supabase drizzle authentication typescript offlineplan
2026-09-19Front Door Task 1.7plan phase-1 task drizzle postgresql typescriptplan
2026-09-19Front Door Task 1.8plan phase-1 task turborepo pnpmplan
2026-09-19Front Door Task 1.9plan phase-1 task rls supabase drizzle postgresql authenticationplan
2026-09-19Front Door Tasks 1.12 and 1.13plan phase-1 task supabase api authentication nextjs react typescriptplan
2026-09-19Front Door Tasks 1.15 and 1.16plan phase-1 task supabase authentication nextjs react mantineplan
2026-09-19Front Door: Original Planplan phase-1 rls supabase drizzle postgresql authentication nextjsguidance
2026-09-19Front Door: Row-Level Securityplan living-plan phase-1.1 rls supabase drizzle postgresql pnpm soft-deleteplan
2026-09-19Groundworkplan living-plan phase-0 nextjs typescript eslint prettier turborepo pnpmplan
2026-09-19Groundwork Checkpoint Aplan phase-0 checkpoint nextjs typescript turborepo pnpm cliplan
2026-09-19Groundwork Checkpoint Bplan phase-0 checkpoint eslint prettier turborepo pnpmplan
2026-09-19Groundwork Checkpoint Cplan phase-0 checkpoint nextjs pnpmplan
2026-09-19Groundwork Checkpoint Dplan phase-0 checkpoint api-guard rls supabase drizzle api authenticationplan
2026-09-19Historic Stateglossary terminologyglossary
2026-09-19Idempotent APIsystem-design api idempotencyspec
2026-09-19Independent Deploymentssystem-design feature-systemspec
2026-09-19Informationglossary terminologyglossary
2026-09-19Instrumentationsystem-design observability vercel embeddingspec
2026-09-19Isolationsystem-design feature-systemspec
2026-09-19Lifecycle and Traceabilityprd governance planningguidance
2026-09-19Many Clients and Many Consumerssystem-design api pwa ai rag clispec
2026-09-19May Become Part of Taxilasystem-design core-drive taxilaspec
2026-09-19Middlewaresystem-design security api authenticationspec
2026-09-19Migrationsystem-design database drizzle pnpmspec
2026-09-19Model Router Contractsystem-design ai model-routing provider-agnostic embeddingspec
2026-09-19Never Mutate Outside API Layersystem-design apispec
2026-09-19Notesai-coding-harness agent-guidance nextjs eslint pnpm cssguidance
2026-09-19Observabilitysystem-design api-guard api authentication vercel observabilityspec
2026-09-19Observablesystem-design rag embedding observabilityspec
2026-09-19Offline Readysystem-design api pwa offline soft-delete idempotencyspec
2026-09-19Open Houseplan living-plan phase-11plan
2026-09-19Parrotsystem-design prd feature parrotprd
2026-09-19Pocketplan living-plan phase-8 taxila alter-ego nextjs vercel pwa mobileplan
2026-09-19Prefer JSON Configsystem-design monorepospec
2026-09-19Present Stateglossary terminologyglossary
2026-09-19Productivity Modulesystem-design prd feature war-roomprd
2026-09-19PWAsystem-design pwa offlinespec
2026-09-19RAGsystem-design rag ai embeddingspec
2026-09-19Repository Clientsystem-design database rls supabase drizzle api repository-patternspec
2026-09-19Request Flowsystem-design monorepo api offlinespec
2026-09-19Retryablesystem-design rag embeddingspec
2026-09-19Row-Level Securitysystem-design security rls drizzle offlinespec
2026-09-19Soft-Delete Supportsystem-design database soft-deletespec
2026-09-19Start Todayprinciple core-drive execution consistencyguidance
2026-09-19State Representationsystem-design api aispec
2026-09-19Storefrontplan living-plan phase-12 api offlineplan
2026-09-19Structured Response Attributionsystem-design ai structured-streaming source-attribution citationspec
2026-09-19System Overview Diagramsystem-designspec
2026-09-19Taxilaplan living-plan phase-4 taxila api-guard rls drizzle api authenticationplan
2026-09-19Tiered Context Modelsystem-design core-drive domain situation war-room factory ai embeddingspec
2026-09-19Tiptap Requirementsystem-design rag embeddingspec
2026-09-19Use Navigation Hooksystem-design nextjsspec
2026-09-19War Roomplan living-plan phase-7 war-room factory core-drive rls api offlineplan
2026-09-19Watchtowerplan living-plan phase-10 api-guard rls api authentication nextjs offlineplan
2026-09-19Zinsserplan living-plan phase-5 taxila zinsser api mantine ai embeddingplan
2026-07-19Project Sidekick - A Bird’s Eye ViewAn introduction to Project Sidekick. What is it? What problem does it solve? Why am I building it?sidekick project essaydocument
2026-07-10Building in the Margins of RealityProject kick-off post and a confessional essay about my past attempts and their failures. Why start now? What do I hope to achieve?sidekick project essayjournal
2026-05-29Config Files Explainedbuild walkthrough phase-0 turborepo typescript eslint prettierguidance
2026-05-29Front Door: Original Walkthroughbuild walkthrough phase-1 supabase drizzle authenticationguidance
2026-05-29Groundwork Checkpoint A Walkthroughbuild walkthrough phase-0 checkpointguidance
2026-05-29Groundwork Checkpoint C Walkthroughbuild walkthrough phase-0 checkpointguidance
2026-05-29Groundwork Checkpoint D Walkthroughbuild walkthrough phase-0 checkpointguidance