Resources
What shipped
Every update, straight from our GitHub repository. This page regenerates automatically with every push.
Last updated:
- Fixfix(content): correct outdated info on public pages (Netlify->Cloudflare Pages, 17->18 providers)b0fae84
- Improvedfeat(marketing): surface full-stack / Supabase backend on public pagesebc9e24
- Fixfix(backend): auto-confirm signups + reliable auth-app previewf0a3d99
- Fixfix(ui): match tool progress by call id so parallel same-named calls resolve3a121ec
- Fixfix(backend): include backendConfig in preview/deploy effect deps (no stale config)e752fa7
- Fixfix(backend): process.env stub so supabase-js loads in the sandbox3f720a9
- Improvedfeat(agent): guide the agent to use @openthorn/db for data + authe704a1a
- Improvedfeat(backend): pass project Supabase config into preview + deploy buildsad0dd8f
- Improvedfeat(backend): inject Supabase config + @openthorn/db into preview/deploy1e9b1a7
- Improvedfeat(backend): supabase-js allowlist + @openthorn/db client sourceb263912
- Improvedfeat(agent): pass project id + backend flag into agent runs8912b19
- Improvedfeat(agent): dispatch set_schema to /api/migrate with project context3beba4b
- Improvedfeat(agent): set_schema tool, gated on a connected backend3c14044
- Improvedfeat(backend): applySchema client helperd9aaf0d
- Improvedfeat(backend): /api/migrate endpoint + dev shimb97f495
- Improvedfeat(backend): apply schema via Management API + migration ledgerfe86134
- Improvedfeat(backend): declarative schema → idempotent SQL compiler9cff71c
- Improvedfeat(backend): green toolbar button when connected + project-level disconnectf8f5636
- Fixfix(backend): poll project status so provisioning clears automatically3a9a775
- Improvedfeat(backend): create-project from picker + accept publishable API keysf226b7e
- Fixfix(backend): auto-open Backend modal after OAuth redirect81c311a
- Fixfix(backend): move Connect-backend to a toolbar button + dedicated modald8620b5
- Fixfix(db): make supabase_connection_status a security_invoker view (RLS)0a5e851
- Improvedfeat(backend): Connect backend UI panel in deploy modal7f9889c
- Improvedfeat(backend): client helper for the connect-backend flow43f836b
- Improvedfeat(backend): dev shim for /api/supabase-oauthad301f9
- Improvedfeat(backend): /api/supabase-oauth start/callback/pick-project/revokec25d085
- Improvedfeat(backend): list org projects, fetch anon key, save project backend8e792d6
- Improvedfeat(backend): persist + auto-refresh Supabase OAuth tokens3fd9ea0
- Improvedfeat(backend): Supabase OAuth code exchange + token refresh146daa3
- Improvedfeat(backend): signed OAuth state tokens for Supabase connect flowc0edc3b
- Improvedfeat(db): supabase connection, project_backends, project_migrations tablesf31a810
- Fixfix(agent): stop forced builds on conversational replies; guard large rewrites8c50159
- Improvedfeat(agent): add shadcn + karpathy skills; expand ui-ux-pro-max to full version94ec280
- Improvedfeat(agent): make skill-loading proactive and always availablea957888
- Fixfix(agent): treat visual click-to-edit as a small refine3035dd9
- Improvedperf(agent): leaner small-refine toolset, cached done-gate bundle, lower thinking budgets, stream usageb1baea7
- Improvedperf(agent): give small refines a lean, checklist-free promptfc02ac3
- Improvedfeat(agent): skip the requirements checklist for small refines672a76d
- Fixfix(preview): keep click-to-edit popover on-screen + make text edits instanta85d021
- Improvedfeat(agent): generate files one-per-turn + markdown build overview/summary6d586b0
- Improvedfeat(preview): direct text edits, minified chat label, hover pause + Esc to exit, polished edit toggle/badgefa0b7c9
- Improvedfeat(preview): wire visual click-to-edit into the project builderce8ade2
- Improvedfeat(preview): add edit-instruction composer and popover anchor mathb43583d
- Improvedfeat(preview): instrument builds with data-oeid + in-iframe select mode1477b4b
- NewAdd Product Hunt follow badge to hero section69ff897
- ImprovedImprove agent opening and closing message formatting31173ee
- ImprovedRemove inspect_preview tool and layout gate from agent loop359a3ee
- ImprovedRemove hardcoded default site; agent always starts with empty workspaceca0794b
- ImprovedStrengthen agent system prompt: objectivity, persistence, closing recap7deacca
- NewAdd context limit selector for custom models; fix 3 incorrect context windowsfd46058
- NewAdd per-model context-window editor to the admin model catalog410fcd6
- ImprovedStore per-model context window; size compaction from real values7ae8593
- ImprovedScale compaction budget to each model context window73589ec
- ImprovedToken-budget auto-compaction; catch silently-broken canvas games222564b
- ImprovedKeep full conversation context; catch broken-but-not-crashing routes5462126
- ImprovedPersist agent LLM history across page loadsef66248
- FixFix files appearing all at once in UI during multi-file writes2bbe16e
- FixFix sidebar overflow, remove completion file list, add cross-run conversation history81565a8
- ImprovedReplace keyword-triggered skills with agent-driven load_skill tool6b42924
- ImprovedDeduplicate published and bundled templates02f296f
- ImprovedShow bundled templates alongside published templatese854e8a
- NewAdd new default templates347f381
- ImprovedImprove default template designs573aec3
- Improvedfeat: promote Gemini 3 Flash Preview to top with Recommended badge, add Cheap badge to Gemini 3.1 Flash-Lited699e0b
- Fixfix: remove unused params and helpers left over from visual review removala40663f
- Improvedremove visual review — screenshot-to-LLM mobile/desktop gate33a695d
- Improvedfeat: phase-gated thinking — plan/debug phases think, build phases don't852759d
- Improvedfeat: recommend Gemini 3.1 Flash Lite as default Google model and warn on credit errors608bfcc
- Improvedcontent: mention OpenThorn is open source in blog and FAQ09576de
- Improvedfeat: replace quickstart overlay with driver.js spotlight tour9454455
- Improvedfeat: deep-link templates page to auto-open a template previeweeb509e
- Improvedfeat: show quickstart guide to first-login users on dashboarda4d917a
- Improvedfeat: add QuickstartGuide modal component643490b
- Improvedfeat: add quickstart slide config and show-once predicate124e03b
- Improvedfeat(db): add has_seen_quickstart flag to profilese57b11e
- Improvedfeat(deploy): derive CF Pages subdomain from project title60195ae
- Improvedcontent: add 'how much does it cost to build a website with AI' blog postf842f69
- Fixfix(providers): trim RodiumAi to standard provider shapeba7d004
- Improvedfeat: add RodiumAi as BYOK provider6097130
- Fixfix(agent): glob basename matching, edit near-match hints, longer read dedup, split CSS2bc4a25
- Fixfix(agent): reject non-free remote images (copyright safety)cd28f83
- Fixfix(agent): orphaned-CSS + layout done-gates, smarter read dedup, real imagesba2fe69
- Fixfix: remove unused createHash import from _shared.ts1500491
- Improvedfeat: agent write-time lint, deterministic preview inspection, memory learningeb4d571
- Fixfix: use blake3 asset hashing + production branch for CF Pages deploya6b822a
- Fixfix: restore production_branch in CF Pages project creation (required by API)0df8fe0
- Fixfix: always upload files (skip check-missing), drop _redirects for now to isolate 500fec7fca
- Fixfix: use api.cloudflare.com/client/v4 as upload base URL (not uploads.workers.cloudflare.com)807718f
- Fixfix: use correct CF Pages upload flow (upload-token GET + check-missing + upload + upsert-hashes)7828e25
- Fixfix: correct CF Pages upload flow — get JWT, upload files, then create deployment594f1d0
- Fixfix: forward CLOUDFLARE_ACCOUNT_ID + CLOUDFLARE_API_TOKEN into process.env for dev shim7984202
- Improvedfeat: update DashboardPage to use cf_pages_project_name0290c57
- Improvedfeat: update ProjectBuilderPage to use deploySite + cf_pages_project_name93031ad
- Improvedfeat: rename deployToNetlify -> deploySite, point to /api/deploy3ce2a08
- Improvedfeat: update vite dev shim to /api/deploy + runCloudflareDeploy649ec09
- Improvedfeat: add /api/deploy endpoint for Cloudflare Pages, remove deploy-netlify67b543d
- Improvedfeat: replace Netlify deploy logic with Cloudflare Pages72f9f85
- Improveddb: rename netlify_site_id to cf_pages_project_name1221d69
- NewAdd Cloudflare Pages deploy implementation plan00d2ef0
- NewAdd Cloudflare Pages deploy design spec4af227a
- NewAdd Lovable/Bolt.new/v0 alternative phrasing to README for discoverability3dd2d5d
- NewAdd pre-auth template demo + Gemini free-tier onboardinge153784
- Newadd cost-of-AI-website post assets and SEO docs238a087
- Fixfix admin notification send rlsc5c7672
- Newadd admin bell notifications3284d5f
- Fixfix agent stop and remove follow-ups7747e52
- Fixfix favicon for Google search1fae398
- Fixfix dashboard announcement banner offset2f52e60
- Fixfix announcement banner visibility4a417f4
- Fixfix admin panel backing data accessbc30d92
- Improvedfeat(admin): template manager editor4210173
- Improvedfeat(templates): load gallery from Supabase with bundled fallbackb1e2866
- Improvedfeat(db): templates table with authenticated-read/admin-write RLS015ce3a
- Improvedfeat(admin): blog CMS page (markdown editor, draft/publish, redeploy)5405e8d
- Improvedfeat(api): trigger-deploy admin action for blog publishing63a191b
- Improvedfeat(blog): runtime refetch of published posts for instant visibility87caac5
- Improvedfeat(blog): build-time sync of published posts from Supabase5bb84bf
- Improvedfeat(db): blog_posts table with public-read/admin-write RLS74cef47
- Improvedfeat(admin): platform config page (model catalog, providers, banner, flags)0b72e22
- Improvedfeat(config): hide globally disabled providers from selector and setupc9eb575
- Improvedfeat(config): site-wide announcement bannera9d077f
- Improvedfeat(config): app_config client module with cached reads90d147d
- Improvedfeat(db): app_config table and admin write access to model catalog3feb73d
- Improvedfeat(community): featured post ordering and admin menu entry01be921
- Improvedfeat(admin): community moderation page (hide, feature, delete, ban author)ee0043c
- Improvedfeat(admin): user management page (suspend, delete, publish ban)352102a
- Improvedfeat(admin): /admin route group with guard and layout9f447d6
- Improvedfeat(admin): client admin library (useIsAdmin, admin actions)fe92bb2
- Improvedfeat(dev): /api/admin dev shim and SUPABASE_SERVICE_ROLE_KEY plumbing3d6ab0f
- Improvedfeat(api): /api/admin endpoint for suspend/unsuspend/delete user1180239
- Improvedfeat(api): service-role admin helpers (isAdminUser, suspend, delete)5ef18bf
- Improvedfeat(db): admin role, moderation columns, admin RLS policiesbf90c55
- Improvedfeat(templates,community): model selection no longer required to open a project66d861f
- Fixfix(sidebar): navigate to project when clicking recent project item68fa2a9
- Improvedfeat(agent): visual review, generating status, mid-run progress; fix(builder): defer preview rebuild until agent iteration completesde6d997
- Fixfix(agent): show error reason when switching providers mid-runa396f7f
- Fixfix(builder): clear prompt input immediately on submit instead of after agent run376a33d
- Fixfix(agent): capture and replay DeepSeek reasoning_content across turns116df6a
- Fixfix(builder): don't show files or preview after a conversational agent reply8fce828
- Fixfix(agent): don't start building on conversational messages455ad17
- Improvedfeat(builder): show blinking dot in chat while agent is generating4147c6c
- Fixfix(gemini): send thoughtSignature at part level per REST API schema2155a76
- Fixfix(gemini): handle cumulative streaming and propagate thought_signature to parallel calls8032f45
- Fixfix: silence recoverable hydration errors in production console642f2ef
- Fixfix(gemini): preserve thought_signature on function calls for thinking models37c5462
- Fixfix: add missing Framer, Durable, Wix logos to public/assetsbf14df1
- Improvedfeat: add competitor logos, blog cover, and Provider Guides to nave309c4e
- Improvedfeat(seo): provider guide pages, new comparisons, RSS feed, AEO answer blocksc7ad705
- Fixfix(seo): remove duplicate FAQPage JSON-LD from FaqPage runtimedf38a6f
- Improvedfeat: add comparison hub and resource assets6986a5d
- ImprovedDedupe server key operations and surface decrypt failures on Providers pagef454369
- Improvedfeat(seo): add IndexNow key and submission script39a54cc
- Improvedfeat(seo): generate per-page OG cards at build time with satoriba1902c
- Improvedfeat(aeo): generate llms-full.txt with complete public site contentec1a679
- Improvedfeat(aeo): prerender, sitemap, footer, and llms.txt wiring for compare + glossary pages343f5c7
- Improvedfeat(aeo): add /glossary page with DefinedTermSet JSON-LDc7e7b94
- Improvedfeat(aeo): add /compare pages for Lovable, Bolt.new, and v0ea2ceaf
- Improvedfeat(aeo): add best-BYOK-builders listicle with ItemList JSON-LDb6ca983
- Improvedfeat(aeo): add two how-to guides with HowTo JSON-LD and dateModified support9288fe0
- Improvedfeat(seo): hydrate prerendered SSR markup with hydrateRootf3171a4
- Improvedfeat(seo): prerender real SSR page bodies instead of hand-written snapshots0ed4c7d
- Improvedfeat(seo): add Vite SSR build entry for build-time page rendering3184594
- Improvedfeat(seo): add StaticAuthProvider for build-time SSR21644a9
- FixFix OpenRouter default models49a6219
- ImprovedRemove NVIDIA NIM provider and CORS proxy infrastructure34bce7a
- FixFix /api/proxy 404: match VercelReq/VercelRes pattern of other API functions5fc570b
- NewAdd server-side CORS proxy for NVIDIA NIM and future CORS-blocked providers9982264
- ImprovedBlock NVIDIA NIM in agent: no CORS headers on chat/completions endpointeccd519
- ImprovedDisable browser connection test for NVIDIA NIM (CORS blocks /v1/models)68d58ad
- ImprovedUpdate provider model lists and fix reasoning API params for Gemini 3.5+, gpt-oss, and Grok2eb05d0
- NewAdd demo assets, refresh changelog snapshot, ignore .vercel, document git conventions7b18b88
- FixFix FUNCTION_INVOCATION_FAILED on all API routes: ESM needs .js extension on relative importsd002eeb
- ImprovedShow classified agent errors with actionable tips in the builder chatfd84457
- ImprovedLazily migrate enc: provider keys to server-side senc: encryption8678066
- ImprovedReplace local MP4 with YouTube embed on blogc4c09dc
- NewAdd auto-generated changelog page at /changelog946bb44
- FixFix duplicate JSON-LD flagged by Google Rich Results testea58416
- NewAdd cover image to BYOK blog post matching first post design5ff1c9e
- NewAdd SEO/AEO improvements: build-time sitemap, content prerender, schemas, llms.txt2972960
- FixFix favicon: use real logo.png instead of placeholder SVG41c2f8b
- NewAdd Vercel Speed Insights with privacy policy disclosuresc8fd29f
- NewAdd Vercel Web Analytics with privacy policy disclosuresce75730
- ImprovedImprove application error handling1e9094f
- FixFix provider model sync and Gemini toolsfa7619d
- Fixfix: correct Gemini model IDs and handle chunk load errors after deploy5578ade
- Fixfix: update GitHub links to new BuildingTechAlternatives org6f34fba
- Improvedfeat: add by-BTA credit to navbar and hero headlineb9cb0ad
- Fixfix: mobile navigation, preview tap, settings back nav, and provider list bugs8c7dcaa
- Improvedfeat(seo): pre-rendering, JSON-LD structured data, and per-page OG images3c652e7
- Fixfix: migrate all domain references from openthorn.vercel.app to www.openthorn.app7b4956c
- Improvedfeat: modernize OpenThorn ad video and update blog render218b1f2
- Fixfix: reliably route keyboard input to preview game iframe2bece32
- Fixfix: forward keyboard focus to preview iframe on click4a58e6e
- ImprovedAgent Smartness Upgrade Round 6: production resilience3f5b470
- Improvedfeat: comprehensive design improvements with animations and design tokens0d69805
- Fixfix: add emailRedirectTo so email change confirmation resolves correctly55d2d91
- ImprovedAgent Smartness Upgrade Round 5: fix checklist wipe, loop false positives, UI polish3799408
- Fixfix: persist model selection across page refreshd94ca9c
- ImprovedAgent Smartness Upgrade Round 4: Verification Gate + Conversation Caching0f309be
- Improvedidk4396bf2
- ImprovedMobile optimization: drawer sidebar, top bars, settings tabs, small-phone polishbfc922f
- Improvedfeat(mobile): DashboardSidebar slides in as a drawer on small screens91ff655
- Fixfix(mobile): eliminate 300ms tap delay with touch-action manipulation4e9c394
- NewAdd mobile optimization implementation plan31a1eb8
- NewAdd mobile optimization design spec8ede00b
- FixFix: persist selected model across page refreshes1cb5828
- ImprovedPolish launch readiness075cd69
- ImprovedHarden for launch: deploy IDOR, shared rate limiting, SEO meta, signup terms84077d2
- NewAdd Profile and Settings pages with avatar profile menu323e91b
- FixFix CSP: allow Google Fonts and esm.sh for preview iframesd9b8a6a
- NewAdd owner edit/delete controls to community posts5db3fc6
- ImprovedReplace static notifications with Supabase-controlled tablec0c66d1
- ImprovedRestrict deployments bucket listing to owners/collaborators83f653a
- ImprovedRevoke anon EXECUTE on find_account_by_emaile5c503e
- ImprovedHarden app for production: Vercel deploy target, auth, RLS, headers, code-splitting83778c3
- ImprovedShow agent completion summary in chat after each run3a02a88
- ImprovedRemove GitHub sync button and all related functionality76a3fe2
- ImprovedSimplify imprint details368e8de
- ImprovedSimplify imprint detailscefe6f3
- ImprovedImprove legal compliance pages497ec9c
- Improvedfeat: remove Guides link and wire Docs & FAQs across all nav locationse3dc8c2
- Improvedfeat: wire Docs & FAQs footer link to /faqb8a4b3d
- Improvedfeat: register /faq route26f1212
- Improvedfeat: add FaqPage component with accordion FAQ06f5e4c
- Improvedfeat: add FaqPage CSS moduleda5dfe0
- Improvedfeat: update OpenThorn ad video with cinematic split-screen redesign7bcc2a3
- Fixfix: align scene timing to voiceover and fix end black screen22f30c9
- Improvedfeat: add subtitles and fix voice cutoff2f4eecb
- Improvedfeat: add ElevenLabs voiceover to OpenThornAd3d6081d
- Improvedfeat: add background music and sound effects to OpenThornAddafe148
- Improvedfeat: redesign OpenThornAd — Apple cinematic split screen with film graine23b254
- Improvedsecurity: encrypt API keys at rest and fix legal compliance issues4f5be84
- Improvedlegal: add Vercel as data processor in Privacy Policy45f0b7c
- Improvedfeat: add Imprint page with operator and contact details1f2e61c
- Improvedfeat: professional legal page layout with sticky TOC, doc nav, and design system polishb314d9e
- Improvedfeat: add EU AI Act section to Terms of Service5c74814
- Improvedremove analytics and error tracking completely5c53c92
- Fixfix: Garante cookie button symmetry, Sentry PII scrubbing, correct legal page yeard8894b0
- Fixfix: fill legal placeholders, add cookie banner X button and footer preferences linkd6c3d5c
- Improvedfeat: add legal page routes, wire footer links and CookieBanner7a4704d
- Improvedfeat: add CookieBanner with consent-gated PostHog analytics2b4cc5e
- Improvedfeat: add CookiesPage with cookie policyac0790e
- Improvedfeat: add TermsPage with terms of servicef7e8830
- Improvedfeat: add PrivacyPage with GDPR-compliant privacy policy9aa7ad0
- Improvedfeat: add shared LegalPage layout componentdd3cfcf
- Fixfix: type ReelCarousel variants as Variants to resolve TS2322 build errore4980b4
- Improvedfeat: add 10 new LLM providers to providers page with letter fallback logosff431fd
- Fixfix: navigate to home on sign-out; add remotion ad assets and ReelCarousel redesign661852e
- Improvedfeat: show auth gate instead of silent redirect on protected pagesabf7cc5
- Improvedcontent: rewrite introducing-openthorn article — accurate BYOK/no-subscription positioningb470f27
- Improvedfeat: redesign BlogPage with editorial layout and fix video poster to t=22ef6c7e
- Improvedfeat: wire up /blog and /blog/:slug routes, update header Blog link86d6b4a
- Improvedfeat: add BlogPostPage article component with markdown rendering4e06bc0
- Improvedfeat: add BlogPage listing component65424a9
- Improvedfeat: add blog post registry with introducing-openthorn postf2caac4