What this is
This environment runs LimeSurvey, the leading open-source survey platform, together with a PostgreSQL database and a dedicated results API built by Urbanly. Everything on this page is served from a single self-hosted stack: surveys are authored and answered here, responses are stored in a database we control, and results are retrievable through an authenticated web API — the same mechanism that would later feed reporting tools such as Power BI.
The goal of this demo is to show that self-hosting the survey platform is feasible: surveys can be built with the same sophistication as in Qualtrics (conditional logic, quotas, multi-language, participant tokens), while the data never leaves infrastructure that you own or control.
Explore the demo
Take the survey
Answer the live demo survey — with conditional branching — exactly as a respondent would. No account needed.
Open the surveyView the results
A live summary of every response collected so far, computed through the results API.
View results 🔒 Requires loginHow it works
A short technical overview of the architecture behind this demonstration.
Architecture 🔒 Requires loginWhat is already working in this demo
- Survey authoring through the LimeSurvey administration interface
- Public survey participation, including conditional branching (open links or per-participant tokens)
- All responses persisted in PostgreSQL, on infrastructure we operate
- Results retrievable as JSON through an authenticated HTTP API (Auth0)
- A live results summary page, itself a consumer of that same API
Proposed first development phase
Building on this demonstration, the first development engagement would deliver a production-ready platform in four steps, plus one optional add-on:
- Production hosting The complete stack — survey platform, database, API and web server — deployed to production with TLS and hardened access. Who hosts it (The Urban Advisory's own infrastructure, or Urbanly-managed hosting for a monthly fee) is an open decision — see open questions below.
- Automated backups on Google Cloud A scheduled backup mechanism storing encrypted, versioned snapshots in Google Cloud Storage: full database dumps, uploaded files, survey definitions, and database-independent exports of all responses — with a tested, scripted restore procedure.
- One-time migration of the existing Qualtrics survey The survey, as exported from Qualtrics on an agreed snapshot date, is rebuilt in the new platform — question logic, branching and languages included — and validated side-by-side. The migration is complete when The Urban Advisory can run the survey from the new platform (i.e. respondents can answer it and responses are collected). It is a one-time migration: subsequent modifications to the survey are not included in this development.
- Feeding results into the existing Power BI dashboards The Urban Advisory currently loads Qualtrics CSV exports into Power BI through a script of its own. That script is used as-is and is not modified by this development. Instead, the script is provided to Urbanly so its input format can be analyzed, and the new platform's export is implemented to be compatible with that format — validated by running the actual script against it.
- Survey administration access Optional Administration accounts, per-survey permissions and a hands-on walkthrough so The Urban Advisory's team can modify the survey and create new ones themselves after the migration — the platform's admin interface is the same one used to build this demo. Without this option, survey changes after migration are separately quoted engagements.
Scope & responsibilities
Before development starts, both parties agree in writing on what this first development covers. As a starting point:
Included
- The four steps above (plus the optional add-on, if taken)
- Side-by-side validation of the migrated survey before switch-over
- Export compatibility with the existing Power BI script, verified with the real script
Not included
- Modifications to the survey after the migration is accepted (available via the optional admin access, or as separately quoted work)
- Creation of new surveys, translations, or survey content work
- Any modification to the Power BI script or the dashboards themselves
- Data analysis or reporting beyond the export feed
- Respondent support
Responsibilities
- Urbanly — platform availability (commercially reasonable efforts), scheduled backups with defined retention, security updates of the platform, TLS, incident response. Recovery guarantees are bounded by the backup schedule (e.g. daily backups mean a worst case of up to 24 hours of data loss).
- The Urban Advisory — survey content and its correctness after handover, respondent communication and consent, safekeeping of credentials, and everything on the Power BI side.
Pricing
One-time development fee
A fixed fee covering the first development phase as scoped above. The amount is quoted formally once the open questions below are settled (in particular the hosting model and the historic-data decision, both of which affect effort).
Monthly fee — only if Urbanly hosts
If The Urban Advisory opts for Urbanly-managed hosting, a monthly fee applies, composed of the actual infrastructure cost (server plus Google Cloud backup storage) plus a fixed management percentage covering operation, monitoring, platform updates and backup verification. Transparent cost-plus: the infrastructure cost is passed through at cost. Amounts to be detailed in the formal quote. If The Urban Advisory hosts on its own infrastructure, no monthly fee applies — operation is then on The Urban Advisory's side.
Out-of-scope work
Anything outside the agreed scope — survey modifications, new surveys, script or dashboard changes — is quoted separately before any work starts.
Legal & data protection
Survey responses are personal data. In this arrangement The Urban Advisory acts as data controller and Urbanly as data processor; the engagement would therefore be accompanied by a data processing agreement naming the subprocessors involved (the hosting provider, Google Cloud for backups, Auth0 for identity) and disclosing where the data physically resides. On termination, all data — database, uploaded files and exports — is handed over in full: no lock-in is part of the point of self-hosting.
Open questions
Decisions to make together before the development is quoted and started:
- Who hosts, and under which domain? Two options. (a) The Urban Advisory hosts the stack on infrastructure it owns — full ownership, operation on its side. (b) Urbanly hosts and operates it for the monthly fee described above (amount TBD). Staying at tua.citycompass.io under option (b) is the most economical path — this demo is the proof that it works. A domain owned by The Urban Advisory is equally possible under either option, with a small additional setup cost.
- How is the historic data merged? Responses already collected in Qualtrics presumably need to appear in the same Power BI dashboards as new responses. Whether they are merged into the new platform's export feed, kept as a frozen historical file combined by the script, or handled otherwise is a scope decision to make — and to quote — explicitly.
- Snapshot date for the Qualtrics export The survey version that will be migrated — changes made in Qualtrics after this date are out of scope.
- Data residency requirements Whether the data must reside in a particular country or region — this constrains the hosting options.
- Expected respondent volume Sizing of the server and backup storage — this feeds the hosting cost.
- Accounts How many people need survey administration access, and how many need access to results.
- Parallel-run period How long both platforms run side by side before Qualtrics is cancelled.