A running log of features shipped on faircompanies.build — newest first.
June 2026
Fix
Billing buttons no longer crash on Stripe errors
Manage subscription, Cancel Pro, and Start trial could fail with a bare 'Unexpected end of JSON input' when Stripe hit an error — the routes were returning an empty response body the page couldn't parse. Those billing actions now always return a clean JSON error and the page shows a friendly message instead of crashing. While we were there, an active Pro plan's 'Manage subscription' button picked up an amber highlight so your current plan reads at a glance.
Improvement
Updated Terms, a Data Processing Addendum & re-accept prompt
The Terms of Service now carry a dedicated clause on AI-generated output — it's probabilistic, can be wrong, and shouldn't be relied on for safety, permit, financial, or legal decisions without licensed verification — alongside clearer dispute-resolution terms, and there's a new Data Processing Addendum for enterprise buyers. When the terms are updated, signed-in users get a one-time prompt to review and accept the new version. Both pages are linked from the site footer.
Improvement
A more trustworthy sign-up & account flow
A batch of account-security upgrades shipped together. New sign-ups now confirm their address through a double opt-in email — a dismissible banner reminds you until you do, without ever blocking your work. The sign-up form records explicit terms acceptance and is shielded from bots by Cloudflare Turnstile, and chosen passwords are checked against the Have I Been Pwned breach corpus at both sign-up and reset. Changing your password sends a security notification, password-reset requests are now rate-limited, and outbound email was hardened (bounce/complaint handling, Reply-To) so account messages land in your inbox rather than spam.
Feature
Two-factor authentication
You can now turn on two-factor authentication from a new Security tab in Settings, so a stolen password alone can't reach your account. Enroll by scanning a QR code with any authenticator app — Google Authenticator, 1Password, Authy — with a manual setup key as a fallback, and save the one-time recovery codes for when your phone isn't handy. Once it's enabled, sign-in asks for a 6-digit code after your password.
Improvement
Cookie settings, a Contact page & on-site feedback
Some housekeeping on the public site: a cookie-consent banner restyled to match our palette, with a 'Cookie settings' control in the footer to reopen your choices anytime; a dedicated 'Contact us' page; and an on-site 'Report bug or submit feature' form, so sending feedback no longer bounces you out to an email client — it shows its thank-you right in place.
Improvement
Sign in with Google
OAuth sign-in is now Google-only — the unused Microsoft option was retired end to end. We also fixed the Google button failing to show on the sign-up page, and provider configuration now resolves per request, so turning a sign-in provider on or off no longer requires a redeploy.
Improvement
A new name and identity — we're now faircompanies.build
The platform has a new name, wordmark, and home: faircompanies.build. The asterisk is the new mark, and the look is refreshed end to end — the same land-to-build workflow, from parcel feasibility through permit-ready deliverables, now under a clearer identity and domain. The brand guide lives at /brand.
Improvement
Faster renders — image engine runs fully on Google Cloud
Concept rendering no longer starts by waking a start/stop GPU pod that was too often out of capacity. Every render now goes straight to a Google Cloud Run generator backed by an NVIDIA RTX PRO 6000 Blackwell that scales up on demand and back to zero when idle — so there's no wake step to wait out and no stockout to fail over from. Reliability and time-to-first-render both improve, and further Cloud Run generators stand behind it as automatic overflow.
Fix
Wordmark on the sign-in panel
The sign-in screen's left branding panel now renders the faircompanies.build wordmark inline in its description, matching the beta gate and the rest of the auth screens — the spot had still shown the name as plain text after the v5 lockup rollout.
Improvement
Concept renders queue instead of failing
Triggering a new render no longer cancels one that's already in flight — renders now queue and run one at a time, so a cold render is never lost mid-way (the old 'rendering was interrupted' failures are gone). Feeding the GPU back-to-back means only the first render in a burst pays the cold start; the rest reuse the warm box in seconds before it scales back to zero. And when the primary GPU provider is out of capacity, the job fails over to the backup generator immediately instead of waiting out a long timeout.
Feature
About, Terms, Privacy & Disclaimer pages
A new About page introduces the founders and the why behind faircompanies.build, and a clear set of legal pages — Terms of Service, Privacy Policy, and a Disclaimer — make the beta's posture explicit: outputs are preliminary and advisory, useful pre-plans and pre-application material, not surveys, stamped professional documents, or binding legal instruments to file. All four are reachable from the home page and the site footer.
From the Dwelling Model and the Brief you can now download a preliminary site document: a to-scale plot plan with setbacks and the buildable envelope, a zoning & dimensional worksheet that measures your proposal against the parcel's limits, and dimensioned floor plans once the planar model exists. Every figure is computed deterministically from public GIS and your own inputs — nothing is invented — and each sheet is clearly marked preliminary, not for permit submission.
Fix
Cold-start renders no longer strand the page
A render served by a GPU that just scaled up from zero can take up to ~30 minutes before the first byte arrives while model weights stream in. The app now waits out that silent gap instead of giving up at Node's default 5-minute fetch ceiling, and the BIM render panel polls long enough to catch the finished image instead of stranding on the spinner until a refresh. Status copy sets honest expectations: cold starts take minutes, warm renders take seconds.
Improvement
Cross-cloud render failover
Concept rendering now tries an ordered chain of self-hosted backends instead of a single box. When the primary GPU pod can't wake — a provider stockout — or its render fails, the job overflows to a tier-2 generator on Google Cloud Run backed by an NVIDIA RTX PRO 6000 Blackwell (96 GB) that scales from zero and runs the exact same container at full bf16 precision. Adding further tiers is pure configuration, and the graceful placeholder remains the last resort. Verified live with an end-to-end render on 2026-06-10.
Improvement
Photoreal renders — engine moves to RunPod
The faircompanies.build Image Engine's primary generator migrated from AWS EC2 to a RunPod L40S pod after AWS couldn't reliably supply GPUs — at roughly a third of the hourly cost. The start/stop economics carry over: the app wakes the pod on demand and a watchdog inside the generator stops it once idle. Output stepped up from 4-bit quantization (which skewed painterly) to 8-bit photoreal, prompts are now written for Qwen-Image's true negative-prompt handling, and the generator ships as a container image from GHCR, so it can run on any Docker-native GPU cloud.
Fix
502 errors on signed-in pages
Authenticated pages — the BIM stage, the project list — could return a bare 502 on a hard refresh. Next.js App Router response headers plus the auth cookies overflowed nginx's default 8 KB proxy header buffer, so nginx rejected the app's response before it reached the browser. The proxy buffers are raised and signed-in pages load reliably again.
Improvement
faircompanies.build Image Engine is live
Last entry's roadmap item shipped: concept renders are now produced by our own on-demand GPU running Qwen-Image (2512 line) instead of a third-party endpoint. The app wakes the instance when you request a render and the box shuts itself down when idle, so there's no per-image fee and near-zero cost between sessions. Renders persist to our own storage and are served from there, and the render badge now reads 'faircompanies.build Engine'.
Improvement
Wordmark v5
The lockup now carries a sage o-frame with the logarithmic spiral filling its counter — terra (earth) → form (transformation) → al (growth) — applied coherently across the header, footer, auth screens, social share card, and the favicon family. A warm-on-dark tone ramp keeps every letter legible on dark surfaces like sign-in and the beta gate.
Improvement
Self-hosted concept rendering — no per-image fee
Concept renders no longer depend on a paid third-party image endpoint (Pollinations began returning HTTP 402). Generation now routes through a single provider seam that prefers a self-hosted Stable Diffusion / FLUX endpoint, with a deployable reference generator (FastAPI + diffusers) shipped under services/image-gen. Rendered bytes are persisted to our own storage, so there's no per-image charge. Next on the roadmap: an on-demand Qwen-Image GPU that starts and stops itself to keep costs near zero when idle.
Fix
Community browse open to anonymous visitors
/explore, public project pages at /p/[id], and their thumbnails are now reachable without a beta cookie, so the community surface renders for everyone and is crawlable for SEO. Each project still enforces its own public flag — no private data is exposed — and the high-traffic home page stays free of per-request database load.
May 2026
Improvement
Endorsements weighted by collaborators
Signals more collaborators endorse now rank higher everywhere. Each Brief highlight and flag carries a weight that bumps on every additional up/downvote; a ×N badge appears in the Brief and the project document, and the chat system prompt treats multi-vote items as proportionally stronger direction signals — or hard avoids.
Improvement
Enterprise 'Talk to sales' → /contact-sales
Every Enterprise 'Talk to sales' CTA — pricing, the Console upsells, and the solution pages — now opens a dedicated /contact-sales page that hosts the HubSpot form in its own tab, replacing a modal whose embedded styles fought the parent page.
Feature
Brief fills from chat — collaborative signals
Every chat turn now silently merges into the project snapshot, so the Brief fills passively as you work. On top of that, upvoting a response, copying it to the notepad, or commenting on it promotes that text into the Brief as an explicit, high-weight highlight; downvotes become an 'avoid' signal. Endorsed highlights are read back across chat, the Brief, and the project document, and a mark-complete toast teaches the loop.
Feature
SEO & AI discoverability
Search engines and AI agents can now index faircompanies.build properly. Added robots.txt, a generated sitemap, an OpenGraph card on the home page, an llms.txt manifest, and JSON-LD structured data (Organization, WebSite, SoftwareApplication) listing all three pricing tiers.
Improvement
New tagline
Dropped 'platform' from the tagline — faircompanies.build is vibe-building for the physical world.
Improvement
Marketing surfaces unified
Adopted a shared MarketingHeader and MarketingFooter across /learn, /cases, /pricing, /solutions, /help, and /changelog so navigation is consistent everywhere outside the app. Hero gradient from the design kit is now applied uniformly, and the mobile drawer no longer collapses behind backdrop-blur.
Feature
Wordmark v3 and semantic design tokens
Replaced the typeset wordmark with a grown logspiral — a pale 'o' wrapped by a thick terrain-900 spiral — now used in the header, footer, breadcrumb, and favicon. Brought in the v3 semantic token palette from terraformal-design-system. Reference pages live under /brand.
Feature
/international page & region-aware waitlist
Visitors outside our launch geographies land on a page that captures their region and use case. Signups feed a region-aware interest waitlist so we can prioritize geographies as we expand jurisdictional data coverage.
Feature
International rollout (i18n)
Localized the marketing site with next-intl. English is the canonical default; French and Spanish are now first-class with a footer locale switcher. App surfaces and API routes stay English. Translations are produced by an in-house AI pipeline (claude-haiku-4-5) that diffs en.json and opens a PR for human review on every change — no Crowdin dependency.
Improvement
Webhook & cron rate limiting
/api/billing/webhook and /api/billing/grant are now rate-limited by IP, so a noisy Stripe replay or a hammered cron endpoint can't burn through DB connections.
Improvement
Public-share polish
Pages at /p/[id] now honor each org's Workflow Pack overrides (rename, reorder, hide stages), surface the canonical-vs-org rename relationship in an inline tooltip, and accept participatory reactions from visitors. New projects can be prefilled from an ?intent=… URL parameter. 'Public project' has been renamed 'Community' across user-facing copy.
Feature
Workbench training — per-org LoRA fine-tuning
Enterprise orgs can now trigger a LoRA fine-tune from their confirmed training_examples plus their Workbench Library. This slice ships dataset assembly and S3 upload; SageMaker job submission and inference routing land next. Costs route through meterAndCharge with idempotency so retries never double-charge.
Feature
v1 public API
Shipped three read endpoints — list projects, fetch a project, list its messages — plus POST /v1/projects/:id/messages to drive chat from the outside. Token-authenticated, scoped to the owner, and rate-limited. Tokens are self-serve at /console/api (Enterprise).
Feature
Workbench Packs self-serve
Standards, Style, Workflow, and Onboarding Packs are now editable by org owners directly — no Solutions Engineer required. Geography was already self-serve; this round promotes the rest. The Style Pack also gained an image corpus so concept generation can be steered by your firm's portfolio.
Feature
Customer Console (/console)
The deeper customer surface for paying tiers. Overview KPIs (credits, used, projects, storage), usage log with category filters and CSV export, billing (migrated here from /settings/billing), and a help page that points to support, docs, and this changelog. Open to every signed-in user — Enterprise surfaces (Team, Workbench, API) render as tab-locked with an 'Ent' badge for Hobby and Pro.
Feature
Organizations & team management
Enterprise customers now live inside an organization with members, roles, and a token-based invitation flow. Owners manage members from /console/team; invitees redeem at /invitations/[token]. Per-org credit allocation supports two modes — pool (shared pot) or seat (per-member budget) — with a single resolver that routes every charge through the right account and refunds back to the originating one.
Feature
Workbench (Enterprise)
/console/workbench is the Enterprise-only console that delivers on the 'tune AI to your portfolio' promise. Ships a Library of reference projects and standards, savable Prompt Presets that bind Library entries, and a Playground to test them. Visual treatment is intentionally developer-console — denser, more monospace — so it reads as a tuning surface, not a brochure.
Feature
Workbench setup wizard
First-visit wizard at /console/workbench/setup seeds an audience-appropriate starter Library and Prompt Presets so teams never land on a blank Workbench. Templates cover AEC firms, housing administrations, and institutions; running the wizard twice is safe — it skips entries that already exist.
Feature
Pricing tiers, Stripe subscriptions & credits
Three tiers — Hobby (free, 20 credits/mo, stages 1–2, single project), Pro ($20/mo, 500 credits, all stages, 14-day free trial, unlimited projects), and Enterprise (custom). Wired Stripe Checkout, Customer Portal, one-time top-up packs, and an idempotent webhook for subscription lifecycle events. Every chat message debits credits atomically from a single chokepoint, and the usage_events ledger records every billable surface so '/Usage this period' can split spend by category.
Feature
Brief project document — TipTap editor
Pillar 3 of the Brief: a TipTap-based rich-text editor at /projects/[id]/brief/document with AI rewrite, export, and shareable links. Wired to our own Claude client — no paid TipTap-pro packages — to keep convergence cost-conscious.
April 2026
Feature
Brief prefill — documents & chat
The Brief page now fills itself from what users do. Two ingestion paths into the project snapshot: regex extractors on each upload (survey, financial, program, aesthetic) that surface a suggest-and-confirm banner, plus silent delta-merging from every chat turn. Vocabularies are shared across both paths so canonical values match.
Feature
Admin file-processing pipeline
Internal admin dashboard for the file ingestion pipeline: live SWR refresh of file-by-file processing chain, dead-letter visibility and replay, and per-worker telemetry. Backbone for diagnosing extraction failures in flight.
Feature
Iterative concept renders & dwelling model
Concept iteration now renders branching variants and keeps a per-project dwelling model that accumulates spatial intent. Renders are gated on credits and tracked in conceptRenders with status lifecycle.
Improvement
Direct-to-S3 uploads with virus scanning
Browsers now upload directly to S3 (or local-fallback) via presigned URLs. Metadata is persisted on completion, ClamAV scans async, and scan status is tracked per file. lib/engine/file-extractor.ts pulls anonymized signals (geometry types, column names, image dimensions) into the training pipeline.
Improvement
Parcel data injected into every stage
All nine workflow stage assistants now receive the project's parcel data — address, APN, area, elevation, flood zone, zoning, permit history, and hazard scores — in their system context. Claude no longer needs the user to re-describe the site at the start of each conversation.
Feature
Parcel lookup by APN
The new-project form includes a parcel lookup powered by Regrid. Enter an address or APN (e.g. CA:123-456-789) to identify the exact lot. The confirmed APN is stored, displayed in the project header, and passed to Regrid's APN-first lookup during prefill — eliminating address-matching ambiguity.
Feature
Public projects & Explore directory
Projects can be made public from the Share menu. Public projects appear in /explore and on the home page. Each one has a shareable page at /p/[id] with parcel data, hazard profile, zoning, and stage progress — plus dynamic OpenGraph tags for social sharing.
March 2026
Feature
AEC LLM engine — ProjectModel accumulation
Two-model pipeline per user turn: Claude streams the user-facing reply (4096 tokens, haiku-tier), and a fire-and-forget accumulator derives a ProjectModelDelta and merges it into the project's versioned snapshot. Each turn also appends an anonymized training example so a future Qwen LoRA can replace Phase-1 keyword rules.
Feature
Nine-stage workflow & chat
The structured land-to-build pipeline: feasibility → lot fit → jurisdiction → vernacular design → concept iteration → BIM/CAD intake → deliverables → permit strategy → value engineering, plus a collective-housing formation layer. Each stage has its own prompt in docs/prompt-library/, and an orchestrator routes broad questions to the right one.