Test log
Adalo test data
Raw results for the Adalo review. The verdict is in the review.
- Tested
- 26 October 2026
- Tester
- Miles Foster
- Account
- Paid for by RankDude at the public price
- Tests
- 8
- Screenshots
- 12
- Method
- Published methodology
- Environment
- Google Chrome on desktop, the live app on a phone-sized screen
Results
| ID | Test | Key measurement | Score |
|---|---|---|---|
| T01 | Prompt to Working App | Brief to the build reported done: 44 min | 1/5 |
| T02 | Spec Accuracy | Checks passed, of 24 without keys: 12 | 2/5 |
| T03 | Sign-in & Access Control | Scripted attacks blocked: 2 of 2 | 2/5 |
| T04 | Database & Admin | Checks proved: 4 of 6 | 3/5 |
| T05 | Iteration & Credit Burn | Changes that worked first time: 9 of 12 | 4/5 |
| T06 | Publish, Speed & Mobile | Time to publish: 3 min | 3/5 |
| T07 | Export & Ownership | Code files readable on Builder: 1 | 1/5 |
| T08 | Pricing & Cost to Finish | Paid: $30 | 3/5 |
| Overall (in the review) | 2.4/5 | ||
Prompt to Working App
1/5Tested- Method
- The Fitting Room brief was pasted word for word (1,689 characters) into Create with AI on the Adalo home screen at 16:38 UTC on 26 October 2026.
- Brief to the build reported done
- 44 min
- Brief to a published web app
- 51 min
- Fix prompts after the first build
- 5
- Checks passed before the twelve changes
- 12 of 24
- Remark
- The scale gives 1 when the 25 of 30 target (20 of 24 here) was never reached. The app was live in under an hour, but only half right after almost three.
Raw notes
The Fitting Room brief was pasted word for word (1,689 characters) into Create with AI on the Adalo home screen at 16:38 UTC on 26 October 2026. I answered Ada's two questions with "Let AI decide" and kept the build tab open until it reported done. The clock stops when the app is live and 25 of 30 checks pass: 20 of the 24 checks that need no keys of mine.
Ada spent 32 minutes reading the brief and then asked two questions: who will use the app, and how class times are saved. It reported the app built 44 minutes after the brief, and I published the web version 51 minutes after the brief.
The first draft did not work. A member could sign up but not sign in again ("This account does not match the selected role", because no role was saved), the timetable said "No classes listed yet", and Ada said password reset and booking emails were not built because "this platform cannot send emails". Five fix prompts and one approval later, 2 hours 52 minutes after the brief, 12 of the 24 checks passed. The count never reached 20.
- Ada's 32 minutes of reading were its own wait, not mine; they are inside the 44. Credits for roles and class credits were added by hand in the admin screen once Ada had built it.
Spec Accuracy
2/5Tested- Method
- The checks were run against the published web app, by hand, with a note per check.
- Checks passed, of 24 without keys
- 12
- Left out, need the owner's keys
- 6
- Seed facts on the live app
- 9 of 10
- Invented classes, prices or instructors
- 0
- Remark
- 12 of 24 is 50%, in the 2 band (33% to 59%).
Raw notes
The checks were run against the published web app, by hand, with a note per check. The six checks that need your own Stripe and email keys (C24 to C29) are left out, so the thresholds are applied to the 24 that remain: 5 needs 93% or more (23 or more), 4 needs 80% (20), 3 needs 60% (15), 2 needs 33% (8) and 1 is below that.
12 of 24 checks passed, which is 50%, counted before the twelve changes. Passing: sign-up (C01), sign-out and sign-in (C02), the coach and admin screens (C04), the timetable with the three classes (C05), booking, My bookings and cancelling (C07 to C09), a member seeing only their own bookings (C12), the admin adding and deleting a class (C16, C18) and the Ask the studio form with the admin's list (C22, C23).
Twelve failed. Password reset (C03). Places left are not shown (C06). A full class still took a booking (C10) until the later changes. Booking uses no class credit (C11). The coach screen says "Class rosters are not available yet" (C13 to C15). Editing one of the seeded classes failed (C17). The admin could not see every booking, count them per class or export a file (C19 to C21). The $95 pass price is not shown anywhere (C30). Nothing was invented, apart from two taglines.
The twelve changes then lifted two checks: a full class is now refused with "This class has reached its booking capacity", and the admin has a list of every booking. That makes 14 of 24, with nothing that passed before failing after.
- The seed classes appeared only after Ada added a step that runs when a signed-in user opens the app, and they belong to that first user, which is why an admin could not edit them.
Sign-in & Access Control
2/5Tested- Method
- Sign-up, sign-in and password reset for a member, a coach and an admin on the live app, then two attacks.
- Scripted attacks blocked
- 2 of 2
- Password reset
- not built
- Weak spot
- any visitor can sign up as admin
- Remark
- A reset that does not exist, an open admin choice and a self-service credits endpoint put roles close to cosmetic: 2.
Raw notes
Sign-up, sign-in and password reset for a member, a coach and an admin on the live app, then two attacks. I replayed the app's own data requests with the wrong session: a member asking for another member's bookings, and a member calling admin-only actions on the class data. Adalo's Collections API is a Business plan feature, so I could not probe it.
Both scripted attacks were blocked. The bookings request answers only with the caller's own rows, other members' booking numbers answer "Not Found", and without a sign-in it answers 401. A member who sent delete, change or create requests to the class data changed nothing, and a member who opened an admin address saw "Admin access required".
The access model is still weak. The sign-up form lets any visitor choose Admin (and Coach), and I did: it opened the admin screens, with the right to add credits to any member and to add and delete classes. Password reset does not exist ("Password reset by email is not available yet"). After change E07, a member can also write their own class credits, and I set mine to 50. Writing another member's row answered "no such record".
- Adalo's own security checks were not run. The Collections API was not available on the Builder plan.
Database & Admin
3/5Tested- Method
- The six data 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 records inside the tool, and the records export as a file.
- Checks proved
- 4 of 6
- Users, bookings, classes in the data at the end
- 11, 5, 4
- Remark
- Four of six proved is 3.
Raw notes
The six data 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 records inside the tool, and the records export as a file.
Proved (four): the Ask the studio form and the bookings wrote records; they stayed after reloads and after 19 republishes; they stayed after the colour change in E03 and the dark mode in E12; and the data panel lets you view and search records.
Not proved (two). Editing in the data panel did not stick for the Users table: saving a Role or class credits returned the record with the field empty, and Ada said it cannot edit existing Users records. The panel's Export CSV button did not deliver a file in my browser.
The data panel lists Users, Bookings, Classes, Orders, StudioInquiries and Waitlist. At the end it held 11 users, 5 bookings, 4 classes, 0 orders, 1 message and 1 waiting-list entry.
- Deleting a record worked once in the data panel; the other tries did not complete, so delete is not counted as proved separately.
Iteration & Credit Burn
4/5Tested- Method
- The twelve scripted changes, one prompt each, then the live app opened to see whether the change had happened.
- Changes that worked first time
- 9 of 12
- Changes that did not
- 3
- Approvals Ada asked for
- 5
- Time per change
- 1 to 7 min
- Remark
- 9 first-try changes is the 4 band (9 or 10), with no check that passed before failing afterwards.
Raw notes
The twelve scripted changes, one prompt each, then the live app opened to see whether the change had happened. Adalo shows no credit or prompt counter, so I log the time Ada took instead. Ada asked for approval five times before it would change data, and I never bought anything.
All twelve ran. 9 worked first time: a phone number on sign-up with the number shown in the admin member list (E01), Instructor renamed Coach on every screen (E02), dark green and cream everywhere (E03), an About page linked from the profile (E04), a Filter by instructor row (E06), a phone layout with no sideways scroll (E09), an admin-only Export bookings CSV button that copies the file text to the clipboard (E10), a waiting list that tells a member their place (E11) and a Light mode and Dark mode toggle that kept every record (E12).
Three did not. E05 left Power Reformer at capacity 6; Ada said it could not finish the rule, and it also asked me to approve a change that, in its words, would let anyone on the internet see Bookings. I approved it, and I checked afterwards: the bookings still need a sign-in. E07 changed nothing when I planted the bug, and when I reported it Ada added a credit update that fails (it sends no row id), so the credit never comes back; the endpoint it added lets a member set their own credits. E08 added an admin cancel button, but Ada did not build the second email because the platform cannot send emails.
Each change took between 1 and 7 minutes of Ada's time, and a republish took 2 to 3 minutes.
- Change E09 was already true of the first draft. Approval cards were clicked at once; the E05 card's warning was checked after the fact.
Publish, Speed & Mobile
3/5Tested- Method
- Publish the web version from the Publish panel, timed, then a Lighthouse phone run on the start page of https://miles-fosters-team.adalo.com/build-a-web-app-called-fitting-room-for-a-small-pilates-stud (three runs), and a width check at 360 and 390 pixels.
- Time to publish
- 3 min
- Phone speed score
- 53
- Largest paint
- 9.6 s
- Page weight
- 4.1 MB
- Remark
- A median of 53 is in the 50 to 74 band, and the app is on the vendor address only: 3.
Raw notes
Publish the web version from the Publish panel, timed, then a Lighthouse phone run on the start page of https://miles-fosters-team.adalo.com/build-a-web-app-called-fitting-room-for-a-small-pilates-stud (three runs), and a width check at 360 and 390 pixels. App-store publishing is outside the review: nothing was uploaded to Apple or Google.
Pressing Publish web app took about 3 minutes the first time and 2 to 3 minutes for every republish, and the app went live on Adalo's team address. The panel also offers a custom domain through a CNAME record to hosting.adalo.com, which I did not connect. The live app carries a Created with Adalo badge on every screen on this plan.
The phone speed scores were 49, 53 and 53, median 53. The largest contentful paint was 9.6 seconds and the page weighs about 4.1 MB. At 360 and 390 pixels wide there was no sideways scroll and the timetable showed one class per row.
- Start page only; no 100-class seed, no real phone, no custom domain.
Export & Ownership
1/5Tested- Method
- Looking for a way to take the app out: the Code tab, the Publish panel and the data panel.
- Code files readable on Builder
- 1
- Code download
- none
- Remark
- No export of the app: 1.
Raw notes
Looking for a way to take the app out: the Code tab, the Publish panel and the data panel. Read only: I ran no download.
There is no export. The Code tab is a viewer: of 17 screens and 6 components only index.tsx (22 lines) opens, and every other file shows a lock. Under it, "Want the code itself? Talk to us" opens an email to code-export@adalo.com. The pricing page says Builder gets "a sample of Ada's code" and Business can "view all of Ada's code". The code is Expo and React Native.
The data panel has Import CSV and Export CSV buttons, but no file reached my downloads. I did not read the terms.
- The email to code-export@adalo.com was not sent.
Pricing & Cost to Finish
3/5Tested- Method
- The plan page, the billing portal and the pricing page (monthly view) were read on 26 October 2026.
- Paid
- $30
- Prompts typed
- 19
- Plan price after the first month
- $65
- Remark
- A flat price is clear, but there is no usage meter, extra AI credits have no stated price and the app never reached the checks: 3.
Raw notes
The plan page, the billing portal and the pricing page (monthly view) were read on 26 October 2026. Adalo shows no AI credit meter, so I count prompts.
The owner paid $30, the first-month price for a new Builder. The plan page lists Builder at $65 a month, with the next payment on 26 November 2026. Over the test I typed 19 prompts and approved 6 changes; Adalo showed no limit, no counter and no warning, and I never saw a place to buy credits.
I could not cancel. The plan page's Change Plan button opens a plan picker whose Free button only starts a new app, the billing portal offers only monthly or yearly, and the Account page has no cancel link. The next payment is the full price on 26 November 2026, and the live app is still published.
Prices: Free $0 (5 Ada prompts a month), Builder $65 and Business $200; quarterly billing saves 10% and yearly 20%. The pricing page says there are no usage-based charges and no per-action fees, and it lists extra AI credits on Builder without a price. I did not finish the checks, so there is no cost per passing check.
- Yearly and quarterly prices were not tested at the checkout. The cost of running 1,000 bookings a month was not tested; the pricing page says there are no per-action fees.
Coverage
Tested
- One brief built by Ada, with its two questions answered
- 24 of the 30 written checks (C24 to C29 need keys), run on the published web app
- Two access attacks, replaying the app's own data requests
- Sign-up, sign-in and password reset for a member, a coach and an admin
- All twelve changes, one at a time, with a look at the live app after each
- Publishing the web app, timed, a phone speed run and a phone-width check
- The Code tab and the data panel, looking for an export (read only)
- The plan page, the pricing page and the billing portal
Not tested or limited
- Payments and emails need your own keys, so the six checks C24 to C29 were left out and the actions test is not graded; Ada said it cannot send emails at all
- Support: Adalo's ticket form needs a reCAPTCHA check, so my question (how to restrict admin sign-up and how to export) was not sent and support is not graded
- Adalo shows no AI credit or prompt counter, so cost is the plan price and the number of prompts, not credits
- The Collections API is a Business plan feature, so the access attacks used the app's own data requests only
- Speed was measured on the web app's start page, three runs, with no 100-class seed and no real phone
- No custom domain was connected, no iOS or Android build was made and the terms of service were not read
- The Export CSV button in the data panel was clicked, but no file arrived in my browser, so a data file export is not proved
- Three of the test accounts (admin, coach and a fourth member) are new accounts because the first admin and coach accounts had no role saved
Still to test
- Payments and the declined card with your own Stripe key
- Adalo's answer to my support question
- The Collections API and the external databases on the Business plan
- An iOS or Android build
- A custom domain and a timetable with 100 seeded classes
- Uptime on the test app