Skip to content
OTF Kit logoOTF

— Changelog

Everything we shipped.

Reverse chronological. Real ship dates. The infra, the kits, the SDK, the AI configs — and what’s next.

Alpha

The OTF SDK is in Public Alpha.

Components are stable enough to ship in production — we use them in our own kits — but a few APIs may still polish before stable. The full-stack Kits (SaaS Dashboard, Fitness) are production-ready and built to last; buy with confidence.

  1. improvedfixed

    Template pages show the real product, plus a sharper landing and clean favicons

    The SaaS Dashboard and Fitness Kit pages now render real product screens — iPhone-framed carousels, floating component collages, and a live kit-deck bundle — alongside a landing hero pass and a favicon + broken-link cleanup.

    • Rebuilt the SaaS Dashboard and Fitness Kit template pages with real product screens — iPhone-framed carousels, real screenshots, and tech-stack icons in place of flat placeholders.
    • Added floating component collages and a live kit-deck bundle section to the template showcase — rendered UI, not static images.
    • Gave the landing hero a premium pass on its six floating components and reinvented the Compatibility and Component Teaser sections.
    • Turned the founding-100 ribbon into a floating pill with a fine-tick progress meter.
    • Fixed every favicon asset to render properly transparent — no more white box behind the icon.
    • Wrapped the /badges page in the standard nav + footer and linked it; replaced dead otf.sh links with otf-kit.dev.
    • Moved analytics to a first-party /ingest path so it keeps reporting behind ad-blockers.
    View the kit pages
  2. featshipped

    Two new components — Shimmer Button + Floating Label Input — and the SDK is now public

    A premium animated CTA variant for primary actions, a polished material-style text field for forms, and the @otfdashkit/sdk source repo is now open on GitHub.

    • New Button variant: <Button variant="shimmer"> — continuous conic-gradient sweep behind the surface plus a diagonal gloss that streaks across on hover. Reserve for primary CTAs and pricing pages — loud + premium, not for in-product UI. Cross-platform parity with @otfdashkit/ui-native via the same shimmer variant key.
    • New form primitive: <FloatingLabelInput> — label sits inside the field at rest, floats up and shrinks on focus or when filled. Inline error + hint slots, aria-describedby wired automatically. Web uses CSS peer-state transitions; mobile uses a Reanimated 4 spring with useReducedMotion() gating.
    • Storybook stories live at ui.otf-kit.dev — primitives-button--shimmer plus forms-floatinglabelinput--default / filled / with-hint / with-error / stacked
    • Native showcase route at native-preview.otf-kit.dev/patterns/floating-label-input — preview on device via the per-route QR
    • Landing component pages — otf-kit.dev/components/floating-label-input (web) and otf-kit.dev/components/mobile-floating-label-input (native)
    • SDK source repo otf-kit/sdk is now PUBLIC on GitHub — clone, fork, file issues, or just read the source. MIT-licensed, mirrored from the master monorepo via the existing sync-public-sdk pipeline.
    • npm: @otfdashkit/ui@0.1.2 and @otfdashkit/ui-native@0.1.7 — both live with the new components and variants
    Browse the SDK on GitHub
  3. featfixedimproved

    Blog reading improvements, CDN-fast images, fresh thumbnails for every post

    Better reading experience across the blog — active TOC tracking, video players, table rendering — plus all 87 posts now have clay-character thumbnails served from the global CDN.

    • Blog table of contents now tracks your scroll position — the active section highlights as you read
    • Markdown pipe tables inside articles render as proper HTML tables, not raw | characters
    • GitHub video URLs in article bodies automatically render as <video controls> players
    • Article content column capped at 780px for comfortable reading on wide displays; inline images cap at 620px
    • All 87 blog posts — articles and video tutorials — now have a consistent clay-character editorial thumbnail
    • Every image and thumbnail on the blog now loads from cdn.otf-kit.dev, a global Cloudflare R2 CDN — faster globally, no Railway bandwidth overhead
    • New article: Open Cowork — what the open-source Claude desktop reveals about AI agent tooling
    • Four visual bugs fixed: scene-picker tabs now sit above the laptop frame on the homepage, card hover icons no longer overlap category pills, the /patterns Mobile tab now shows the correct count, and the sticky filter bar sits flush under the navbar with no transparent gap
    • Refund policy updated to all-sales-final across the site — checkout, terms page, FAQ, trust pills, and receipt email all match
    • OTF favicon refreshed — clean orange mark, no black background — now consistent across the landing site, SaaS Dashboard, and Fitness Kit preview
    Read the blog
  4. featfixedimproved

    Two new screens, cleaner install, every component in search

    Stay Browse and Stay Detail join the catalog, install commands across the site now match what actually ships, and the full component library is discoverable from Google.

    • Two new mobile screens shipped — Stay Browse (hospitality / real-estate search with category chips and featured listings) and Stay Detail (booking confirmation with hero image, rating chip, metric row, and accent CTA). Both render with real images on device — preview via the per-route QR in the showcase.
    • Install commands on every component page now match how that component actually ships — bun add @otfdashkit/ui for web components, bun add @otfdashkit/ui-native for mobile, and bunx @otfdashkit/cli add <name> for heavy-peer components like Shockwave
    • Homepage install ticker now shows a real, working command — bun add @otfdashkit/ui
    • Component code examples are cleaner — the auto-generated example no longer includes a confusing comment line that looked like real props
    • AI Configs link in the navigation now opens the right page — landing on the AI tools overview that maps Claude Code, Cursor, Antigravity, and Lovable to the config files each one reads
    • All 215 component detail pages and both kit landing pages are now listed in the sitemap, so Google can index every Component, Block, Pattern, and Template directly instead of crawling internal links to find them
    • Sitemap regenerates hourly — new blog posts, new components, and new tools appear in search within an hour of publishing rather than at the next deploy
    Browse components
  5. feat

    Supabase Kit announced — built on @supabase/server

    Supabase just shipped @supabase/server in public beta. Our next kit will be the first in the OTF lineup built on Supabase end-to-end.

    • Auth via @supabase/server — social providers, email/password, magic link, access level declared per route, zero boilerplate
    • Supabase Postgres with Row Level Security written at the kit level, not scattered per query
    • Hono API layer using EdgeFunctionHandler — consistent access levels, no custom auth middleware
    • Supabase Realtime subscriptions wired into components so the UI reacts without polling
    • Supabase Storage for file uploads, connected to OTF upload components
    • Ships with CLAUDE.md, .cursorrules, AGENTS.md, and tested prompts written for Supabase primitives
    • Read the announcement post on the blog for the full breakdown
    Read the announcement
  6. shippedfeatdocs

    Docs + Blog live — at otf-kit.dev/docs

    Docs site merged into the marketing app: one domain, one chrome, one deploy pipeline.

    • 23 docs pages covering @otfdashkit/{ui, ui-native, tokens} + AI tools (Claude Code, Cursor, Antigravity, Lovable) + templates + getting started + contributing
    • 2 long-form blog posts: "How to build cross-platform templates AI coding tools actually respect" + "Same component, web + mobile: the architecture behind @otfdashkit/ui"
    • Sticky breadcrumb on every nested page so the "where you are" indicator stays visible while scrolling — auto-hides on single-segment pages
    • Mobile two-row chrome — otf brand + search + drawer on Row 1, Docs / Templates / Pricing / Blog on Row 2, no overlap
    • AI-crawler ready: /llms.txt index + /md/<slug>.md raw-markdown mirror for every doc page (regenerated at build time)
    • Decommissioned the standalone otf-docs.pages.dev — single Railway deploy, single sitemap, no more docs.* subdomain
    • Slim Dockerfile + .dockerignore — Railway build context shrunk from ~300 MB to a few MB; real Geist fonts replace Inter masquerading as Geist
    Open the docs
  7. shippedfeat

    Custom domain in 90 seconds — for every kit owner

    The hardest part of shipping a kit is everything that happens after the code is written. We turned it into one command.

    • New skill bundled with every kit: `setup-custom-domain` wires Railway custom domain + Cloudflare DNS + email forwarding + auto-renewing TLS in one bash command
    • Works on any user-owned domain — single-kit on apex, app subdomain, or multi-kit splits
    • Idempotent — re-runs detect existing state and skip duplicate work
    • Components index restructured into Components / Blocks / Patterns (108 / 90 / 14 across web + native)
    How it works
  8. shippedfeat

    Fitness & Wellness Kit — shipped

    Apple-Fitness-inspired Expo SDK 54 kit. One codebase ships iOS, Android, and web.

    • 12 screens: Summary with Activity Rings hero, Workout (list/start/detail), Nutrition, Programs, Sharing, Profile, Goal, Welcome, Login, Signup, Ring Detail, Metric Detail
    • Stack: Expo SDK 54 + Expo Router + Hono + Drizzle 1.0 + Postgres + Better Auth (email + Google + bearer + demo login)
    • Reusable blocks: ActivityRings, WeekStrip, StepperBig, MetricCard, MiniBarChart, SegmentedControl, Card, IconBadge — all token-driven
    • 21 AI prompts in ai/prompts/ (add-workout-type, change-ring-targets, swap-stripe-for-revenuecat, etc.)
    • 24/24 design checklist passing — strict tokens, no hex, paddingBottom: 120 for floating tab clearance
    • EAS Update preview channel published — scan QR in Expo Go for instant native testing
    View kit
  9. shippedfeat

    Stripe wired across both kits

    One-time payments + bundle pricing live. License delivery via Resend.

    • Fitness Kit at $149 (price_1TTGl4DkNu7cnU8A0kTKFa1r)
    • Starter Bundle at $249 — Fitness Kit + SaaS Dashboard Kit (price_1TTGlEDkNu7cnU8AtyPiLs5B), $49 saved
    • /templates/fitness-kit + /templates/saas-dashboard buy buttons trigger Checkout instead of static demos
    • Stripe webhook → Resend → kit license email with download link
  10. shippedfeat

    Design System v1 — closed

    SDK foundation complete. 212 components, native + web parity, full Storybook coverage.

    • 212 components (108 atomic + 90 compositions + 14 motion/effect patterns)
    • 5 palettes (Slate, Warm, Cosmic, Terminal, Custom) × dark + light = 10 themes
    • @otfdashkit/ui (web) + @otfdashkit/ui-native (Expo) + @otfdashkit/tokens (shared design tokens) — all under MIT
    • Reanimated v4 migration, Tamagui native renderers, lazy-loaded heavy primitives (charts, code blocks)
    • Quality gates: kit-design-checklist, eslint-plugin-otf-design, frame-rate budgets, contrast checks
    Browse components
  11. featimproved

    /templates + /pricing redesigned

    Tabbed live previews. Real component renderings instead of screenshots.

    • KitPreview wrapper with browser-chrome shell + tab strip ("Dashboard" / "Issues board")
    • MiniDashboardPreview + MiniKanbanPreview + MiniFitnessSummaryPreview — pixel-faithful re-renders of real kit screens at preview density
    • Pricing page with feature comparison table across Free SDK / Individual / Bundle / Team
    • 7 template cards (2 live, 5 coming soon) with category filters
  12. shippedfeat

    Marketing revamp — landing live

    Landing site relaunched. New hero, AI tools marquee, components teaser, pricing.

    • New Hero with subhead emphasizing "AI already knows this codebase"
    • AI Tools Marquee — Cursor, Claude, Lovable, Bolt, Antigravity, Codex
    • ComponentTeaser carousel showing live Storybook embeds
    • Compatibility section — radial diagram of supported frameworks (React, Next.js, Expo, Tailwind, Hono, Supabase, etc.)
    • Stripe Checkout live in production
  13. shippedfeat

    SaaS Dashboard Kit — shipped

    First paid kit. Vite + Hono + Drizzle + Better Auth + Stripe. 11 screens.

    • Stack: Vite 5 + React 19 + Hono 4 + Drizzle 1.0 + Postgres + Better Auth + Stripe
    • 11 screens: Dashboard, Issues Board (Kanban), Issue Detail, Projects, Project Detail, Analytics, Inbox, Teams, Profile, Settings, Login
    • Pre-loaded: CLAUDE.md, .cursorrules, AGENTS.md, 20+ tested prompts
    • Per-developer commercial license; client work allowed
    • $149 one-time + 12 months of updates
    View kit
  14. shippeddocs

    Storybooks live

    All 212 components browsable with live iframe previews — for both web and native.

    • Web Storybook at ui.otf-kit.dev — every primitive, block, and pattern with playable controls
    • Native Storybook at native-preview.otf-kit.dev — phone-frame wrapper with per-route Expo Go QR for the React Native components
    • Cross-referenced from the components page so every card has a 1-click live demo
    • ⌘K command palette searches all 212 components from anywhere on the site
  15. shippedinfra

    Foundation — monorepo + design tokens

    Day one. The first commits — packages, themes, lint rules.

    • Monorepo scaffold: @otfdashkit/ui, @otfdashkit/ui-native, @otfdashkit/tokens, @otfdashkit/storybook-web
    • Tailwind v4 preset + tamagui-config + design tokens (5 palettes × dark/light)
    • eslint-plugin-otf-design — guards against hex literals, off-token spacing, raw RGB
    • 14 base story files for primitives
    • pnpm workspace + bun runtime + Railway deploy scripts

More shipping soon.

We have a lot planned — new kits, deeper AI integrations, things we’re not ready to say yet. Newsletter subscribers hear about everything first.

Join Discord →