RankDude

Test log

Base44 test data

Raw results for the Base44 review. The verdict is in the review.

Tested
25 October 2026
Tester
Miles Foster
Account
Bought for this review at the public price
Tests
10
Screenshots
8
Environment
Google Chrome on desktop, plus phone-width screens

Results

IDTestKey measurementScore
T01Prompt to Working AppBrief to live, 25 of 30 passing: 10 min 20 s, 1 prompt5/5
T02Spec AccuracyFinal app: 30 of 304/5
T03Sign-in & Access ControlFlows working: all5/5
T04Database & AdminChecks passed: 6 of 65/5
T05Payments & Email ActionsChecks passed: 4 of 45/5
T06Iteration & Credit BurnFirst try: 11 of 125/5
T07Publish, Speed & MobileLive on the test domain: about 12 min3/5
T08Export & OwnershipCode export on Starter: none (Builder and up)1/5
T09Support & CancellationFirst answer: under 1 min (AI assistant)5/5
T10Pricing & Cost to FinishEverything, message credits: 47.62 of 1004/5
Overall (in the review)4.5/5
T01

Prompt to Working App

5/5Tested
Method
The Fitting Room brief was pasted word for word (1,689 characters) at 08:15:38 UTC.
Brief to live, 25 of 30 passing
10 min 20 s, 1 prompt
30 of 30 passing
1 h 06 min, 2 prompts
Credits, first draft
6.73
Questions asked
1 (approve the Stripe install)
Remark
Under 30 minutes and 5 prompts or fewer is 5/5. The 25-of-30 moment is the one the scale counts; the 30-of-30 moment alone would be 4.

Base44: The first draft in Base44's editor after a page reload: the finished Fitting Room home page.

Base44: The first draft in Base44's editor after a page reload: the finished Fitting Room home page.
T01-1 The first draft in Base44's editor after a page reload: the finished Fitting Room home page.
Raw notes

The Fitting Room brief was pasted word for word (1,689 characters) at 08:15:38 UTC. The clock stopped when the app was live and 25 of the 30 checks passed. Every prompt and its credits are in the ledger.

Base44 asked one thing: to approve a Stripe install, at 08:17:01, which I did from the brief. The build went idle at 08:23:44 with "Stopped before finishing: the live preview isn't picking up the new screens, write continue". A free page reload at 08:24:34 showed the finished app, so no prompt was spent. I published at about 08:25:5x, about 10 minutes 20 seconds after submitting.

25 of the 30 checks were true on that first live version; the first draft used 6.73 credits. The coach role was not applied (four checks) and one line of copy was wrong.

Prompt 2 told Base44 about the coach role and the Team tab (3.81 credits, 310 seconds). It published at 09:07; I set the two coach accounts' roles by hand in the app's own Team tab at 09:13, and 30 of 30 passed at 09:21:37: 1 hour 6 minutes and 2 prompts in all.

  • The preview stalled once and needed a reload; that is counted in the 10 minutes 20 seconds.
T02

Spec Accuracy

4/5Tested
Method
The 30 checks were run against the live app, by hand and by script, with a screenshot per check.
Final app
30 of 30
First draft
25 of 30
Invented rules or copy
1 rule and 4 lines
Remark
28 to 30 passing with nothing invented is 5/5. I count the "no expiry" pass rule as invented, so 4/5.

The 30 checks, grouped

  • Sign-up, log-in, password reset

    First draft
    3 of 3
    Final app
    3 of 3
  • Coach and admin screens

    First draft
    Failed
    Final app
    Passed
  • Timetable details

    First draft
    2 of 2
    Final app
    2 of 2
  • Booking, cancelling, credits, privacy

    First draft
    6 of 6
    Final app
    6 of 6
  • Coach view and attendance

    First draft
    Failed
    Final app
    3 of 3
  • Admin adds, edits, deletes classes

    First draft
    3 of 3
    Final app
    3 of 3
  • Admin bookings and export

    First draft
    3 of 3
    Final app
    3 of 3
  • Contact form

    First draft
    2 of 2
    Final app
    2 of 2
  • Stripe payment and declined card

    First draft
    4 of 4
    Final app
    4 of 4
  • Booking emails

    First draft
    2 of 2
    Final app
    2 of 2
  • Seed facts, nothing invented

    First draft
    Failed ("six sessions a week")
    Final app
    Passed
  • All 30 checks

    First draft
    25 of 30
    Final app
    30 of 30

Base44: The live timetable with 100 seeded classes, on the published app.

Base44: The live timetable with 100 seeded classes, on the published app.
T02-1 The live timetable with 100 seeded classes, on the published app.
Raw notes

The 30 checks were run against the live app, by hand and by script, with a screenshot per check. The inbox and Stripe checks (C03, C26 to C29) were read by hand. I also counted anything the brief never asked for.

The final app passed 30 of 30, and again after all twelve changes. The first draft passed 25 of 30: C04, C13, C14 and C15 (the coach role) and C30 (a line saying "six sessions a week" when the timetable has five).

Unrequested copy is still live: the pricing line "One credit per class, no expiry" (a pass rule the brief never set), three class taglines ("Foundations on the reformer", "Mat work, breath and flow", "A strong, faster reformer session") and "or drop by the studio and say hello" on the About page. No extra classes, prices, coaches or reviews were added.

Base44 also kept leftover bookings of deleted classes in the data.

  • Five of my first measurement's failures were my own script's selector bugs; they passed once fixed, with the app unchanged.
T03

Sign-in & Access Control

5/5Tested
Method
Sign-up, log-in, log-out and password reset for a member, a coach and an admin, then two attacks on the live app with the wrong session: member A reading member B's bookings, and a member calling admin-only actions.
Flows working
all
Attacks blocked
2 of 2
Security panel
8 issues, none about access
Remark
All flows work and both attacks are blocked: 5/5. The one weak spot, an invited coach who stayed a member, was found by my checks and fixed by one prompt (see Prompt to Working App).

Base44: Base44's own security panel after the final scan: 8 issues, none about access.

Base44: Base44's own security panel after the final scan: 8 issues, none about access.
T03-1 Base44's own security panel after the final scan: 8 issues, none about access.
Raw notes

Sign-up, log-in, log-out and password reset for a member, a coach and an admin, then two attacks on the live app with the wrong session: member A reading member B's bookings, and a member calling admin-only actions. Requests and responses are saved as transcripts.

Every flow worked. New accounts need an emailed code (member A got in once before verifying; the other four were refused until the code was typed). The password reset link was requested at 08:49:10, was in the inbox the same minute, and the new password worked. Admins and coaches come in by emailed invite or the Team tab.

Attack 1 was blocked. Member A's own list held only A's rows; filtering by B's email returned nothing, B's booking id returned 404, editing it returned 403, and the cancel function with B's booking id returned 400. Orders and messages also showed only A's own rows, and anonymous calls returned empty arrays.

Attack 2 was blocked. Changing a class returned 403 and deleting one returned 404 (an admin confirmed it still existed). The team-role function answered 403 with "Only a studio admin can manage the studio team", and anonymous calls to the six protected functions returned 401 or 403. The capacity rule is enforced on the server (409 "This class is full").

Base44's own security panel listed 8 issues, none about access: zod (1 known vulnerability, High), vite (6, High) and backend functions that "can be called by anyone" (Low, 5 at first, 8 after the changes). Probing those functions anonymously showed each one checks the caller itself.

  • "Code vulnerability scanning" needs the Builder plan and was not run.
T04

Database & Admin

5/5Tested
Method
Six checks: the form and bookings write real records; they survive a reload, a republish and a design change; the admin can view, filter, edit and delete in Base44's own data panel; records export as a file.
Checks passed
6 of 6
Republishes, nothing lost
7
Remark
Six of six is 5/5.

Base44: The data panel's actions menu, with Export, and Backup & Restore marked Premium.

Base44: The data panel's actions menu, with Export, and Backup & Restore marked Premium.
T04-1 The data panel's actions menu, with Export, and Backup & Restore marked Premium.
Raw notes

Six checks: the form and bookings write real records; they survive a reload, a republish and a design change; the admin can view, filter, edit and delete in Base44's own data panel; records export as a file. Row counts were taken before and after.

Six of six passed. The form and bookings wrote to the ContactMessage, Booking and Order tables. The app was published 7 times with nothing lost, and the colour change and dark mode kept every record.

In the data panel the admin can view rows, search, filter by created and updated dates (there is no per-field filter), edit a cell (saved and survived a reload) and delete (the row moves to Trash, and "Recently deleted" exists). Export is a CSV per table.

"Backup & Restore" is a Premium feature and a test data environment needs Builder. Record limits are not stated.

  • Backup and restore and the test data environment were not run (plan limits).
T05

Payments & Email Actions

5/5Tested
Method
A Stripe test checkout from inside the app with the 4242 test card, a declined card (4000 0000 0000 0002), and the booking, studio-cancel and reset emails read from a seeded inbox.
Checks passed
4 of 4
Click to email
same minute
Remark
Four of four is 5/5.

Base44: After the Stripe test payment: the pass is active and the receipt reads $95.

Base44: After the Stripe test payment: the pass is active and the receipt reads $95.
T05-1 After the Stripe test payment: the pass is active and the receipt reads $95.
Raw notes

A Stripe test checkout from inside the app with the 4242 test card, a declined card (4000 0000 0000 0002), and the booking, studio-cancel and reset emails read from a seeded inbox.

Base44 installed its own unclaimed Stripe sandbox ("Sandbox: no real payments"), so I needed no keys. Checkout opened at $95.00. With the test card the payment succeeded, the success page showed the receipt, the order appeared in the admin's Payments tab and the member went from 0 to 5 credits. A second pass bought later by member A worked the same way.

The app's confirmCheckout function runs on the success page and writes the order. I saw no separate webhook, and I did not test a buyer who closes the tab before the redirect.

The declined card showed "Your credit card was declined" on the Stripe page, with no order and no credits.

The booking confirmation ("Booked: Reformer Basics, Monday 7:00 am") and the admin's "New booking" email arrived in the same minute as the click, at 08:45 UTC, in the inbox and not in spam. The studio-cancel email and the reset link also arrived within the minute. The sender is no-reply@notifications.base44.com, shown as "Fitting Room App".

  • Branded and custom emails need Builder. Base44 notes that emailing people who have not signed up "works once you connect a custom domain".
T06

Iteration & Credit Burn

5/5Tested
Method
The twelve scripted changes, one at a time.
First try
11 of 12
Regressions
0
Credits for the twelve
35.27
Remark
11 or 12 first try with no regression is 5/5.

The twelve changes

  • 1

    Change
    Phone field on sign-up, shown on the admin member list
    Credits
    2.25
    Time
    7 min
    First try
    Yes
    Regression
    None
  • 2

    Change
    Rename instructor to coach
    Credits
    2.97
    Time
    5 min
    First try
    Yes (the route moved and both coach accounts migrated)
    Regression
    None
  • 3

    Change
    Dark green and cream colours
    Credits
    2.25
    Time
    2 min
    First try
    Yes, but subtle: the draft was already green and cream
    Regression
    None
  • 4

    Change
    An About page
    Credits
    2.83
    Time
    3 min
    First try
    Yes
    Regression
    None
  • 5

    Change
    Power Reformer capacity 4, rule holds
    Credits
    2.96
    Time
    21 min
    First try
    Yes (the server refuses the fifth booking)
    Regression
    None
  • 6

    Change
    Coach filter on the timetable
    Credits
    2.40
    Time
    3 min
    First try
    Yes
    Regression
    None
  • 7

    Change
    Planted bug ("do not give the credit back"), then fix
    Credits
    2.82 to plant, 1.69 to fix
    Time
    2 min to fix
    First try
    Yes (fix first try)
    Regression
    None after the fix
  • 8

    Change
    Second email when the admin cancels
    Credits
    1.55, then 2.82
    Time
    2 + 2 min
    First try
    No: the email code worked but the Studio console had no cancel control
    Regression
    None
  • 9

    Change
    Phone layout, one class per row
    Credits
    2.40
    Time
    2 min
    First try
    Yes (the draft was already responsive)
    Regression
    None
  • 10

    Change
    Bookings export for the admin only
    Credits
    1.55
    Time
    1.5 min
    First try
    Yes (a screen restriction only: the one export is in the admin console)
    Regression
    None (one check failed once and passed on a re-run)
  • 11

    Change
    Waiting list with position
    Credits
    3.95
    Time
    5 min
    First try
    Yes
    Regression
    None
  • 12

    Change
    Dark mode toggle, data kept
    Credits
    2.83
    Time
    2 min
    First try
    Yes (persists on reload; classes, orders, bookings and messages intact)
    Regression
    None

Base44: The dark mode toggle at the end of the test, with the bookings kept.

Base44: The dark mode toggle at the end of the test, with the bookings kept.
T06-1 The dark mode toggle at the end of the test, with the bookings kept.
Raw notes

The twelve scripted changes, one at a time. After each change I published and re-ran the 30 checks. Credits, seconds and results are in the ledger.

11 of the 12 changes worked first try. Number 8 needed a second prompt. No change broke any of the 30 checks.

Base44 never asked before a destructive action (it did not need to), and it did not fall into a loop of failed fixes. Change 11 showed one self-corrected test script.

The twelve changes used 35.27 credits including the bug plant (2.82) and the follow-up on change 8 (2.82).

  • Four mistakes in my own check scripts cost no credits.
T07

Publish, Speed & Mobile

3/5Tested
Method
Publish to the Base44 address, connect my test domain with HTTPS (timed), seed 100 classes and 200 bookings through the app's own API, run Lighthouse mobile three times on the log-in page and the timetable, and count layout faults at 360, 768 and 1440 pixels.
Live on the test domain
about 12 min
Median mobile score (6 runs)
74
Layout faults
3
Timetable, 100 classes
about 2.9 s
Remark
A median of 74 is in the 50 to 74 band: 3/5. The domain works and the faults are few, which would give 4 on their own; the speed score decides.
Raw notes

Publish to the Base44 address, connect my test domain with HTTPS (timed), seed 100 classes and 200 bookings through the app's own API, run Lighthouse mobile three times on the log-in page and the timetable, and count layout faults at 360, 768 and 1440 pixels.

The Base44 address was live 12 seconds after I clicked Publish (each republish took 4 to 14 seconds). Base44 refused my first domain name with "You cannot use a domain that contains a social media platform" (the cause is unclear) and accepted fittingroom.test.rankdude.ai. I added the domain at 10:53, a failed DNS command of mine delayed the record to 11:02:12, and HTTPS answered 200 at 11:05:18, 3 minutes 6 seconds after the record. About 12 minutes in all, including that slip.

By default there is no robots tag. The prompt "add noindex" returned "this is a platform setting", changed no code and still cost 1.81 credits. I set it by hand in Dashboard > SEO & GEO (search visibility Off on 14 pages), and curl shows noindex, nofollow on every real page. robots.txt still says Allow: / and sitemap.xml is empty.

The timetable with 100 classes loaded in about 2.9 seconds. Lighthouse mobile (version 13.5.0, run locally because the PageSpeed API quota was spent): log-in page 74, 81, 81; timetable 63, 74, 67; median of the six 74. Largest paint 3.7 to 4.6 seconds, layout shift 0 to 0.215, blocking time 0 ms, 289 and 360 KB.

No page scrolled sideways. I counted 3 faults: the admin classes table is wider than a phone at 360 pixels (it scrolls inside its box), the "Forgot password?" link is 16 pixels high, and header links are about 20 to 28 pixels high at 768.

A web manifest is present (name, icon, theme) and there is no service worker.

  • A real phone check and add to home screen were not done. The Publish dialog has a "Mobile app" tab, which was not tested.
T08

Export & Ownership

1/5Tested
Method
The plan was to export the code, unpack it, run it against my own database and re-run the 30 checks.
Code export on Starter
none (Builder and up)
Data export
CSV per table
Vendor calls in the code
@base44/sdk for log-in, data and functions
Remark
The scale grades what the plan under test can do. Starter has no code export, which is 'no export' on the published scale: 1. Builder and above offer a ZIP and GitHub sync, which were not tested.
Raw notes

The plan was to export the code, unpack it, run it against my own database and re-run the 30 checks.

On Starter, 'Export project as ZIP' opens 'Upgrade Required: ZIP file export is only available on Builder, Pro, Elite and Enterprise plans', and GitHub sync is 'Included in the Builder plan and above'. The owner chose not to upgrade, so no export was run.

What Starter gives: Dashboard > Code shows and edits every file. The front end imports createClient from @base44/sdk, and every page calls base44 for log-in, data and functions, so data calls go to Base44's own servers.

Base44's support assistant said Starter has no full code download, and that the Builder ZIP has front end code, backend functions and data structure, but not data records, secrets, app users or version history. Data export is a CSV per table on Starter.

Terms of service, read on the page on 25 October 2026: section 5.3 'the Customer owns all rights, title and interest in the code and applications generated by the Platform'; section 4.2 gives Base44 'an irrevocable, non-exclusive, worldwide, royalty-free, perpetual, fully paid, sub-licensable right and license' over customer data and output, including to 'train Company software tools (e.g. artificial intelligence and machine learning models)'; section 11.5 'reserves the right, in its sole discretion, to delete all Customer Data and Generated Output'; section 10.1 'the Fees are non-cancelable and non-refundable'.

  • Needs a month of Builder ($50).
T09

Support & Cancellation

5/5Tested
Method
One question through Help & support > Open Support Ticket, then the cancellation as the last step.
First answer
under 1 min (AI assistant)
Human reply
none within 27 min
Cancel
self-serve, 3 screens, period end
Further charge
none listed
Remark
A substantive, correct first reply in under a minute, a self-serve cancel and a billing history with nothing further to pay is a 5 on the published scale. The reply came from an AI assistant; no human had answered within the half hour before the cancel.
Raw notes

One question through Help & support > Open Support Ticket, then the cancellation as the last step.

Ticket #6addfdda (category Billing) sent at 13:02 UTC on 25 October, asking whether Starter can get the full source code and data out. An AI assistant answered in under a minute, correctly and consistently with what I found, and warned it might make mistakes. No human reply by 13:29 UTC, when I cancelled; the ticket stayed open.

Cancelled at about 13:28 UTC through the dashboard: Settings, Plan & Subscriptions, the menu on the plan row, Cancel plan; a dialog listing what changes ('Keep current plan' / 'Continue to cancel'); a retention offer 'Keep building for $9 a month' (Lite), declined; a survey; 'Cancel Subscription'. No email or chat needed.

Result: 'Your plan is set to cancel on November 25, 2026. Reactivate to keep your current credits and features.' Auto Renew Off. Billing History: one invoice, 25 October, Starter, $21.77 USD, Paid; nothing further listed. No refund offered.

After 25 November, per the cancel dialog: up to 5 apps stay published, the Base44 badge returns, custom domains stop working, message credits drop to 25 a month and integration credits to 100, and code editing goes through chat only. At 13:29 UTC both https://fittingroom.test.rankdude.ai and https://fitting-room-pilates.base44.app returned HTTP 200.

  • The human reply time will be read from the ticket later.
T10

Pricing & Cost to Finish

4/5Tested
Method
Prices were read on base44.com/pricing on 25 October 2026.
Everything, message credits
47.62 of 100
Cost at $20 per 100
$9.52
Integration credits
322 of 2,000
Remark
Finished inside the entry plan and a cap exists, but running costs need the next plan and credit prices are "about" figures: 4/5.

What it cost to finish the test app, 25 October 2026

  • Brief to first live app, 25 of 30 passing

    Message credits
    6.73
    Cost at $20 per 100
    $1.35 ($0.054 per passing check)
  • Plus one fix prompt, 30 of 30 passing

    Message credits
    10.54
    Cost at $20 per 100
    $2.11 ($0.07 per passing check)
  • The twelve changes (including the bug plant and one follow-up)

    Message credits
    35.27
    Cost at $20 per 100
    $7.05
  • One extra prompt that changed nothing (noindex)

    Message credits
    1.81
    Cost at $20 per 100
    $0.36
  • Everything

    Message credits
    47.62 of 100
    Cost at $20 per 100
    $9.52

Base44 plans, US prices, 25 October 2026

  • Free

    Monthly
    $0
    Billed yearly
    $0
    Message credits
    25 a month
    Integration credits
    100 a month
    Notes
    Up to 5 apps, no custom domain
  • Starter

    Monthly
    $20
    Billed yearly
    $16 a month
    Message credits
    100
    Integration credits
    2,000
    Notes
    Custom domain; no ZIP, GitHub or branded emails
  • Builder

    Monthly
    $50
    Billed yearly
    $40 a month
    Message credits
    250
    Integration credits
    10,000
    Notes
    Adds GitHub sync, ZIP export, branded emails, AI model select
  • Pro

    Monthly
    $100
    Billed yearly
    $80 a month
    Message credits
    500
    Integration credits
    20,000
    Notes
  • Elite

    Monthly
    $200
    Billed yearly
    $160 a month
    Message credits
    1,200
    Integration credits
    50,000
    Notes

Base44: Base44's pricing page on 25 October 2026, monthly billing: Elite, Pro and Builder.

Base44: Base44's pricing page on 25 October 2026, monthly billing: Elite, Pro and Builder.
T10-1 Base44's pricing page on 25 October 2026, monthly billing: Elite, Pro and Builder.

Base44: Credit usage at the end of the test: 47.62 of 100 message credits and 322 of 2,000 integration credits.

Base44: Credit usage at the end of the test: 47.62 of 100 message credits and 322 of 2,000 integration credits.
T10-2 Credit usage at the end of the test: 47.62 of 100 message credits and 322 of 2,000 integration credits.
Raw notes

Prices were read on base44.com/pricing on 25 October 2026. The credit ledger priced everything from an empty account to the 30 checks at Starter's rate of $20 per 100 message credits.

The whole Fitting Room test used 47.62 of Starter's 100 message credits ($9.52), and 322 of the 2,000 integration credits, mostly my repeated checks of emails and backend calls.

At the limit, "actions that use credits pause until your next reset": a hard stop, not an overage bill. There is no auto top-up or credit pack, only a plan upgrade. Unused credits expire at each monthly reset (renews 25 November 2026).

Running it: Base44's published rates (docs.base44.com/Getting-Started/Credits, read 25 October) are about 1 credit per email (about 2 from a custom domain) and 1 per 100 backend calls, with database reads and writes free. 1,000 bookings a month sending 2 emails each is about 2,000 credits, or about 4,000 on a custom domain: over Starter's 2,000, inside Builder's 10,000. Stripe fees are separate.

Surprises: a prompt Base44 answered with "no code needed" still cost 1.81 credits, and Starter lacks ZIP, GitHub, branded emails, code security scanning and test data.

  • A welcome offer banner showed 30% off yearly plans for 48 hours; prices change, so the date matters.

Coverage

Tested

  • One brief built, published and checked with 30 written checks
  • Two scripted attacks on the live app
  • Six database and admin checks
  • Stripe test checkout, a declined card and two emails
  • Twelve changes with the 30 checks re-run after each
  • Publishing, a test domain, noindex, 100 seeded classes, 18 Lighthouse runs and three layout widths
  • One support ticket
  • Plans, credits and the cost to finish

Not tested or limited

  • Export was not run: Starter cannot download the code, and ZIP and GitHub need Builder at $50
  • Support: a human reply had not arrived when I stopped, and the cancellation was not done yet
  • A real phone check and the app-store route (the Publish dialog has a Mobile app tab) were not tested
  • Builder-only features were seen and skipped: branded emails, code vulnerability scanning, test data environment, AI model select, backup and restore

Still to test

  • Export: Builder ZIP run against my own database (test 8)
  • Human support reply time and the cancellation (test 9)
  • A real phone check and add to home screen
  • Uptime on the test app
What these results meanRead the full Base44 review