Test log
Noloco test data
Raw results for the Noloco review. The verdict is in the review.
- Tested
- 27 October 2026
- Tester
- Miles Foster
- Account
- Free demo account, signed up by RankDude, nothing paid to the brand
- Tests
- 9
- Screenshots
- 6
- Method
- Published methodology
- Environment
- Google Chrome on desktop, with separate browser sessions for each member, coach and admin
Results
| ID | Test | Key measurement | Score |
|---|---|---|---|
| T01 | Prompt to Working App | Brief to a live app: 44 min | 4/5 |
| T02 | Spec Accuracy | Checks passed, of 24 without keys: 20 | 4/5 |
| T03 | Sign-in & Access Control | Scripted attacks blocked: 2 of 2 | 4/5 |
| T04 | Database & Admin | Checks proved: 5 of 6 | 4/5 |
| T05 | Iteration & Credit Burn | Changes done first time: 9 of 12 | 4/5 |
| T06 | Publish, Speed & Mobile | Time to publish: a few seconds | 3/5 |
| T07 | Export & Ownership | Code export: none | 1/5 |
| T08 | Support & Cancellation | First reply from a person: about 20 min | 4/5 |
| T09 | Pricing | Credits used, of 35 free: about 18 | 4/5 |
| Overall (in the review) | 3.6/5 | ||
Prompt to Working App
4/5Tested- Method
- The Fitting Room brief was entered at 18:57 UTC on 27 October 2026.
- Brief to a live app
- 44 min
- Prompts, of which fixes
- 3, 2
- Approvals clicked
- 4
- Credits for the build
- about 6
- Remark
- Under 90 minutes and 15 prompts or fewer is a 4. At 44 minutes in 3 prompts it misses a 5, which needs under 30 minutes.
Raw notes
The Fitting Room brief was entered at 18:57 UTC on 27 October 2026. The chat box stops at 1,000 characters and the brief is 1,689, so it went in as an attached text file, word for word, with one line asking Nola to build the app exactly as the brief says. The clock stops when the app is live at a public address.
Nola planned a nine-step list, built the tables, fields, roles and permissions, and asked for approval before creating the three seed classes. After about 16 minutes the run ended with 'Something went wrong. Please try again.' A page reload was needed before the chat took a message, and one line, 'Continue where you stopped', finished the job in about four minutes (fix prompt 1).
The app still had no instructor, admin or credits for anyone. A second prompt (fix prompt 2) asked for the roles of five test accounts, the instructor links and a 5-credit order for each member; Nola said it could not set page visibility by role, which was left as it was. I switched the app to Live Mode and published at 19:41 UTC, 44 minutes after the brief, in 3 prompts and 4 approvals.
Building used about 6 credits of the 35.
- The first run's error cost about 16 minutes before I could carry on, and the roles needed a second fix; both are counted.
Spec Accuracy
4/5Tested- Method
- The checks were run on the live app with real sessions: two members, two coaches and an admin, by hand and by short scripts.
- Checks passed, of 24 without keys
- 20
- Left out, need the owner's keys
- 6
- Failed
- 4
- Invented classes or prices
- 0
- Remark
- 20 of 24 is 83.3%, in the 80% to 92% band: 4.
Raw notes
The checks were run on the live app with real sessions: two members, two coaches and an admin, by hand and by short scripts. The six that need your own Stripe and email keys (C24 to C29) are left out, so the thresholds apply to the 24 that remain: 5 needs 93% or more (23), 4 needs 80% (20), 3 needs 60% (15), 2 needs 33% (8).
20 of 24 checks passed, which is 83.3%. Passing: sign-up and landing logged in (C01), log-out and log-in (C02), the reset email and the new password (C03), the role screens (C04), the timetable with the three classes, days, times and durations (C05), instructor, capacity and places left (C06), booking, My bookings and cancelling with the place freed (C07 to C09), the full-class rule (C10), another member's bookings hidden (C12), the coach seeing only their own classes, the members booked and Attended saved (C13 to C15), the admin adding and editing a class (C16, C17), every booking and the count per class (C19, C21) and Ask the studio with the admin's list (C22, C23).
Four did not pass. A member with no credits is not told to buy a pass: the Book button just disappears (C11). The admin cannot delete a class in the app, only in the data panel (C18). The bookings CSV puts the member's name in the 'Member email' column (C20). And two seed facts, the owner's name Dana Okafor and the $95 pass, appear nowhere in the app, so the facts check fails (C30).
The pages hold the brief's facts, apart from one line Nola wrote itself on the About page, 'A small Pilates studio in Austin, TX.'
- Member credits were created by Nola as order records, because the $95 pass cannot be bought in the app.
Sign-in & Access Control
4/5Tested- Method
- Sign-up, log-in, log-out and the password reset for members, coaches and an admin on the live app, then the two scripted attacks with the app's own data requests, and four more writes a member should not make.
- Scripted attacks blocked
- 2 of 2
- Extra writes refused
- 3 of 4
- Password reset
- worked
- Weak spot
- admin pages in every menu
- Remark
- Both attacks are blocked and sign-in works, but admin pages show to every role and the fix is in the builder's Visibility tab: 4.
Raw notes
Sign-up, log-in, log-out and the password reset for members, coaches and an admin on the live app, then the two scripted attacks with the app's own data requests, and four more writes a member should not make.
Both attacks were blocked. Asking for the bookings returned only my own six rows, never the other member's, and asking for the other member's bookings by id returned nothing. The admin-only delete of a class answered 'You do not have permission to do this'. So did changing a class, and creating an order to give myself credits. A member could edit their own profile, which is as intended.
Open sign-up gives every stranger the default User role, which Nola gave the member's rules. Only the builder can make someone an admin: Noloco's support person said Team Admin is reserved for internal team members, and roles are assigned in Data, Users. I could not set a role in the grid by hand, so Nola did it.
One weak spot Nola could not fix: page visibility by role. The All bookings, Members and Ask the studio pages show in every role's menu, with an Export CSV button on All bookings. A member gets only their own rows, but the doors are open. Capacity also holds only after the fact: a seventh booking sent straight to the server was accepted for a moment, then cancelled by a workflow.
- The fourth extra write, editing my own profile, succeeded by design. Page visibility was not set by hand, so the attacks were run against the app as Nola built it.
Database & Admin
4/5Tested- Method
- The six data checks: the form and the bookings write real records, they survive a reload, a publish and a design change, the admin can view, filter, edit and delete them, and they export as a file.
- Checks proved
- 5 of 6
- Tables in the data panel
- 6
- Rows used, of 25,000 on Build
- 17
- Remark
- Five of six proved is a 4.
Raw notes
The six data checks: the form and the bookings write real records, they survive a reload, a publish and a design change, the admin can view, filter, edit and delete them, and they export as a file.
Five of six were proved. The Ask the studio form and the bookings wrote records. They were still there after reloads and after more than ten publishes, and after the colour change (E03) and the dark mode (E12): All bookings still showed 10 rows. The admin viewed, filtered and edited rows, and deleted a row in the data panel; the data panel's Export also worked.
The sixth, the admin's CSV, did not pass: the file downloads with the right columns, but the 'Member email' column holds the member's name. Noloco's guide says a linked field exports as a name column and an ID column.
Six tables sit in the data panel: User, Booking, Class, Inquiry, Order and Waiting list entry. An unrequested user, 'Jane Blogs' with sample@noloco.io and the Team Admin role, appeared in the user list.
- The data panel's own export was tested on the User table, which holds the test accounts, so I did not publish it.
Iteration & Credit Burn
4/5Tested- Method
- The twelve scripted changes, one prompt each (the planted bug is two), on the live app, which I published after each.
- Changes done first time
- 9 of 12
- Done in part
- 2
- Not done
- 1
- Credits for the changes
- about 12
- Remark
- Nine first-time changes with no regression is the 9 to 10 band: 4.
Raw notes
The twelve scripted changes, one prompt each (the planted bug is two), on the live app, which I published after each. I stopped at 3 credits; 17 were left, so all twelve ran. After each I read Nola's answer and checked the live app for what could be seen; the 24 checks were not re-run in full.
Worked: renaming the role to Coach (E02, the field labels still say Instructor), the About page (E04, with a line Nola wrote itself), Power Reformer's capacity 4 (E05, after one question I answered with the option that keeps the brief's rule, so it shows -2 places), a filter by instructor (E06), the planted credit bug (E07: I asked for the give-back to be removed, Nola did it, and when I reported the bug it said it was not one and put it back; a cancel then gave the credit back), the timetable on a phone (E09, one class per row and no sideways scroll at 360 and 390 px), a waiting list (E11) and a dark mode toggle (E12).
Partly: the phone number (E01) is on the admin's Members list but not on the sign-up form, which Noloco does not let you extend; the green colour (E03) is the darkest green on offer, with no cream; and the second email (E08) was 'already built', since every cancel emails the member, so an admin cancel does too. Not done: the admin-only export (E10), because Nola cannot set a button's visibility by role.
The waiting list sent 'You're number 1 on the waiting list' by email, but the My waiting list page stayed empty. No change broke another, and the data was still all there.
- Two prompts overlapped when my script typed, and Nola treated them as one request; this is counted in the credits. E06's filter is a 'contains' text box, not a list.
Publish, Speed & Mobile
3/5Tested- Method
- Publish to the noloco.co address, timed, then three Lighthouse phone runs on the log-in page of https://fittingroom-rankdude.noloco.co/login, and a width check at 360 and 390 px.
- Time to publish
- a few seconds
- Phone speed score (median of 3)
- 53
- Largest paint
- 15.8 s
- Page weight
- 3.6 MB
- Remark
- A median of 53 is in the 50 to 74 band: 3. The app is also on the vendor address only.
Raw notes
Publish to the noloco.co address, timed, then three Lighthouse phone runs on the log-in page of https://fittingroom-rankdude.noloco.co/login, and a width check at 360 and 390 px.
Publishing took a few seconds, and the app is private until you switch Live Mode on: 'Test Mode' lets only builders in, 'Live Mode' lets anyone in the user table in. The address is the name I chose, then .noloco.co, and a custom domain is a Build feature; the free plan marks 'Noloco branding' and 'Noloco domains'. The live app carries 'Powered by Noloco', and on a phone the label overlaps the logo.
The three phone scores were 53, 52 and 55, median 53. The largest contentful paint was 15.8 seconds at the median, and the page weighs 3.6 MB. The timetable has no sideways scroll at 360 and 390 px, but each class is a tall stack of fields. A timetable with 100 seeded classes and a real phone were not tested.
- Log-in page only, no seeded classes, no custom domain, no real phone.
Export & Ownership
1/5Tested- Method
- The data export in the app and the data panel, the vendor's answer and its terms, read on 27 October 2026.
- Code export
- none
- Data export
- CSV per table or view
- Support's answer
- no export of the app
- Remark
- The scale grades what the plan can do. There is no export of the app, which is 'no export' on the published scale: 1. The CSV of your data is a real export, but it is not the app.
Raw notes
The data export in the app and the data panel, the vendor's answer and its terms, read on 27 October 2026.
You can export data, not the app. A button on any table view downloads its rows as a CSV, and the data panel's Export does the same per table. Noloco's support person wrote: 'We do not provide a native feature to export your entire app's configuration or the underlying code as a package.' Nothing in the builder offers one.
The terms of service, last updated 26 April 2022, section 7: 'You retain all right, title, and interest in and to your Direct User Content', and Noloco takes a licence to use it only to run the platform. Your data is yours; the app is not portable.
- I did not look for an export on the Build plan beyond the plan page, which lists none.
Support & Cancellation
4/5Tested- Method
- One question sent through the in-app chat on 27 October 2026 at 20:10 UTC, asking the three standard things: how to stop sign-ups becoming admins, how to export data and code, and how to cancel and delete the account.
- First reply from a person
- about 20 min
- Questions answered
- 3 of 3
- Cancel needed
- no, free
- Remark
- A person replied in under 4 hours and answered everything; nothing was charged and there is no cancel on Free, but deleting the workspace needs a message. It sits between 3 and 5: 4.
Raw notes
One question sent through the in-app chat on 27 October 2026 at 20:10 UTC, asking the three standard things: how to stop sign-ups becoming admins, how to export data and code, and how to cancel and delete the account.
An AI agent replied within a minute and said it could help only with the plan. A person, Pranay, joined about 20 minutes after my question and answered all three. New sign-ups get the User role, and Team Admin is reserved for the team, assigned in Data, Users, with invite links to choose the role for a link. The export button gives a CSV, and there is no export of the app or its code. On the free plan there is nothing to cancel; to delete the workspace you delete the apps and contact support, who verify the request.
Because the account never paid, there was no cancel, no invoice and nothing to check afterwards. The trial ends by itself on 10 November 2026 and the workspace becomes Free.
- I did not delete the workspace or the app, so the live test app stays up for the uptime record.
Pricing
4/5Tested- Method
- The pricing page, the plan page and the credit meter, read on 27 October 2026.
- Credits used, of 35 free
- about 18
- Build, monthly
- $79
- Workflow runs used, of 100 on Free
- 20
- Remark
- Finished inside the free credits and one plan up from entry for the app as built: 4.
Raw notes
The pricing page, the plan page and the credit meter, read on 27 October 2026. Cost to finish is every credit used from the first prompt to the last change.
The whole app, with 3 build prompts and 13 change prompts, used about 18 credits, half of the 35 free ones. A cap exists: there is no top-up in the way, and nothing is billed past it.
The free plan could not hold this app as built: it allows 2 user roles and the app has four (Team Admin, Coach, Member and User). Keeping it live, with a custom domain and no Noloco label, means Build at $79 a month, with 250 credits.
- The credit meter lags a few minutes behind each prompt, so per-change costs are approximate.
Coverage
Tested
- One brief built, published and checked with 24 of the 30 written checks (C24 to C29 need keys)
- Two access attacks on the live app's own data requests, and four more writes a member should not make
- Six database and admin checks, using the app and the data panel
- All twelve changes, one at a time, with a live check of what could be seen
- Publishing to the noloco.co address, three phone speed runs and a phone width check
- A question to Noloco's chat support, answered by a person
- The plan page, the credit meter and the free plan's limits
Not tested or limited
- Payments and emails need your own keys, so the six checks C24 to C29 are left out and the actions test is not graded. Noloco itself has no payment feature: Nola said so, and offered a Stripe Payment Link plus an outside tool. The booking confirmation, the sign-in, the reset and the waiting-list emails did arrive
- This was the free sign-up, which includes a 14-day trial of Build. I did not switch the workspace to the Free plan, because that would have taken the live app down and could not be undone. What Free blocks is read from the plan page, not from a failed attempt: 2 user roles (the app has four), 100 workflow runs (the test used 20), 2,000 rows (17 used) and no custom domain or public apps
- The brief is longer than the 1,000-character box, so it went in as an attached text file, word for word, with one line of instruction
- Role-based page visibility cannot be set by Nola. I did not set it by hand, so the admin pages and the Export CSV button show in every role's menu; the data behind them stays hidden
- Speed was measured on the log-in page only (Lighthouse on this machine), with no 100 seeded classes and no real phone; no custom domain was connected
- The Spec checks ran with real sessions for two members, two coaches and an admin, but credits for member A and B were created by Nola as order records, not bought
- Pricing was read once, on 27 October 2026. Reviews from other users were not read for this draft
Still to test
- Payments with your own Stripe key through a Payment Link and a relay
- The same app on the Free plan, after the trial, to see what it stops
- Admin-only pages set by hand in the Visibility tab, and the attacks again
- The studio notification email to an address that exists
- A custom domain on Build and a timetable with 100 seeded classes
- A real phone and layout faults at three widths
- Reviews from other users