One build, fourteen apps: see what users made of Memory Tin
NewAI designer

Let every user
redesign your app

TweakLane lets the people who use your app reshape every screen: layout, colours, their own screens, their start screen. Your paywall, Restore and legal links stay exactly where you put them.

Built for apps and the people who use them

Edit modeDaybook · Home

The user drags “Quick decks” above the cover photo.

  • Quick decks lifted
  • Dropped above the cover photo
  • Next memory and Journey keep their order
  • Done: one undo step

Move, hide, resize, swap
any part your catalog registers

Daybook home in edit mode: the Quick decks row is lifted and dropped above the cover photo; a Home layout panel lists Quick decks, Next memory and Journey

Proven on 14 apps
made from one build

0 of 40+ lock attacks got through

  • Zen
  • Command center
  • Night arcade
  • Newspaper
  • Playground
  • Big and bold
  • Darkroom
  • Waldhütte

Edit mode

Every screen, every part,
in your users’ hands

Users move, hide, resize and swap parts, build screens of their own, choose what each part shows and restyle it. Every change is checked against your catalog before it lands.

Home rearranged in edit mode

Rearrange any screen

Move, hide, resize and swap any part for one of its alternatives.

A screen the user built from parts of other screens
Add a part

Screens of their own

Up to six screens, built from parts of any screen: text, pictures, stats and buttons.

The options sheet: what a part shows

Content they choose

How many items, which ones, in which order, compact or detailed.

The parts you already have

Register your existing views once, mark the locks, ship. Layout, styling, themes, navigation, history and AI come with the SDK, on iOS, the web, macOS and Flutter.

The style sheet for one part: text size, emphasis, colours
Settings in a dark theme while Home stays light

Style a part. Theme a screen.

Bigger text, bolder weight, a colour, a surface. Themes for the whole app or one screen at a time.

Memory Tin was redesigned four complete ways with layout documents alone: 15 screens each, every edit accepted, every locked part still on screen. No app code changed.

900 / 900edits accepted
across 60 screens
See the designs

One build.
Fourteen apps.

apps from one build
14
to switch a whole design
33 ms
lock attacks got through
0 / 40+
per synced design
8–12 KB

Locks

Your paywall looks like
their app. It works like yours.

A design can recolour the paywall to match. Every price, Continue, Restore, Terms and Privacy and the close button stay, on every channel: edit mode, AI, restore, design switch and sync.

Read the locks reference
Paywall in the Newspaper design
Paywall as shipped
Paywall in the Night arcade design
Prices Restore

Same paywall, every design

Prices and Continue stay together, visible and in place. Restore stays on the paywall and in Settings. Renewal terms stay readable, at full size.

Server answerslive

AttemptHTTP
Hide the prices422
Remove Restore422
Drop Terms422
Start on the paywall422
Recolour the paywall200

Refused with a reason

Every write, version and AI answer is checked against your catalog. A design that breaks a lock never lands.

Readable, always

Text keeps WCAG contrast: 4.5 : 1, and 3 : 1 for muted text and icons. Unreadable themes are refused.

Settings and Help in reach

Whatever start screen a user picks, Settings, Help and Restore stay within reach.

The AI plays by the rules

8 attack prompts went to 5 editors. Every answer kept the locks.

40 crafted versions that tried to break a lock were restored on a device. Every one came back repaired, with a short note telling the user what changed.

40 / 40broken versions
repaired on restore
How locks work

Give every user the app
they would have designed.

Create an app in the dashboard, get your keys and register your first screen today. SDKs, hosted backend, AI and dashboard, all in one.

MIT-licensed SDKs · Read the docs

Dashboard

See every design.
Steer every app.

Explore the dashboard docs

Your app

your-app

A kill switch sends users back to your default layout. Saved layouts are kept and come back when the switch is turned off.

ScopeTargetStateChangedAction
Globalall appsOff—operators only
Appyour-appEngagedjust nowTurn off
ScreentodayOff—Engage

Every console flow runs end to end against the deployed dashboard: sign-in, keys, catalogs, users, kill switch, AI log and audit.

8 / 8console flows
passing
Open the dashboard

Designs are data

A design is data, never code. It can only rearrange, restyle or hide what your app already ships, so every design your users make stays App Store safe.

App Store Review Guideline 2.5.2JSON documents your catalog validates

AI designer

One sentence in.
A whole design out.

Users say what they want in their own language. The AI proposes a design, shows a preview and applies it as one undo step. Your locks apply to every answer.

Read the AI docs

Six complete designs from one sentence each, in English, Dutch and German. Every one re-checked clean against the same rules as a hand-made design.

More ways to make it theirs

Start where they start.
Go back whenever they want.

The navigation editor: start screen, Home toolbar and shortcuts

Start screen

Breathe

Home

The tin

Always in reach

Settings · Help · Restore

Navigation and start screen

Reorder menus, move entries, pick the start screen. A long press always finds the way back to default.

Read the docs
History: undo, redo, versions with restore

5 ms

per undo step

Undo across sessions

Undo and redo after a relaunch, version history with restore.

The Designs sheet with named designs

33 ms

to switch

Named designs

“Focus”, “Everything”: up to ten designs, one tap apart, synced.

Real prompts, real designs

Describe the app.
Watch it change.

Six sentences from our showcase run, and the design each one produced on the live AI.

Make this a minimalist Japanese app: calm, lots of white space, ink and one red accent, only what matters

EN52 s · 5 editors · re-check clean

Memory Tin redesigned by the AI from the prompt above

Get started

Add TweakLane
to your app

1

Install the SDK

MIT licensed, no third-party dependencies to pull in.

View the quickstart

Package.swift · iOS 17+, Swift 6, no third-party dependencies

// Xcode: File → Add Package Dependencies…
.package(url: "https://github.com/tweaklane/tweaklane-ios",
         from: "1.0.0")
2

Register your parts and locks

Each view gets an id, its alternatives and a lock level. Then open edit mode wherever your app wants it.

App.swift · register your parts, lock what matters, ship

import TweakLane

var catalog = ComponentCatalog()
catalog.register("stats.list", displayName: "List",
                 alternatives: ["stats.chart"]) { props, _ in
    StepsList(title: props.string("title"))
}
catalog.register("paywall.restore", displayName: "Restore",
                 lock: .required) { _, _ in
    RestoreButton()   // users can move it, never hide it
}

let engine = TweakLaneEngine(catalog: catalog, userId: account.id)

TweakScreen(id: "today")   // draws this user’s design
Button("Customize") { engine.beginEditing("today") }

All you need from here is a TweakLane account.

Create an app, copy your public key, ship your catalog.

Enforced everywhere

Works offline.
Checked on every channel.

See how it stays safe

422the answer to any design that breaks a lock

  • Works offline
  • Open-source SDKs
  • WCAG contrast checked
  • Designs are data

Platforms

Native SDKs,
proven by their tests

One catalog model, one document format and the same lock codes on iOS, the web, macOS and Flutter. A design made on one renders the same on the other.

Explore the SDKs
iOSSwift · SwiftUI · Swift Package Manager243 tests passed
WebReact 18.2+ · TypeScript · npm5 test files, 489 tests passed
macOSSwift · SwiftUI · same Swift package as iOS252 tests passed; Ledgerline Mac 12 passed
FlutterDart · one package, one catalog, every Flutter target you ship752 tests passed; example 49 passed

Showcase

One build. Every user’s app.

Start: Arcadea pager of ring, streak and Year in Photos

Neon dark theme, rounded heavy type. Home’s ring card, journey and badges sit in a pager, the user screen gets its own cyan accent and the paywall its own sunset theme.

Memory Tin in the Night arcade design

Start: Front pagekicker, headline, cover, stats columns

Serif type, paper colours, square corners and black rules. Home goes text-first, Settings rows turn bold, and the renewal text gets larger.

Memory Tin in the Newspaper design

Start: Play!streak, two big deck buttons, a sticker grid

Text scale 1.3, rounded heavy type, every part two or three steps bigger, and a pink tin with its own screen theme.

Memory Tin in the Playground design

Start: Ops20 parts on one screen

A dense monospaced dark theme: hero tiles, every badge, newest years first, six shortcuts and a light paywall on a screen theme of its own.

Memory Tin in the Command center design

Start: Breathering, chapter, one quiet button

Home cut to the next chapter. The toolbar keeps only the tin and Settings. Light theme, generous spacing, no lines or shadows.

Memory Tin in the Zen design

Pricing

Start free.
Grow as your users do.

One price per organisation, every month, in USD. You pay for customising users: the people who saved at least one change to your app that month.

Free

Ship your first app today.

$0/ month

Start free

Included every month

  • 1,000 customising users
  • 500 AI calls
  • 1 app
  • 3 team members
  • 600 API requests a minute

Growth

For apps your users love to shape.

$150/ month

Start with Growth

Included every month

  • 25,000 customising users
  • 3,979 AI calls
  • 10 apps
  • 10 team members
  • 3,000 API requests a minute

$10 per 1,000 more customising users

Scale

For a whole portfolio of apps.

$750/ month

Start with Scale

Included every month

  • 250,000 customising users
  • 19,894 AI calls
  • Unlimited apps
  • Unlimited team members
  • 15,000 API requests a minute

$10 per 1,000 more customising users

Enterprise

A contract built around your company.

Custom

Book a demo

Included every month

  • Unlimited customising users
  • Unlimited AI calls
  • Unlimited apps
  • Unlimited team members
  • Multiple organisations
  • 60,000 API requests a minute

One app covers every platform it ships on. Included amounts renew on the first of every month (UTC). How usage is counted

FAQ

Questions teams
ask first

Anything else? Write to contact@tweaklane.com.

Is this App Store safe?

Yes. A design is data: a JSON document that names components your app compiled in and registered. TweakLane downloads, installs and runs no code, so a design can only rearrange, restyle, hide or combine what is already in the binary you submitted. That is exactly what App Store Review Guideline 2.5.2 asks for, and the docs include an App Review notes template you can paste in.

What stays fixed, whatever users do?

Everything you lock. Mark a part required and it always stays visible; mark it fixed and it never moves. Typical locks are the paywall prices, Continue, Restore Purchases, Terms and Privacy, account deletion and the way back to Settings and Help. Legal text can’t shrink or fade, and every colour is checked for WCAG contrast: 4.5 : 1 for text, 3 : 1 for muted text and icons.

Where are the locks enforced?

On every channel. The device checks edit mode, AI answers, stored files, restores and design switches. The hosted backend validates every write, every version and every AI proposal against your catalog, and answers anything that breaks a lock with HTTP 422 and a reason code such as required_missing:restore. Locks come only from your catalog and default documents: a lock field inside a stored or AI-made design is ignored.

Which AI does it use?

Claude by Anthropic. Before the first request, the app shows a consent sheet that names the provider and says what is sent; the server refuses prompts without consent. Users write in their own language, see a preview of the change, and tap Apply or Discard. Every applied change is one undo step. You switch AI on per app in the dashboard and set its limits there.

What happens to saved designs when I ship a new app version?

They come along. Every design is checked against the new catalog on load: parts you removed drop out, anything a new lock forbids returns to how your app ships it, and the user sees a short note saying what changed. Undo, history and named designs keep working.

What if the backend can’t be reached?

The app keeps working. Designs live on the device and sync when the connection returns, and your default layouts are compiled into the app. From the dashboard, a kill switch sends users back to your default layout for the whole app or a single screen.

How is usage counted?

By customising users: everyone who saved at least one change to your app in a calendar month. Each plan includes a number of them and of AI calls, and both renew on the first of every month, UTC.

What happens when we pass the included amount?

On Growth and Scale, your users keep customising past it: every 1,000 customising users beyond the included amount cost $10, and nobody is turned away for passing it. On Free, new changes pause at the monthly limit until the month renews, and every saved design keeps loading for every user.

Is it open source?

The SDKs are MIT licensed. The hosted backend, the AI and the dashboard are the service you sign up for.

How do you handle my users’ data?

TweakLane stores designs, not behaviour. The iOS privacy manifest declares no tracking. You export or delete any user’s data with your secret key or from the dashboard, and deleting an organisation deletes its apps and all their data.