Resources

Documentation

Everything you need to know about using Artiefax—from adding your first app to managing persistent data, sharing with the world, and keeping your work secure.

Getting Started

Artiefax turns AI-generated code into real, running applications on your phone, tablet, or computer. No installation, no terminal, no configuration. You paste code from any AI tool, and Artiefax compiles and runs it instantly.

Adding your first app

  1. Open app.artiefax.app in any modern browser.
  2. Tap the green + button in the bottom-right corner of the screen.
  3. Give your app a name and an optional description.
  4. Paste the code your AI tool gave you into the editor. You can also drag a file in or use the Upload File button.
  5. Artiefax detects the format automatically (JSX, TSX, or HTML). If it guesses wrong, you can override it manually using the format toggle.
  6. Tap Save. Your app appears in your library, ready to launch.
Tip: You don't need to understand code to use Artiefax. Ask any AI tool to "build me a budget tracker" or "make a flashcard quiz," copy the code it gives you, and paste it in. Artiefax handles the rest.

The editor page

When you create or edit an app, you land on the editor page. Here's what each field does:

  • Title (required)—the name of your app, shown on the library card and in shared links.
  • Description (optional)—a short summary. Appears on the library card and shared pages.
  • Category—a dropdown for organizing your apps. Options include Productivity, Data & Analytics, Games, Utilities, Finance, Health & Fitness, Education, Creative Tools, Business, and Other.
  • Cover Image (optional)—upload a JPEG image to represent your app. It is resized to 800px max width and appears on your library card and shared pages. If you don't set one, the card shows a copper gradient with your app's initial letter.
  • Format toggle—switch between JSX, TSX, and HTML. Artiefax auto-detects the format when you paste code, but you can override it here.
  • Upload File—imports a file from your device directly into the code editor.
  • Code editor—a full-featured CodeMirror editor with syntax highlighting. Paste or type your app's source code here.
  • AI Tools panel—two one-tap buttons: Add Persistence (saves app state between sessions) and Optimize for Mobile (rewrites layout for small screens).

Top bar buttons

The editor's top bar has four actions:

  • Back—returns to the home screen without saving.
  • Export—downloads the source code as a file. The filename is generated from your app's title with spaces replaced by hyphens and converted to lowercase, for example docs-v8.html or my-budget-tracker.jsx.
  • Preview—opens the app in the runner so you can see it live. Preview does not save—your library copy is unchanged until you explicitly tap Save.
  • Save—persists the app to your library. If you're signed in, the save syncs to the cloud automatically.

Editing an existing app

Tap any app in your library to open its detail modal, then tap Edit. The code editor opens with your app's source code. Make changes, save, and launch again. Your persistent data is preserved across edits—only the code changes.

Organizing your library

The home screen gives you several ways to find and organize apps:

  • Favoriting—tap the star icon on any app card to mark it as a favorite. A Favorites filter pill appears on the home screen so you can view only your starred apps.
  • Sorting—use the sort dropdown to change how apps are ordered. Options include Last Opened, Date Added, Name, and Category.
  • Filtering—category filter pills appear across the top of the home screen. Tap a category name (Favorites, Essential, Productivity, Games, and so on) to narrow the view. A search bar lets you filter by title or description.

The Essential Apps gallery

If you'd rather start with something pre-built, switch to the Essential Apps tab on the home screen. These are curated apps you can add to your library with one tap—games, productivity tools, and utilities. No AI or code required.

Supported Formats

Artiefax supports three file formats. Every major AI code tool outputs at least one of them.

FormatWhat It IsAI Tools That Use It
JSXReact components using JavaScript. The most common format from AI tools. Supports Tailwind CSS, Shadcn, Recharts, Lucide, D3, and dozens of other libraries out of the box.Claude, ChatGPT, v0, Cursor, Bolt, Lovable
TSXThe same as JSX but with TypeScript type annotations. Artiefax strips types during compilation, so JSX and TSX work identically at runtime.Claude, v0, Cursor
HTMLA complete HTML document with inline CSS and JavaScript. Works with vanilla JS, jQuery, Chart.js, D3, and any library loaded via CDN.ChatGPT, Gemini, Claude

How compilation works

JSX and TSX files are compiled in your browser using Sucrase, a lightweight compiler that transforms React syntax into standard JavaScript. There is no server-side build step—everything happens locally, instantly. HTML files are injected directly without compilation. Both paths receive the Tailwind CSS CDN automatically.

Auto-detection

When you paste code, Artiefax inspects the content to determine the format. Files containing JSX syntax and React imports are detected as JSX. TypeScript annotations trigger TSX detection. Documents that start with <!doctype or <html are detected as HTML. You can always override the auto-detected format using the format selector in the editor.

Supported libraries

JSX and TSX apps have access to a wide range of libraries bundled into the Artiefax runtime. You do not need to install anything—just import and use them.

LibraryWhat It Does
Tailwind CSSUtility-first CSS framework. Available in all formats automatically.
Shadcn/uiPre-built React UI components (buttons, dialogs, inputs, cards, and more).
RechartsReact charting library for line, bar, area, pie, and scatter charts.
LucideIcon library with hundreds of clean, consistent SVG icons.
D3Low-level data visualization and DOM manipulation.
Three.js3D graphics and WebGL rendering.
Chart.jsCanvas-based charting (alternative to Recharts).
Papa ParseCSV parsing and generation.
SheetJSRead and write Excel files (XLSX, XLS).
mathjsMath expression parsing, symbolic computation, and matrix operations.
lodashUtility functions for arrays, objects, strings, and more.
Tone.jsWeb audio framework for synthesizers, effects, and scheduling.
jQueryDOM manipulation (primarily for HTML-format apps).

HTML-format apps can load any library via CDN using a <script> tag, so their library support is effectively unlimited.

What's not supported yet

Artiefax currently supports single-file apps only. Multi-file projects (separate component files, CSS modules) are planned for a future update. On the framework side, Vue and Svelte support are planned but not yet available. Lit components (sometimes generated by Google Gemini) work partially via CDN fallback but don't have dedicated compiler support. Server-side frameworks like Python, Streamlit, and Gradio are fundamentally incompatible with Artiefax's client-side architecture and are not on the roadmap.

Tip: If your app isn't rendering correctly, check that the format is set correctly. A JSX file mistakenly set to HTML (or vice versa) will fail to compile. JSX and TSX files also need a default export—make sure your component includes export default.

Persistent Storage

Artiefax gives every app its own isolated storage space. Data you save persists between sessions—close the app, restart your phone, come back days later, and everything is right where you left it. If you're signed in, your data syncs across all your devices automatically.

How it works

Each app gets a private namespace in your browser's database. Apps cannot read each other's data. When you're signed in, writes are synced to the cloud in the background—the app doesn't wait for the sync to complete, so it always feels instant. If you're not signed in, storage works locally and behaves identically, just without cross-device sync.

The storage API

Artiefax provides two equivalent APIs. Both are injected automatically into every app—you don't need to import or install anything.

Artiefax Storage API (recommended)
await artiefax.storage.get(key)      // Returns the value as a string, or null
await artiefax.storage.set(key, val) // Stores a string value
await artiefax.storage.delete(key)   // Removes a key
await artiefax.storage.list(prefix)  // Returns an array of matching key names
await artiefax.storage.clear()       // Removes all data for this app
Claude Compatibility Shim
await window.storage.get(key)        // Returns { key, value, shared } or null
await window.storage.set(key, value) // Stores a value
await window.storage.delete(key)     // Removes a key
await window.storage.list(prefix)    // Returns { keys, prefix, shared }

The window.storage shim exists because Claude generates artifacts that use this convention. Both APIs route to the same underlying storage—use whichever your AI tool produces. If you're writing code manually, artiefax.storage is preferred because it's explicitly namespaced.

Best practices for persistence

All storage calls are asynchronous—always use await. Values must be strings, so use JSON.stringify() when saving objects and JSON.parse() when reading them back. Use descriptive key names prefixed with your app's concept (for example, tracker_entries or quiz_best_score) rather than generic names like data or state.

The recommended pattern

When asking an AI tool to add persistence to your app, use this detection and normalization pattern. It works regardless of which API is available at runtime:

Universal storage helpers
function getStorage() {
  if (typeof artiefax !== "undefined" && artiefax.storage) return artiefax.storage;
  if (typeof window !== "undefined" && window.storage) return window.storage;
  return null;
}

async function safeGet(key) {
  try {
    const api = getStorage();
    if (!api) return null;
    const result = await api.get(key);
    if (result == null) return null;
    const raw = typeof result === "object" && result.value !== undefined ? result.value : result;
    return JSON.parse(raw);
  } catch { return null; }
}

async function safeSet(key, value) {
  try {
    const api = getStorage();
    if (!api) return;
    await api.set(key, JSON.stringify(value));
  } catch {}
}

What to persist (and what not to)

Persist: scores, currency, progress, user preferences, roster data, high scores, current page or step in multi-step flows, in-progress answers, active filters, bookmarks, and theme choices.

Don't persist: modals open/closed, hover states, animation frames, scroll position, validation errors, or loading flags. These are transient and should reset each session.

Storage troubleshooting

If data isn't saving or loading as expected, check these common causes:

  • Missing await—every storage call is asynchronous. If you forget await, the call fires but your code continues before the result arrives, which can cause reads to return null and writes to appear lost.
  • Saving before loading—if your app initializes state with default values and then immediately saves, those defaults can overwrite the real data that was stored from a previous session. Always load first, check whether loaded data exists, and only fall back to defaults if it doesn't.
  • Using localStorage or sessionStorage—these browser APIs are not available inside the Artiefax sandbox. Apps that try to use them will get errors or silent failures. Use artiefax.storage or window.storage instead.
Tip: You don't need to write storage code yourself. Artiefax has a one-tap Add Persistence button powered by AI.

Mobile Optimization

Artiefax is a Progressive Web App (PWA), which means you can install it on your phone's home screen and use it like a native app—full screen, with its own icon, and available offline. Many AI-generated apps are designed for desktop-width screens, though, which can make them hard to use on a phone. Artiefax has tools to address this.

Automatic CSS scaling

When Artiefax detects a non-responsive HTML document running on a narrow screen (phone or small tablet), it automatically renders the app at a desktop width and scales it down using a CSS transform. This means the layout stays intact rather than overflowing off-screen—everything is just smaller. JSX apps built with Tailwind are typically responsive already and are left alone.

One-tap mobile optimization

The Optimize for Mobile AI button (the wand icon in the code editor) rewrites your app's layout to work on small screens. It adds responsive breakpoints, restructures grid layouts into stacked columns, scales font sizes, and adjusts touch target sizes—all without changing your app's functionality or visual identity.

Installing as a PWA

Installing Artiefax on your home screen gives you full-screen access, an app icon, and offline support. The steps depend on your device:

iOS (iPhone / iPad):

  1. Open app.artiefax.app in Safari (not Chrome or another browser—only Safari supports PWA installation on iOS).
  2. Tap the Share button (the box with an upward arrow) at the bottom of the screen.
  3. Scroll down in the share sheet and tap Add to Home Screen.
  4. Tap Add in the top-right corner. The Artiefax icon now appears on your home screen.

Android (Chrome):

  1. Open app.artiefax.app in Chrome. Chrome may show an install banner automatically at the bottom of the screen—if so, tap Install.
  2. If no banner appears, tap the three-dot menu in the top-right corner of Chrome.
  3. Tap Install app or Add to Home Screen (wording varies by Android version).
  4. Confirm, and the Artiefax icon appears in your app drawer and home screen.

Troubleshooting stale data on iOS

Safari on iOS caches aggressively, which can occasionally cause the PWA to show old content after an update. If this happens:

  1. Open Settings on your iPhone or iPad.
  2. Go to Safari → Advanced → Website Data.
  3. Search for artiefax.
  4. Swipe left on each artiefax entry and tap Delete.
  5. Reopen the Artiefax PWA from your home screen.

If the PWA still shows stale content after clearing website data, remove it from your home screen entirely (long-press the icon → Remove App) and re-add it using the installation steps above.

Note: On iOS, Artiefax runs through Safari's WebKit engine regardless of which browser you use. PWA installation is only supported from Safari.

Sharing

Any app in your library can be shared with a single link. The person receiving the link doesn't need an Artiefax account—they open it in a browser and the app runs immediately.

Creating a share link

Open any app's detail modal and tap Share. Artiefax generates a unique link that you can copy and send to anyone. You must be signed in to create share links.

Password protection

Pro subscribers can set a password when creating a share link. Visitors must enter the password before the app loads. Passwords are hashed securely—Artiefax never stores your password in plain text. The password is shown to you once at creation; after that, it cannot be retrieved.

View modes

Shared apps support two data modes:

  • Independent (default): Each visitor gets their own private data space. Their saved data is separate from yours and from every other visitor's.
  • Read-only owner data: Visitors see your data as a live dashboard. They can view but not modify it.

What the viewer sees

Visitors see a clean, full-screen experience—no Artiefax navigation, no launcher UI, just the app itself. If you set a password, the viewer sees a password prompt first. On free-tier accounts, a small dark footer bar with "Powered by Artiefax" and a link to artiefax.app appears at the bottom of shared pages. Upgrading to Pro removes this branding entirely.

Revoking access

You can disable a share link at any time from the share settings. Disabling it immediately prevents anyone from accessing the shared app. You can also re-enable it later—the same URL resumes working.

AI Tools

Artiefax includes built-in AI features that modify your app's code using Claude. These are accessed via the wand icon in the code editor.

Add Persistence

Analyzes your app's code, identifies what state should be saved between sessions, and adds the storage API calls automatically. Your existing code is not restructured or reformatted; only the necessary storage logic is added.

Optimize for Mobile

Rewrites your app's layout to be responsive on small screens. Adds media queries, converts fixed-width layouts to flexible ones, adjusts font sizes and spacing, and enlarges touch targets. Functionality and visual identity are preserved.

Token usage

AI features consume tokens from your account. Free accounts receive 10,000 tokens per month. Pro accounts receive 50,000 tokens per month. Tokens reset on the first of each month. A typical request uses between 1,000 and 4,000 tokens depending on the size of your app's code. You can check your current usage in Settings.

When AI works well

AI transforms perform best on small to medium apps—roughly under 500 lines of code. The AI reads your entire file, understands the component structure and state flow, and makes targeted, surgical changes. For most apps generated by AI tools like Claude, ChatGPT, or v0, the transforms work on the first try.

When it may struggle

Very large files (1,000+ lines) may cause the transform to take a long time or not complete at all. Complex interdependent state logic can also produce unexpected results. If this happens, try simplifying the file first—break complex logic into smaller pieces, or remove sections that don't need the transform—and then retry.

What to do if a transform fails

Your original code is never modified until you explicitly tap Save. If the AI output doesn't look right, tap Back or close the editor without saving. Your app is completely unchanged. You can always retry the transform, or undo the AI's changes and try a different approach.

Essential Apps

The Essential Apps gallery is a curated collection of pre-built apps available from the home screen. It's designed to give new users something to explore immediately without needing to generate code first.

Browsing and adding

Switch to the Essential Apps tab on the home screen to browse the gallery. Tap any app to see its description, then tap Add to My Library to clone it into your personal library. The app is now yours—you can launch it, edit its code, add persistence, or share it.

Independence from updates

When you add an Essential App, you receive a full copy of the source code at that point in time. Your copy is completely independent—if we update the original later, your version is unaffected.

Current lineup

The gallery currently includes:

  • Blackjack—casino-style card game with persistent chip tracking across sessions.
  • Three Card Poker—ante/play poker with Pair Plus and 6-Card Bonus side bets.
  • Pomodoro Timer—focus timer with configurable work/break intervals and session analytics.
  • Habit Tracker—daily habit tracking with streak counts and visual progress.
  • ISS Locator—live 3D globe showing the International Space Station's real-time position and orbital path.

More apps are added over time.

Security

Artiefax runs third-party code—artifacts generated by AI tools—so security is a foundational concern, not an afterthought. Every design decision prioritizes isolating untrusted code from your personal data and from other apps.

Sandbox isolation

Every app runs inside a sandboxed iframe on a completely separate domain from the Artiefax host application. An app's code cannot access the host's cookies, authentication tokens, local storage, or DOM. The browser enforces this separation at the engine level—it is not a software-only restriction.

Content Security Policy

The Artiefax host application enforces strict Content Security Policy headers that limit which scripts can execute, which domains can be contacted, and what resources can be loaded.

Storage isolation

Each app's persistent data is stored in a private namespace. There is no API for one app to read another app's storage. Even if an app tried to craft its own storage requests, the host enforces the namespace boundary.

Permission-gated capabilities

Apps cannot download files, open external links, or display attachments without your explicit permission. When an app requests one of these actions, Artiefax shows you a prompt with the specific filename or URL involved. You approve or deny each request individually. URLs are validated and filenames are sanitized before any action is taken.

Cloud data protection

If you're signed in, your apps and data are stored in a cloud database with row-level security policies. No other user can query, read, or modify your data. Authentication uses industry-standard OAuth providers (Google, GitHub, Microsoft) as well as email/password.

A note on trust

Artiefax runs code generated by AI tools. While the sandbox prevents apps from accessing your personal data or interfering with other apps, you should still review what you paste—especially if the code comes from a source you don't trust. If an app behaves unexpectedly, you can close it immediately and delete it from your library.

Tip: If you discover a security issue, please report it to security@artiefax.app. We take every report seriously.

Account & Billing

Creating an account

Artiefax works without an account—you can paste and run apps locally with no sign-up. Creating a free account unlocks cloud sync, sharing, and AI tools. Sign up with Google, GitHub, Microsoft, or an email address.

Free vs. Pro

FeatureFreePro ($4.99/mo)
Saved apps5Unlimited
Cloud syncYesYes
Share links2 activeUnlimited
Password-protected sharingNoYes
Branding on shared apps"Powered by Artiefax" footerNo branding
AI tokens (monthly)10,00050,000
Storage per app1 MB50 MB

Upgrading to Pro

Tap Settings (gear icon) in the top-right of the app, then tap Upgrade to Pro. You'll be redirected to a secure Stripe checkout page. After payment, your account is upgraded immediately.

Canceling your subscription

Go to Settings and tap Manage Subscription. This opens the Stripe Customer Portal where you can cancel. Your Pro features remain active until the end of your current billing period. After that, your account reverts to the free tier. Your apps, data, and share links are all preserved.

Data portability

You own your data. Every app in your library can be exported as a source code file using the Export button in the editor's top bar.

Contact & support

For general questions, feedback, or help, email contact@artiefax.app. For security-related reports, email security@artiefax.app.

Note: Artiefax does not currently offer a bulk data export for persistent storage. If you need to migrate runtime data from an app, use the app's own export features or contact us for assistance.

Troubleshooting

App doesn't render

Check that the format is set correctly in the editor. A JSX file set to HTML (or vice versa) will fail to compile. JSX and TSX files also require a default export—make sure your main component includes export default. If the format looks correct, try copying the code into a fresh new app to rule out a corrupted save.

Stale data on iOS PWA

Safari on iOS caches aggressively. If the app appears stuck on an old version, open your device's Settings → Safari → Advanced → Website Data, search for "artiefax," and delete all matching entries. Then reopen the PWA from your home screen. If the problem persists, remove the PWA from your home screen entirely (long-press → Remove App) and re-add it.

AI tokens exceeded

Check your token usage in Settings. Free accounts receive 10,000 tokens per month, and Pro accounts receive 50,000. Tokens reset on the first of each month. If you've reached the limit, wait for the reset or upgrade to Pro for a higher allowance.

AI transform takes too long or doesn't complete

Very large files may exceed the processing window. Try simplifying the file—remove sections that don't need the transform, or break complex logic into smaller pieces—and retry. Each transform attempt can be discarded without affecting your saved code.

Storage not working

Make sure all storage calls use await. Do not use localStorage or sessionStorage—these browser APIs are not available inside the Artiefax sandbox. Use artiefax.storage or window.storage instead. If data appears to be lost, check that your app isn't overwriting stored values with defaults on startup—always load existing data before saving.

Shared link shows 404 or won't load

The link may have been disabled by the owner. If you're the owner, check the share settings in the app's detail modal—you can re-enable a disabled link at any time. If the link was never disabled and still isn't working, try generating a new share link from the same app.

Your artifacts deserve a home.

Paste it. Run it. Keep it. Share it.
Launch Artiefax →