SurveyFace to Thisys
A survey platform that took about 14,000 person-days to build across three versions, rebuilt in six weeks by its founder working with AI and moved onto a modern, tested stack. The client was us: it is our own product. That is why we can publish the numbers.
The starting point
SurveyFace was an online survey service that ran commercially for well over a decade, until new sign-ups closed in 2023. Building it took about 14,000 person-days of development effort between 2009 and 2014.
| Year | Version |
|---|---|
| 2009 | Concept and planning begin in Australia |
| 2010 | Version 1 goes live as OnlineSurveyExport.com (OSE) |
| 2011 | Version 2, still on OSE |
| 2012 | Version 3 launches as SurveyFace.com |
| 2014 | Main development ends; the product moves to maintenance |
| 2023 | New sign-ups close |
By 2026 it could not be patched any further. We measured the code before we touched it:
| What we found | Why it mattered |
|---|---|
| 93,663 lines of PHP across 1,063 files, no framework | Behaviour was spread across page scripts. One class driving the respondent experience was 4,875 lines long. |
The old mysql_* database functions in 116 files | Removed in PHP 7.0, so the system was tied to PHP 5, which stopped getting security updates at the end of 2018. |
| Passwords hashed with MD5; no prepared statements anywhere | Weak credential storage and a standing SQL-injection risk. |
| No automated tests, no schema migrations, no dependency manager | Every change was a manual risk, and nobody could prove the system still worked afterwards. |
| Answers stored as newline-separated text by position | Cheap to save, expensive to analyse; reordering a question could change what old data meant. |
Source: our measurement of the SurveyFace source tree, September 2026.
What we did
We rebuilt the product from scratch as a single, strictly typed TypeScript application on Next.js and PostgreSQL, hosted in Sydney. AI wrote most of the code. Every change was directed and reviewed by the engineer accountable for it, and had to pass the test suite before it could go anywhere.
| Date (2026) | Milestone |
|---|---|
| 26 August | First commit of the rebuild |
| 20 September | Running in production under the new name, Thisys |
| 2 October | Public launch on a clean production database |
| 8 October | Release 1.1.0002 live, after an independent validation round |
| 10 October | Migration of SurveyFace accounts, surveys and responses (scheduled; results to follow) |
By 8 October the project had about 3,500 commits, 19,284 unit tests and 5,417 browser tests running on desktop, tablet and mobile screen sizes.
Independent validation found three serious problems. All three were fixed before release.
Before each release, a separate validation run scores the product against written claims and test cases, the way an outside tester would. For release 1.1.0002 it scored the core product 9.24 out of 10. On the way there it found three high-severity defects. All three were fixed, given regression tests and re-checked before the release went live, so it shipped with no open critical or high defects. Each medium-severity finding was either fixed the same way or written up with a justification the product owner accepted.
That is the point of the method. AI-written code has defects, as all code does. What matters is a process that finds them before your customers do.
The migration
Moving real customer data is where most rebuilds go wrong, so we rehearsed it on a full copy of production data and reconciled every count before the real move.
| Rehearsal (October 2026) | Count |
|---|---|
| User accounts | 16,173 |
| Surveys | 28,940 |
| Responses | 564,863 |
| Individual answers | 4,776,227 |
The live migration is scheduled for 10 October 2026. We will publish its results here about two weeks later: the counts reconciled, the downtime and any issues found.
Before and after
| SurveyFace (before) | Thisys (after) | |
|---|---|---|
| Language | PHP 5, untyped | TypeScript, strict |
| Database | MySQL, queries built as strings | PostgreSQL through an ORM, versioned migrations |
| Passwords | MD5 | Argon2id |
| Automated tests | None | About 24,700 |
| Hosting | DigitalOcean, New York | DigitalOcean, Sydney, behind Cloudflare |
| Development effort | About 14,000 person-days (2009 to 2014) | Under 40 person-days (26 Aug to 8 Oct 2026) |
Effort counts people's working time, at 8 hours per person-day. SurveyFace: the development team's working days from 2009 to 2014, at 240 days a year (52 five-day weeks less 20 days of holidays), plus the founder's 40 hours a week from 2010 to 2014; maintenance after 2014 is not counted. Thisys: the founder's 40 to 50 hours a week for 6 weeks (240 to 300 hours). The cost of AI services is not included.
Have a system like SurveyFace?
Start with a fixed-fee assessment. You get the plan, the risks and a fixed price for the rebuild.