Phluffle
Launch · All docs

Forms, sign-ins and uploads (app data)

Make your live Phluffle app save form entries, let people sign up and sign in, and accept uploads. See, export and manage it all on the Data page.

Your prototype can do more than look real. Booking forms, contact forms, member accounts, saved favourites, reviews and photo uploads all work, and once the app is published with Live Deploy everything people save is stored for real. You see it all on the app's Data page.

Pro Real app data comes with Live Deploy, which is part of Pro.

Pretend data versus real data

In the editor, on share links and in downloads, your app's forms, sign-ins and uploads work with pretend data. It follows the same rules as the real thing, but it resets when the page reloads. That's on purpose: testers can click through freely without filling up your real data.

On the published live app, the same app saves for real. Nothing to switch on.

Add data to your app

Ask for it in the chat, in plain words. For example:

  • "Make the booking form save bookings and email me."
  • "Add sign up and log in so people can save trips."
  • "Let members post reviews on each walker's profile, with a star rating."
  • "Let people upload a photo of their dog when they book."

Phluffle builds the screens and wires them up. Prompts use credits as usual. Then click Update to vN in the Live dialog so the live app gets the new version. What visitors save shows up on the Data page.

Tip Try the new forms in the editor first. They behave the same with pretend data.

Who can see what

Your app's data is grouped into collections, such as Bookings, Saved trips or Reviews. Each collection has one of three access settings:

Setting Good for
Form: anyone can add, only you can see them Bookings, orders, contact messages, waitlists
Private: members add and see only their own Saved items, to-dos, profiles
Public: everyone can read, members add their own Reviews, posts, comments

Phluffle picks a sensible setting when it builds the feature. You can change it on the Data page with the Who can see and add menu. "Form" entries are only visible to you in Phluffle, never to visitors.

Member sign-ins

When your app has sign up and log in, visitors can create an account on your app (not a Phluffle account). Members can:

  • Sign up with an email and a password of at least 8 characters.
  • Sign in and sign out.
  • Reset a forgotten password with a link sent by email.

Members belong to that one live app. They sign in on your app's own address and never get access to Phluffle.

Uploads

Apps can accept files, either from signed-in members only or from anyone, depending on how the feature was built. Uploads can be:

  • Images: JPG, PNG, WebP, GIF or AVIF
  • PDF files
  • Plain text or CSV files

Each file can be up to 10 MB.

Limits

Each live app can hold:

What Limit
Records (saved entries) 5,000
Members 250
Uploaded files, in total 250 MB
One file 10 MB
Email alerts 100 a day

The Data page shows how much of each you've used. Past 100 email alerts in a day, new records still save; you just don't get more emails until the next day.

Use the Data page

Open it from Live apps → Data, or click App data in the Live dialog. Bars at the top show your Records, Members and Files against the limits. Below that there's a tab for each collection, plus Members and Files.

Records

Each collection's tab shows its entries, with who saved them (for members) and when. From here you can:

  • Change Who can see and add.
  • Turn on Email me about new ones to get an email for each new entry. It's off until you turn it on.
  • Click Export CSV to download the collection as a spreadsheet.
  • Delete an entry with the trash icon.

A collection marked No longer used by the app is one the live version doesn't save to any more. Its old entries stay until you delete them.

Members

See each member's email, name, how much they've saved, when they joined and when they were last seen. Removing a member signs them out and stops them signing in again. What they saved stays unless you delete it.

Files

See every upload with its size and who uploaded it. Deleting a file can leave a broken image anywhere the app showed it.

Keep your data safe

Heads up Unpublishing an app deletes its records, members and files for good. Export anything you need first with Export CSV.

Updating the live app to a new version keeps all its data.

You're responsible for the data your app collects from visitors. Tell them how you'll use it, and don't use it to collect things like card numbers or passwords for other services. See the Terms for the details.

Use your data from your own code

If you download the project or push it to GitHub, its data calls use pretend data. To connect that code to your live app's real data:

  1. On the Data page, open Use this data from your own code.
  2. Click Create API key.
  3. Copy the line it shows into your project's index.html, before phluffle/data.js. It looks like this:
<script>window.PHLUFFLE_CONFIG = { api: "https://your-app-address", key: "pk_…" };</script>

The key is public, like a website address: the app's access rules still decide who can see and change what. Use Replace key to make a new one (code using the old key stops working until you update it) or Remove key to turn off access from other code.

For developers: the window.phluffle API

Apps built in Phluffle use a small built-in API. Every call returns a Promise and throws an Error with a friendly message you can show to people.

Call What it does
phluffle.db.add(collection, data) Saves a record
phluffle.db.list(collection, { limit, mine }) Lists records, newest first (50 by default, up to 100; mine: true for the signed-in member's own)
phluffle.db.get(collection, id) Gets one record
phluffle.db.update(collection, id, data) Changes fields on a record
phluffle.db.remove(collection, id) Deletes a record
phluffle.auth.signUp({ email, password, name }) Creates a member and signs them in
phluffle.auth.signIn({ email, password }) / signOut() Signs in or out
phluffle.auth.resetPassword(email) Emails a reset link
phluffle.auth.user() / phluffle.auth.current The signed-in member, or null
phluffle.auth.onChange(callback) Runs now and whenever someone signs in or out
phluffle.files.upload(file) Uploads a file and returns { url, name, size, type }
phluffle.live true on the published app

If you're working with a coding agent, it can use the same calls.

Try it in Phluffle. Free to start with 100 credits.

Start building