KATURA
Your browser is not supported. Please update your iPad to the latest iOS version, or visit us on a newer device.
How to update your iPad Skip to main content JOIN THE WORLD OF KATURA Be the first to discover new collections, exclusive events, and the stories behind our legendary creations.
KaturaβCrafting timeless treasures since 1999.
Are You a Jewelry Business? E-commerce, CRM, marketing, payroll, analytics, and AI β everything you need to run a modern jewelry business, all in one platform.
Β© 2026 KATURA. All rights reserved.
πΊπΈ English EN πΊπΈ USD $
Software Updates Β· KATURA | KATURA
Live from GitHub Β· Refreshed continuously
Software Updates Every change we ship to katura1999.com β features, fixes, security patches, the lot. Pulled straight from our private GitHub repository so you can see exactly what was built and when.
By the numbers Lines of code
751,820
across the entire repo (equivalent to 37.0 King James Bibles)
Characters written
29.13M
29,126,188 total characters
Updates pushed
1,573
exact commit count on main
Current version
v1.15.73
build 1573 Β· 6d58963
Database models
366
across 47 schema files β most SaaS platforms have 20β50
API endpoints
854
individually routed β Stripe's public API has ~400
Translated strings
79,872
every string, in 24 languages
System permutations
10^257
2^854 endpoint combinations β more than atoms in the observable universe (10^80)
Project age
4mo 29d
since Dec 14, 2025
Pre-AI dev hours
25.1K hrs
751,820 lines Γ· 30 LOC/hr β equivalent to 12.0 years (senior engineer, no AI)
With-AI dev hours
6.3K hrs
4Γ AI productivity multiplier (2024β2026 studies) β equivalent to 783 days
Equivalent firm cost
$6,479,120
live ticker Β· $60/hr ongoing
Hours estimated from source line count at 30 LOC/hr (industry benchmark for production-quality TypeScript/React without AI assistance), with a 4Γ multiplier for AI-assisted development per published 2024β2026 enterprise studies. Equivalent Firm Cost uses a $250/hr loaded billable rate reflecting a premium engineering firm building enterprise-grade SaaS β and ticks up live, because the project is still being actively built.
Commit history
1,573 updates pushed Showing page 14 of 33 Β· 651β700 of 1,643 fetched
Friday, February 27, 2026 5 updates pushed
Perf 6:06 PM Β· ZRosserMcIntosh
switch to Turbopack + migrate Sentry to instrumentation pattern Roll back cpus: 2 β 1 (caused GC thrashing on 8GB Vercel, 2x slower) Migrate Sentry from deprecated sentry.*.config.ts files to: src/instrumentation.ts (server + edge init) src/instrumentation-client.ts (browser init) Remove --webpack flag, use Turbopack (compile: 111s β 43s) Add onRouterTransitionStart for Sentry navigation tracking Replace deprecated disableLogger with bundleSizeOptimizations Add import-in-the-middle/require-in-the-middle for OTel compat Update BUILD_OPTIMIZATION.md with results Perf build 5:43 PM Β· ZRosserMcIntosh
3 quick wins to reduce Vercel build time ~60s 1. Remove duplicate prisma generate β postinstall already handles it, no need to run it again in the build script (~7.5s saved) 2. Remove generateStaticParams from [locale]/layout.tsx β with localePrefix:'never', locale-prefixed URLs are never hit directly. Drops SSG from 2,074 β 370 pages (78Γ24 locales eliminated, ~20s saved) 3. Bump cpus: 1 β 2 β Vercel has 4 cores / 8GB, cpus:1 leaves 3 idle. Now uses 2 workers for SSG and compilation (~15-20s saved) Bonus: Remove deprecated eslint config from next.config.ts (Next.js 16 no longer supports it, was generating a warning every build) See docs/deployment/BUILD_OPTIMIZATION.md for full analysis. Feature builder 5:11 PM Β· ZRosserMcIntosh
resolve all 8 critical site builder issues src/app/api/saas/website/products/route.ts src/app/api/saas/website/form-submit/route.ts src/components/website-builder/media-picker.tsx prisma/schema.prisma (SaasFormSubmission model) src/components/website-builder/section-renderer.tsx src/app/platform/admin/design/builder/builder-client.tsx src/app/t/[slug]/[[...path]]/page.tsx (headerConfig/footerConfig/tenantSlug) src/lib/saas/website-builder.ts (instagram username prop) Feature platform 4:36 PM Β· ZRosserMcIntosh
promote Site Builder to top-level sidebar tab + comprehensive audit Added Site Builder as dedicated sidebar item under Store group (Globe icon) Created /platform/admin/site-builder as new top-level route Updated Design & Theme page to link to new route Updated builder back button to return to dashboard Created SITE_BUILDER_AUDIT.md documenting: All 26 sections and their status Competitive comparison vs Shopify and Weebly 21 broken/non-functional items categorized by severity Cross-contamination and route issues Prioritized roadmap (Phase 1-3) Update seo 2:31 PM Β· ZRosserMcIntosh
remove locale prefix from canonical URLs, block developer pages from indexing Fixed canonical URLs on 8 pages that incorrectly included locale prefix (e.g. /en/about β /about), which caused 'discovered but not indexed' in Google Search Console since localePrefix is set to 'never' Pages fixed: about, earrings, necklaces, rings, bracelets, faq, jewel-vox/[slug], trunkshow Added developer layout.tsx with noindex/nofollow robots metadata Added /developer to robots.txt disallow for both wildcard and Googlebot Thursday, February 26, 2026 2 updates pushed
Update 2:25 PM Β· ZRosserMcIntosh
match header bg to page deep blue (#030712) on dark-themed pages Fix header colour mismatch on /design-your-ring (#0a0a0f -> #030712) Also fixes all /developer/* sub-pages (includes() instead of endsWith()) Style 2:11 PM Β· ZRosserMcIntosh
match 'CRAFTING BEAUTY SINCE 1999' section bg to footer deep blue (#030712) Wednesday, February 25, 2026 1 update pushed
Feature 10:33 PM Β· ZRosserMcIntosh
add city carousel developer experiment New interactive experiment at /developer/city-carousel Rotating ticker of cities in footer display font (font-display serif, 0.15em tracking) Live controls: edit city list via drag-and-drop, adjust scroll speed with presets Preview matches "JOIN THE WORLD OF KATURA" styling Defaults to: ATLANTA, MIAMI, NEW YORK, LOS ANGELES, SΓO PAULO, RIO DE JANEIRO Pure CSS @keyframes animation with pause/resume and reset controls Includes implementation notes for production integration into footer.tsx Listed first in developer lab index with MapPin icon Monday, February 23, 2026 8 updates pushed
11:10 PM Β· ZRosserMcIntosh
Diamond Forge wireframe + dot-matrix rewrite & deep blue #030712 backgrounds Rewrite with wireframe + dot matrix dual-layer architecture Edge particles get 2.5x gravity, 1.8x settle rate, 1.3x size, 1.4x alpha Wireframe lines drawn after particles settle (25%+ threshold) Separate edge/surface spatial grids for particle targeting New Wireframe control panel: edge ratio, edge gravity, line opacity, line width Default 4000 particles, spawn rate 18 All presets updated with higher particle counts Footer: bg-primary β bg-[#030712] on all pages Design-your-ring: all 9 #0a0a0f β #030712 (body, html, canvas, bg classes) Design-your-ring layout: wrapper div updated Matches developer page deep navy color Update 2:17 PM Β· ZRosserMcIntosh
brighten side diamond images on design-your-ring + add diamond dimension controls to Diamond Forge Design-your-ring: side diamond opacity raised from [0.45,0.7] to [0.75,1.0] with brightness(1.1) filter so they match the hero round diamond Diamond Forge: added Table %, Crown Height, Pavilion Depth, Girdle Thickness sliders under Diamond Shape section New DiamondConfig fields: tablePercent, crownPercent, pavilionPercent, girdlePercent buildDiamondCloud() now accepts proportion parameters instead of hardcoded values Sunday, February 22, 2026 14 updates pushed
Chore 9:14 PM Β· ZRosserMcIntosh
major repo organization + Prisma fixes Fix directUrl in schema.prisma + prisma.config.ts (was hanging on db push) Fix DATABASE_URL_UNPOOLED to use direct host (db.<ref>.supabase.co) Add Sprint/SprintTask/SaasApiKey relations for MCP PR compatibility DB pushed and in sync 9,328 β 7,072 lines (removed unused/redundant models) Zero drift with production database Move 8 root .cjs scripts β scripts/translations/ Organize 80+ flat scripts into 12 categorized subdirectories Move root migrations/ β scripts/db-migrations/applied-sql/ Move pedro/ β docs/reference/pedro-analysis/ Remove tracked log files (already gitignored) Consolidate docs: 47 β 25 directories Exclude docs/** and scripts/** from TypeScript compilation Update package.json script paths Update README project structure Update docs/INDEX.md Update DEPLOYMENT_CHECKLIST.md migration paths Feature 7:13 PM Β· GepetoinTraining
MCP collaboration infrastructure (Phases 0-3) Added SprintStatus enum, Sprint model, SprintTask junction model Added userId field on SaasApiKey for developer identity attribution Saturday, February 21, 2026 7 updates pushed
Update 11:45 PM Β· ZRosserMcIntosh
move middleware to src/, delete proxy.ts that was overriding custom middleware Subdomain requests showed the Katura homepage (only intl middleware ran) x-matched-path was /[locale] (intl middleware rewrites to locale route) No x-tenant-id headers were set The /t/[slug] rewrite never happened Update 4:20 PM Β· ZRosserMcIntosh
exclude /t/ from intl middleware β root cause of tenant subdomain 404 Remove temporary /api/debug/headers endpoint Remove /mw-debug-test diagnostic from middleware Keep canonical origin fix for subdomain rewrites Designer plan: POS/payments feature migration Pricing page: explicit Designer plan capabilities Wildcard domain API + setup script
Friday, February 20, 2026 13 updates pushed
11:26 PM Β· ZRosserMcIntosh
use cookies for middleware diagnostics (headers stripped by Vercel) 11:12 PM Β· ZRosserMcIntosh
add tenant routing diagnostic headers to middleware Feature 7:02 PM Β· ZRosserMcIntosh
subdomain storefront routing, 15 new site builder sections, Designer pricing fixes Middleware rewrite: tenant subdomains ({slug}.katura1999.com) now rewrite to /t/[slug]/[[...path]] New tenant storefront route renders website builder pages with full theming Header with nav, footer with Powered by Katura, preview banner with K99 disclaimer Coming Soon fallback for unpublished websites Services: services-grid, services-pricing, services-process, services-booking Portfolio: portfolio-gallery, portfolio-before-after, portfolio-spotlight Content: rich-text, image-gallery, video-player, banner-cta, stats-counter, pricing-table, timeline, feature-cards, logo-grid
3 new dimension presets: Deep Pavilion, Flat Table, Old Mine Cut
All presets and reset button pass dimension values correctly Feature developer 1:58 PM Β· ZRosserMcIntosh
Diamond Forge β round brilliant cut particle experiment Table: octagonal flat top (57% of girdle diameter) 8 star facets from table edge to crown break 8 bezel (kite) facets on the crown 16 upper girdle facets Girdle band: thin ring at widest point (2% thickness) 8 main pavilion facets (the fire) 16 lower girdle facets Culet: near-point at bottom cat-forge 2:12 AM Β· ZRosserMcIntosh
subtle whiskers, longer curvy tail, 10k max particles Whiskers: 3 per side β 2 per side, 10 pts each β 4 pts each, shorter length (35β22). Far fewer cloud points so particles don't clump on whiskers. Tail: single Bezier β two-segment S-curve. Extends much further back and arcs elegantly forward at the tip. 180 pts β 340 pts across both segments for a smooth flowing shape. MAX_PARTICLES: 6000 β 10000 Count slider max: 5000 β 10000 Particle buffers remain Float64Array (handles 10k fine) Update cat-forge 1:03 AM Β· ZRosserMcIntosh
redesign as elegant walking cat in profile Body: Catmull-Rom spline with natural arch from chest to hip Neck: tapered spline connecting body to head Head: refined oval tilted forward with muzzle and nose Ears: upright cones angled slightly outward Legs: four Bezier tubes in walking stride β front-left extended forward, front-right planted, rear-left pushing off behind, rear-right coming forward Tail: long flowing Bezier curve arcing gracefully upward Shoulder/hip muscle volume for natural anatomy Whiskers extending from muzzle in profile Feature developer 12:46 AM Β· ZRosserMcIntosh
Cat Forge β particles coalesce into a 3D cat Body, head, haunches: ellipsoid sampling (Fibonacci sphere) Ears: cone sampling with perpendicular basis vectors Tail: cubic Bezier tube with tapered radius Whiskers: linear point arrays Eyes, nose, muzzle, paws: small ellipsoids ~1800 point cloud with spatial grid (30-unit cells) 3Γ3Γ3 neighbor lookup for O(1) nearest-neighbor Float64Array struct-of-arrays (same as Ring Forge) Pre-rendered glow sprite cache (D3 color/gradients) Skip-frame depth sort (every 3rd frame) HiDPI canvas with ResizeObserver Perf 12:32 AM Β· ZRosserMcIntosh
rewrite Ring Forge with D3 + struct-of-arrays particle engine Replace object-array particles with Float64Array struct-of-arrays layout (better CPU cache locality, ~3x faster physics loop) Replace ctx.shadowBlur per particle with pre-rendered glow sprites (radial gradient baked into offscreen canvas, stamped with drawImage) This alone is ~100x faster β shadowBlur forces software compositing Skip-frame depth sort (every 3rd frame, imperceptible visual diff) Pre-compute trig once per frame instead of per-particle Inline all torus math (no function call overhead in hot loop) Quantized glow sprite cache to reduce canvas allocations HiDPI-aware canvas with ResizeObserver (was basic resize listener) D3 scaleLinear for depth-based fade calculation D3 color for proper alpha manipulation in glow gradients Reduced wireframe segments (48β36 ring, 24β18 tube) Added live FPS counter to stats overlay Max particle cap raised to 6000 (was unbounded) Added d3 (v7.9.0) + @types/d3 as dependencies Feature 12:17 AM Β· ZRosserMcIntosh
API keys management in Developer Dashboard + MCP in admin nav Add API Keys as 3rd tab in Developer Dashboard (Site Topology | Integration Testing | API Keys) Full CRUD: create with developer assignment, scope/rate config, revoke, delete Developer identity display ('Pedro's Claude') in key table Show-once key banner with copy-to-clipboard on creation Stats row: total keys, active, developer-assigned, revoked MCP API Quick Reference section with curl examples Extended createApiKey() to accept userId and rateLimit options Extended listAllApiKeys() to include user relation data API route POST now accepts userId and rateLimit fields Added MCP (Bot icon) to admin sidebar navigation Added mcp translation key to EN + PT locales MCP dashboard 'Manage API Keys' button links to /admin/developer?tab=api-keys Developer dashboard reads ?tab= URL param to auto-select tab Team members dropdown fetches from /api/admin/users Added scripts/test-mcp.sh for MCP endpoint testing
Added back-references on User, Task, Project, SaasTenant
Extended auth middleware (withApiAuth) with userId/userName on requests
Updated validateApiKey to include user relation for developer identity
Created Zod schemas for all MCP inputs/outputs (src/lib/validations/mcp.ts)
Created MCP utility layer (src/lib/mcp/index.ts) with response helpers, activity logging, and developer display name resolution
Created AI tools module (src/lib/mcp/ai-tools.ts) for prioritization, risk scoring, and subtask generation
GET projects, projects/[id], tasks, tasks/[id]
GET sprints, sprints/[id], ideas, columns
POST create_task, PATCH update_task, PUT move_task
POST add_comment, create_sprint, add_task_to_sprint
POST tasks/[id]/analyze, score, subtasks
GET /api/mcp/manifest β full 17-tool catalog for Claude auto-discovery
Added 10 board events (task.*, sprint.*, idea.*, project.created)
Added 'board' category to webhook event system
Updated webhook-events tests (90/90 pass)
Created slack-formatter.ts β Block Kit formatters for 10 event types with 4-channel routing (dev, sprint, claude, alerts)
Created slack.ts β Slack Bot API client, HMAC-SHA256 request verification, event dispatch
Created /api/integrations/slack/route.ts β slash command handler: /katura task create|list, /katura sprint status|velocity
Created /admin/mcp page β MCP Dashboard with tool catalog (reads from manifest endpoint), API key viewer, Slack status card, activity feed
Created /admin/board/sprints page β Sprint Board with expandable sprint cards, progress bars, velocity chart, summary stats
Both pages use existing shadcn/ui design system (Card, Badge, Tabs)
Created docs/mcp/MCP_INFRASTRUCTURE.md β technical reference
Created docs/mcp/API_REFERENCE.md β full endpoint documentation
Created docs/mcp/SLACK_INTEGRATION.md β setup checklist and config
Created docs/plans/mcp-collaboration-infrastructure.md β architecture plan
Updated docs/INDEX.md with MCP section Security 7:10 PM Β· ZRosserMcIntosh
P0 fixes β close 6 critical vulnerabilities 1. DELETE /api/debug/mw-check β publicly exposed tenant IDs and internal headers 2. FIX check-email PII leak β remove firstName and isReturningCustomer from response 3. ADD Zod validation to /api/checkout (503-line financial route) 4. ADD Zod validation to /api/create-payment-intent (880-line payment route) 5. ADD Zod validation to /api/gift-cards/purchase (gift card payment route) 6. FIX rate limiter fail-open β now fails CLOSED in production when Redis unavailable All three financial routes now validate request bodies through Zod schemas with typed constraints (email format, string lengths, number ranges, enums). Rate limiter denies requests in production if Redis is down instead of silently allowing unlimited throughput via ephemeral in-memory Map. Feature 6:43 PM Β· ZRosserMcIntosh
add Ring Forge experiment β particles coalesce onto 3D torus via gravitational attraction Full 3D toroidal physics: particles spawn from random spread, attract toward torus surface, settle and orbit Proper perspective projection with depth sorting and z-fade Wireframe torus overlay with major/minor ring circles Drag to rotate, auto-rotation controls, ring tilt Space to explode particles off the surface, R to reset 8 presets: Champagne Ring, Platinum Band, Rose Gold Shimmer, Diamond Dust, Nebula Forge, Ember Ring, Tight Band, Wide Orbit 8 color palettes matching Katura metals Settle tracking with glow intensifying as particles lock onto surface Trail rendering, turbulence, spawn rate, damping controls 10th experiment in developer library Feature 5:10 PM Β· ZRosserMcIntosh
add 6 developer experiments β blob playground, typography specimen, material explorer, color system, particle sandbox, cursor trails Blob Playground: animated gradient blobs with palette presets, blend modes, mouse attraction, live canvas Typography Specimen: interactive type tester with size/weight/tracking controls, Katura brand specimens, alphabet grid Material Explorer: precious metals selector with properties, diamond shape browser, composition preview Color System: champagne palette, metal gradients, surfaces, text opacity scale, WCAG contrast checker Particle Sandbox: canvas particle system with gravity, friction, connections, 8 presets (Star Field β Mouse Emit) Cursor Trails: mouse-following trails with 5 styles (ribbon/dots/glow/dashes/comet), sparkles, rainbow, 8 presets Updated developer library index with all 9 experiments Feature 4:51 PM Β· ZRosserMcIntosh
shooting stars lab, fix diamond visibility, fix product OG meta Add /developer/shooting-stars-lab with interactive controls: sliders for star count, speed, trail length, colors, nebula effects 7 presets (Deep Space, Meteor Shower, Aurora Night, etc) copy config JSON, reset, reshuffle, keyboard shortcut [H] Fix decorative diamonds on /design-your-ring hero: boost opacity from 0.15-0.3 to 0.45-0.7 raise z-index from z-0 to z-20 (above overlays) increase size from w-12/14 to w-14/16 add drop-shadow glow effect Fix product page OG metadata for social sharing: ensure absolute image URLs for og:image add width/height/siteName to openGraph images add twitter:card summary_large_image with product image fallback to katura-og.png when no product image Update developer library index with new experiment Update 4:12 PM Β· ZRosserMcIntosh
add seed to cap table initialization + reseed action Added seed_cap_table_katura.sql to the initialization flow Added 'reseed' POST action for re-running seed without full init Ran seed against production DB β cap table now populated: October Skies Benediction LLC (DBA Katura 1999) Class A Common: 10M authorized / 8.5M issued Preferred (Blank Check): 5M authorized / 0 issued 2026 Equity Incentive Plan: 1.5M reserved Lee Wiser McIntosh: 8.5M shares (100% founder) Feature 3:47 PM Β· ZRosserMcIntosh
developer lab + shooting stars + cap table initialization Developer Library: /developer is now a curated experiment index page moved existing ring builder to /developer/ring-builder created /developer/shooting-stars β full-screen constellation visual with twinkling stars and shooting star animations (adapted from Stella Real Estate ConstellationVisuals) Cap Table Initialization Fix: CapTableData.company type now allows null (matches API response) CapTableInner shows 'Initialize Cap Table' button when company is null or _migrationRequired is true (instead of crashing) Added initialize_tables POST action that reads migration SQL files from migrations/cap-table/ and executes them in order One-click initialization: creates all tables, enums, indexes, then creates the default company (October Skies Benediction LLC) Update 3:30 PM Β· ZRosserMcIntosh
data isolation & design-your-ring hero updates Data Isolation (Sprint 1 fixes): admin/team/company-structure: exclude platform tenant owners api/admin/audit: scope audit logs and filter dropdown to Katura only admin dashboard: storefront-scope all queries (orders, products) admin/services: scope service requests and team members admin/assets: exclude platform tenant owners from team members docs: add TENANT-DATA-ISOLATION-AUDIT.md documenting all 8 vectors Design-Your-Ring Hero Updates: remove Sparkles/star icon overlay behind round diamond add 8 diamond shapes in desktop-only zig-zag pattern (left/right flanking) update pricing translations to clarify band & metal setting included replace Image component with img tag in zig-zag for stability Update 2:44 PM Β· ZRosserMcIntosh
cap-table graceful empty state + Store/SaaS toggle on SaaS sidebar 1. Cap table: API returns valid empty state when cap_* tables don't exist yet (migration not run), instead of crashing with 500. Layout header guards against null company. 2. SaaS sidebar: Added the same Store/SaaS context switcher toggle that the store sidebar has, so users can always switch between dashboards without the control disappearing. Update 2:32 PM Β· ZRosserMcIntosh
messages page CSP + graceful empty state, BRL per-carat pricing 1. CSP: Added https://*.vercel.live to script-src, connect-src, frame-src to cover Vercel preview toolbar subdomains 2. Messenger: Channels API now returns empty [] instead of 500 when Chat tables don't exist yet (migration not run) 3. Design-your-ring: BRL shows 'R$ 4.000' (Quatro Mil por Quilate) instead of the awkward USD conversion of R$ 5.220 Update 2:04 PM Β· ZRosserMcIntosh
promoted customers must accept invite before becoming active Previously, promoting a CUSTOMER with an existing password would immediately mark them isActive=true and skip the invite email. Now promoted users always start inactive and always receive an invite email β they must explicitly accept before their employee account is active. The reset-password flow already handles setting isActive=true on invite acceptance. Feature 3:10 AM Β· ZRosserMcIntosh
allow promoting existing customers to team members Updated /api/admin/invite (used by the invite form) Updated /api/admin/users (used by direct API calls) Frontend toast shows promotion-specific message Update 2:09 AM Β· ZRosserMcIntosh
add /admin to intl middleware skip list β fixes 404 on /admin The /admin route lives at src/app/admin/ (not under [locale]), but was being sent through the intl middleware which internally rewrites to /{locale}/admin, causing a 404. Added /admin to the same skip block as /platform, /investors, /signout, and /t/. 1:32 PM Β· ZRosserMcIntosh
fix diagnostic path - avoid double underscore prefix 1:22 PM Β· ZRosserMcIntosh
add /__mw-debug endpoint to prove middleware runs on subdomain Update 1:11 PM Β· ZRosserMcIntosh
use canonical origin for tenant subdomain rewrites The middleware rewrite was using request.nextUrl.clone() which preserves the subdomain hostname. Vercel's edge router may not find the /t/[slug] route when the hostname is a tenant subdomain. Fix: construct an absolute URL with the canonical domain origin so the rewrite always resolves against the main domain's routes. Also removes debug cookies/headers from previous debugging session. 12:07 PM Β· ZRosserMcIntosh
add /api/debug/headers endpoint for request diagnostics 11:58 AM Β· ZRosserMcIntosh
cookie-based middleware diagnostics v2
3 new categories: Services, Portfolio, Content
Products β Portfolio Items for Designer plan
Emails β Client Emails for Designer plan
Comparison table shows plan-aware labels
Updated description to emphasize services & appointments Update 6:42 PM Β· ZRosserMcIntosh
resolve Vercel OOM build failure β reduce memory usage Set NODE_OPTIONS='--max-old-space-size=7168' in build scripts Add output: 'standalone' to reduce bundle size and memory Add experimental.workerThreads=false, cpus=1 to serialize compilation Force dynamic rendering on admin + platform admin layouts (skip pre-render of 222 pages) Remove generateStaticParams from collections page (use ISR on-demand instead) These 222 admin/platform pages were being analyzed at build time unnecessarily Chore 6:06 PM Β· ZRosserMcIntosh
organize migrations into category folders, categorize docs, add comprehensive README saas/ (13) β multi-tenant platform, plans, storage, Stripe Connect payroll/ (17) β payroll engine phases 001-017 payroll-hr/ (4) β compensation, commissions, contractors ecommerce/ (4) β commerce tables, currency, site settings products/ (9) β variants, video, views, SKU, collections orders/ (7) β order management, ShipStation, attachments crm/ (6) β customers, reviews, competitor features cap-table/ (6) β equity, compliance, subsidiaries integrations/ (5) β Nivoda, Stuller, Wise, AI translation user-fields/ (6) β user table extensions analytics/ (3) β hero tracking, time tracking marketing/ (2) β Brevo, marketing models messaging/ (3) β internal messenger ios-mobile/ (2) β push notifications, iOS rls/ (4) β row level security policies security/ (1) β 2FA, login security inventory/ (1) β asset tracking wholesale/ (2) β wholesale system schema-sync/ (2) β full schema syncs 243 models, 492 API routes, 1400+ files, 326K+ lines Architecture diagram, tech stack, all modules documented SaaS pricing table, env vars, dev/deploy instructions Feature 4:58 PM Β· ZRosserMcIntosh
Designer plan, drag-and-drop plan feature editor, data-driven pricing page, storage metering Add Designer & Bench Jeweler plan (/mo) β portfolio + invoicing only, no e-commerce Create SaasPlanFeature model with 28 features across 6 categories (core, sales, marketing, operations, enterprise, ai) Build admin plan feature editor at /admin/saas/plans with toggle matrix, collapsible categories, inline limit editing Rebuild /platform/pricing as fully data-driven from DB with cascading 'Everything in X, plus:' layout Add public /api/platform/pricing endpoint for pricing data Add /api/admin/saas/plan-features API (GET features+plans, PATCH plan features/limits) Create storage metering dashboard at /admin/saas/storage with per-tenant usage, overage calculations Change storage overage to flat $1/GB/mo across all plans Add Storage Metering link to SaaS admin sidebar SQL migration: 20260220_plan_features_designer.sql (run in Supabase) Feature 4:21 PM Β· ZRosserMcIntosh
editable subdomain slug, sticky preview banner with K99 disclaimer, storage pricing plan Settings: slug field is now editable in Store Details section with live availability check API: /api/platform/settings/check-slug validates format, reserved words, and uniqueness API: PATCH /api/platform/settings store section now handles slug changes with full validation Preview: banner is now fixed/sticky at top with 'built with K99 Platform β not associated with Katura 1999 Brand' Preview: spacer div offsets content below the fixed banner Docs: storage pricing plan with per-plan allocations, overage pricing, profitability analysis Feature admin 3:59 PM Β· ZRosserMcIntosh
Shopify-level settings page β 8 sections, 17 new DB fields Added 17 new fields to SaasTenant: contactEmail, contactPhone, legalName, industry, description, addressLine1/2, city, state, postalCode, country, socialLinks (JSON), metaTitle, metaDescription, faviconUrl, weightUnit, orderPrefix SQL migration: migrations/20260220_tenant_settings_fields.sql Section-based PATCH with full validation per section Industry, weight unit, timezone, currency, locale validation Social links JSON cleaning (strips empty values) SEO character limit enforcement Update 1:14 PM Β· ZRosserMcIntosh
blog tenant isolation, preview store page, parity audit v2 Blog: Add tenantId filters to SaaS blog, Jewel Vox admin, public Jewel Vox, and blog API to prevent cross-tenant article leaks (4 files) Preview: Create /platform/preview/[slug] store preview page with products, collections, hero, and preview banner β fixes 404 from admin header link Audit: Write ADMIN_PARITY_AUDIT_V2.md β all 12 blocked models now have tenantId in schema but 11 pages still have stale security comments preventing real queries. Overall parity ~55% (up from ~25%) Feature 3:52 AM Β· ZRosserMcIntosh
mobile-optimize docs sidebar + PT/ES article translations Docs sidebar is now a slide-over drawer on mobile (lg breakpoint) Hamburger menu button fixed at top-left on small screens Backdrop overlay with blur when sidebar is open Auto-close sidebar on route navigation Added top padding to main content on mobile for hamburger button clearance getArticleContent() now accepts locale parameter, returns { content, isTranslated } Created docs-content-pt.tsx with PT translations (8 articles: Getting Started, Payments, Products) Created docs-content-es.tsx with ES translations (8 articles: Getting Started, Payments, Products) Falls back to English with translated amber notice banner when article not yet translated Notice banner supports 10+ languages with native-language messaging Internal links in translated content point to correct locale URLs Feature 3:28 AM Β· ZRosserMcIntosh
design-process i18n (PT/ES), footer jewelry promo section (24 langs), Employee Login champagne/rose gold glow Created design-process-i18n.ts with full EN/PT/ES translations for all 8 phases Refactored design-process-client.tsx to accept locale prop for i18n Added jewelry business promo section to footer with Gem icon, heading, description, and 2 CTAs Added footer.platform.* translation keys to all 24 language files Styled Employee Login link with champagne/rose gold color and subtle glow effect Feature 3:07 AM Β· ZRosserMcIntosh
blog editor CMS for /admin/saas/blog with full CRUD, sidebar link, API route, accessibility fixes 2:27 AM Β· ZRosserMcIntosh
Add 6 new integration logos, organize carousel by category, 2x Google Play New logos: Android, Google Analytics, Vercel, Apple Wallet, xAI, Apple Developer Carousel now grouped by category: 1. Payments & Financial (Stripe, Wise, Plaid, Visa, Amex, Discover, Apple Pay, Pix) 2. Jewelry & Gemological (Nivoda, IGI, GIA, Stuller) 3. AI & Intelligence (OpenAI, Anthropic, xAI) 4. Apple Ecosystem (Apple Developer, App Store, Apple Wallet) 5. Google & Android (Google Play 2x, Android 2x, Google Analytics) 6. Infrastructure & Dev (AWS, Supabase, Vercel, GitHub, Replit) Google Play and Android logos rendered at 2x size (h-20 w-44 vs h-12 w-28)