Krikkit is a self-hosted AI website builder you run as your own SaaS. Your users describe the site they want, watch it take shape in a live workspace, and publish the result on your domain — while you decide the plans, the credits, and the prices. One purchase, your brand, your business.

Krikkit 1.2 Update

Read the Krikkit documentation Deep42 support hub

Krikkit Changelog Deep42 Community

Krikkit — describe your website and watch the AI build it live

Krikkit Lab workspace — AI chat, file tree, code editor and live previewLive preview and one-click publishing to subdomains and custom domainsAdmin dashboard — users, plans and platform analyticsBilling — subscriptions, credits and invoices with Stripe and PayPalPlatform settings — AI providers, themes, SEO and languagesMarketing site — landing page, blog and legal pages included

No Build Server. No VPS. Runs on the Cheapest Hosting.

Here is what makes Krikkit different: the entire build engine runs inside the visitor’s browser. Package installs, the dev server, the live preview and the production build all happen client-side. Your server only serves the Laravel app and stores project files.

  • No Node.js process on your server — nothing to keep alive, nothing to crash at 3 AM.
  • No VPS requirement — a basic shared hosting plan with cPanel is genuinely enough.
  • No build queue eating your CPU — ten users building at once costs your server almost nothing, because each build runs on their machine, not yours.
  • Scales with your users, not your bill — more customers does not mean a bigger server.

If your hosting can run Laravel, it can run Krikkit.

Simple Requirements

  • PHP 8.3+ (8.4 supported)
  • MySQL 8+ or MariaDB 10.6+
  • Standard PHP extensions — the guided installer checks every one for you
  • Shared hosting or cPanel is fine — no root access, no Docker, no Node.js on the server
  • Optional: a wildcard subdomain if you want one-click subdomain publishing for your users

The Lab — a Real Builder, Not a Chat Window

  • Chat on one side, a working project on the other — file tree, code editor, console and live preview in a single workspace.
  • The AI edits real files — users can open any file, inspect the code, and take over manually whenever they want.
  • Instant feedback — every change lands in the live preview without leaving the page.
  • Import to start faster — bring an existing project in from GitHub or a public URL and continue with AI.

From Prompt to Published

  • One-click subdomain publishing — finished sites go live on name.yourdomain.com instantly.
  • Custom domains — users can point their own domain at their published site.
  • Served by your own app — published sites are delivered by the same Laravel installation; no third-party hosting involved.

Bring Your Own AI

  • Connect Anthropic Claude, OpenAI, xAI Grok, Groq, Mistral, Google Gemini or ZhipuAI — plug the keys into the dashboard and switch providers anytime.
  • You control the cost — set credit prices and per-plan limits so AI usage is always profitable.
  • Stock photos included — Unsplash and Pixabay integrations let the AI place real imagery into projects.
  • Supabase link — users can connect their own datastore for projects that need a backend.

Monetization Built In

  • Stripe and PayPal subscriptions with webhook handling out of the box.
  • Plans and entitlements — decide exactly what each tier can build, publish and spend.
  • Credit system with a full usage ledger — every AI action is metered and accounted for.
  • Invoices — generated automatically for every payment.

Run the Whole Business From One Dashboard

  • Users, roles and abilities — fine-grained permissions for your team.
  • AI settings, themes, SEO and languages — light/dark themes with accent colors, translation management, meta defaults.
  • Content tools — blog, custom pages, newsletter subscribers and a contact inbox, all included.
  • Session control and two-factor authentication — security features your customers expect.

Ships Like a Product

  • Guided web installer — install from the browser like WordPress; no terminal needed.
  • Marketing site included — landing page, blog and legal pages ready on day one.
  • Multi-language ready — add languages and manage every line from the dashboard.
  • Built on Laravel + Livewire — a modern, maintainable stack your developer will thank you for.

Support & Documentation

Full documentation is available at doc.deep42.co. For product support, reach us on the Deep42 Support Hub.

2.3.0 – October 20, 2026

ADDON: OpenRouter. One API key for Lab chat, OpenAI-compatible models, usage returned on the response
ADDON: Cloudflare AI Gateway. Account ID plus a Workers AI token. Lab chat goes through that account's gateway
ADDON: Flutterwave. Cards and mobile money, secret-hash webhooks, verified return
ADDON: Paystack. Cards, bank transfer, and mobile money, signed webhooks, verified return
NEW: Auth settings. Email verification, password rules, and hashing from the dashboard
NEW: Clear settings. Clear caches from the dashboard without a shell
NEW: Studio folders. Create, rename, open, and delete. Deleting a folder keeps the projects. Access can be gated by pack
NEW: Bug reports from the dashboard
NEW: Dashboard command palette in place of dashboard search
IMPROVEMENT: OpenRouter and Cloudflare AI Gateway are marked as proxies
IMPROVEMENT: GDPR cookie banner shows on the Flow landing
IMPROVEMENT: Runs heatmap day columns share one grid
IMPROVEMENT: Documentation for updating, prompt files, folders, onboarding, Auth, GDPR, License, and Clear
FIX: resources/prompts markdown files are in the package again. The 2.2.0 and 2.2.1 zips omitted them, which showed in Lab as "Prompt file missing" 
FIX: Invoice PDF templates are back, same size as in 2.1: resources/views/vendor/invoices/templates/krikkit.blade.php and default.blade.php
FIX: Installer steps are back: environment, migrations, permissions, requirements, and the installer layout
FIX: Invoice language lines are back for ar, bg, cs, de, en, es, fr, it, nl, pl, and ro
FIX: public/vendor/invoices/sample-logo.png is back
FIX: English invoice labels use Issued by, Billed to, and Tax ID. The Krikkit PDF uses DejaVu Sans at 11px, with a seller and buyer table and a due band
FIX: A Razorpay return fulfills the payment locally. Opening the link stores checkout.razorpay_link plus plan_public_id, plan_slug, and interval
FIX: claimRazorpayReturn requires a plink_ id, fetches the link, and checks notes.user_public_id against the signed-in user when that note is set. Status must be paid
FIX: If the link notes omit the plan, the session values fill them. Amount is amount_paid or amount. Currency is uppercased and defaults to INR
FIX: The payment id is the last captured or authorized row. Otherwise it is the signed pay_ query parameter
FIX: The callback signature is HMAC-SHA256 of link_id|reference_id|status|payment_id with the key secret, compared with hash_equals
FIX: After a successful fulfill, billing.paid is set and those checkout session keys are cleared. paymentLink() is the only fetch
FIX: Apache sets Cross-Origin-Opener-Policy: same-origin and Cross-Origin-Embedder-Policy: credentialless on /lab, so the threaded WASI worker can use SharedArrayBuffer
FIX: __worker__.js and labRuntime-*.js send Cache-Control: no-cache, must-revalidate
FIX: WASI text reads always copy. A shared buffer from another realm fails instanceof SharedArrayBuffer and TextDecoder threw on it
FIX: random_get no longer fails the syscall. If crypto.getRandomValues is missing it uses Math.random bytes, then tries once more. Lightningcss and oxide abort the dev server on EIO
FIX: A product brief with no URL or known domain skips web research
FIX: While the workspace is closed, discovery sends no tools and tool_choice is none. If the model still returns a research tool, those calls are dropped
FIX: On tool_start and tool_end, arguments.content longer than 64 KB is removed from that event. The full body stays on done, so a proxy cannot split the SSE line
FIX: json_encode uses JSON_INVALID_UTF8_SUBSTITUTE and JSON_THROW_ON_ERROR. U+2028 and U+2029 are escaped. If encoding throws, that event is not sent
FIX: A JSX default export that parses and never returns is rejected as MissingReturn
FIX: Lab and Preview scan the same file and report "returns nothing, so the preview stays blank". The error clears once the component returns
FIX: Preview chrome is revision 49. Fatal guest errors now include "nothing was returned from render", "return statement is missing", "does not provide an export named", and "failed to resolve import" 
FIX: A single wrapper inside Routes (main, div, Header, Footer) is moved outside. Direct children are only Route or a fragment
FIX: "is not a Route component" triggers the router heal. The repair target is the file that renders Routes, preferably src/App.jsx, not a Routes.jsx that was never created
FIX: Host names stay host names: Routes, Route, Link, NavLink, Outlet, Navigate, MemoryRouter, BrowserRouter, HashRouter, Router, ScrollRestoration, StrictMode, Suspense, Fragment, Profiler. react-router-dom and lucide-react frames stay package frames even when the function is PascalCase
FIX: ../../lib/utils is correct only inside src/components/ui. The same string from src/components/SurveyApp.jsx resolves outside src. Depth is rewritten on write and in a Vite pre plugin. If src/lib/utils.js is missing, the canonical file is written. "failed to resolve import … lib/utils" is a cn heal
FIX: A matched React pair such as 19.3.0 and 19.3.0 is still rejected. The module cache can keep react-dom on 19.1.1 and break the preview. react and react-dom always use the Lab pin
FIX: Install leaves an existing folder in place, so both packages are removed first. .vite stays until the new files exist. react-dom is not installed unless index.js and a client entry exist
FIX: @tailwindcss/node is not a direct package.json dependency. It is installed at the same version as the installed @tailwindcss/vite, so esbuild publish does not fail with "Cannot find module" 
FIX: @import lines move to the top of the stylesheet. Remote imports (Google Fonts, url(, https:) come before package imports. An already-correct order stays byte-identical
FIX: Cut-off CSS is rejected as TruncatedCss. Vite gets the krikkit-hoist-css-imports pre plugin. Guest sync runs stylesheets through the same normalize
FIX: A follow-up no longer locks tool_choice to write_file. That skipped the thought and rewrote Header, Footer, Hero, and main. The system line is: the latest message is one task, one control, one file
FIX: The first two follow-up looks are not forced to write. Tool events wait until a thought arrives, so "Reading" no longer paints first. A write_file with no body is not painted
FIX: readFile, listDir, and search cards go to done when the call finishes, so the chip does not keep spinning. Thinking chrome stays while status is streaming, or done with a duration above 0, even if the thought text is empty
FIX: A rejected write no longer skips the recap. If a path failed, a recap is still requested. If the text does not name the file, it is requested again. Fallback: "Could not update the file. That change is not in Preview yet." 
FIX: Closed and cut-off code fences are removed from the chat bubble. MODE=, ALLOWED_TOOLS=, FORBIDDEN=, and DONE_WHEN= lines are removed. A recap glued after the first sentence of ASK= stays
FIX: A "path" / "content" file map glued onto a recap keeps the prose in front of it. An empty bubble is not drawn
FIX: working-notes and working_notes count as thought. A private_ tag is dropped and the sentence stays. In thought text, a tool name is redacted instead of deleting the sentence. survey_datastore and revise_datastore are in that tool-name list
FIX: A stub that nothing imports does not land on disk. A stub imported by a file that is landing is committed with it, or Vite reports "failed to resolve" 
FIX: An empty or rejected module becomes an empty default export that returns null when the body is under 200 characters, instead of "no default export" 
FIX: Product-stub scan includes src/sections. "Ready to get started?" plus "Book your appointment today" is not a finished section. The glow-only hero reject is gone. The reject text is to rewrite the file as the interface the user asked for
FIX: .env, .env.local, .env.development, and .env.development.local are on the root writable list
FIX: thought is the only private tag. A second note tag is not allowed. Direct children of Routes are only Route. cn from ui/ is ../../lib/utils; from components, sections, and pages it is ../lib/utils
FIX: A marketing hero is no longer required. A job board is search, filters, cards, and a detail panel. The prompt does not invent a dashboard mock the brief did not ask for

2.2.1 – September 27, 2026

ADDON: Knowledge. Public help center. Collections are headings, articles sit under them, readers can search
ADDON: Tickets. Customers open tickets from their account. Staff assign, reply, and track them in the dashboard
NEW: Lab CDN proxy. Compiler binaries load from the Krikkit origin via /lab-cdn when the browser rejects the CDN certificate
FIX: The first Lab reply is kept when the model glues its planning line onto the sentence
FIX: Hidden scratch stays hidden: thought blocks, working notes, and invented tags such as private_prose no longer appear in chat. The recap does
FIX: Preview status is error, not live, while the guest app is crashed
FIX: A section import marked resolved is actually saved, so Vite no longer dies with "does the file exist?" 
FIX: Hero and other section files are no longer rejected for looking like a marketing poster. The brief is what gets written
FIX: A component that returns nothing is reported. React 19 otherwise paints a blank page and logs nothing
FIX: React and react-dom stay on 19.1.1. The preview no longer 504s lucide-react while dependencies rebuild, and no longer crashes on a missing react-dom/index.js
FIX: Routes only wraps Route. The error card points at the file that contains the router, not a component file that was never created
FIX: Font @import lines are moved to the top of the stylesheet so Tailwind CSS applies
FIX: cn() imports copied at the wrong folder depth are rewritten to src/lib/utils

You May Also Like