CampSoftware is made up of a fantastic team of people who loves developing Apps to solve problems.

Phone: 407-282-5585
Our blog posts in your email:

Stacks Image 1027

Xanadu for Xojo

Xanadu makes developing Xojo database driven Web Apps easier for everyone, especially for FileMaker developers with coding experience.

Xojo Web Apps run and are hosted on Mac, Windows, Linux, or even Raspberry Pi computers. People can access the Web App use their browser on just about any device.

How does Xanadu make it easier?

In the Overview video below, we show how to easy it is to add a database field to an existing Web Page. With Xanadu, all you need to do is drag a control, like a TextField, to the page and set its Table Name and Column Name. When Xanadu loads the fields, it looks at the page and makes a list of all of the controls, finds the data, and then sets the fields. When the person clicks out of the field, Xanadu saves the field data. There's no longer a need to write code to simply set or save data in each field.

Without Xanadu, you would have to manually make a list of all the fields, query the database, and then write code to set each control on the page. Next comes saving the data which would more code written to get the value of each control, then update the database with the data. That’s not a huge amount of work for one field, but multiply that out by 20 or more controls and it becomes a job. Let's now assume that all the code is up and running and you need to add a few fields to the page. That means updating the code to load and save each field. Xanadu does all that work for you!

Why do I need Xanadu?

We've been developing with FileMaker and Xojo since the 1990's. We love both platforms but the FileMaker price increases and licensing changes in versions 13, 14, and 15 have made FileMaker Pro and FileMaker Server extremely expensive. So we looked into what it would take to build a FileMaker like solution in Xojo. It took some time, but now we have an excellent foundation for building Web Apps that can scale.

While we really love Xojo's development tools, their forums, and the amaingly responsive Xojo Team, the cost of Xojo is excellent as well. Xojo's pricing is developer based and Apps built with Xojo are royalty free. That means that the developer buys Xojo and users of the developed App don't need to purchase anything else.

Xanadu, XDC Edition

At the Xojo Developer Conference, We demoed Xanadu and wanted to share the source code. Just fill out the form below and we'll email you a download link. After you unzip the file and have Xojo running, open the project file and hit run! Don't forget to check out the next generation below. :)

First Name
Last Name

Xanadu, The Next Generation

Since XDC, Xanadu has drastically changed how it works. Xanadu now works with either SQLite or MySQL and can work with Xojo's supported databases without much work. Each field type, like WebTextFields, have been subclassed to make adding functionality easier.


Check out the videos below to learn about how Xanadu works to make working with databases easier.

$300 per Developer.

  • Free limited email support.
  • Full unlimited support at our hourly rate, paid in advance.
  • Free upgrades for one year.
  • Xanadu has a few requirements which are listed below.

Getting Started with Xanadu

Xojo, MBS Xojo Complete, and MBS Xojo DynaPDF have an endless evaluation modes. You can purchase them when you are ready.

  • Download and Install Xojo:
  • Download MBS Xojo Complete Plugin:
  • Copy the MBS Plugins into the Xojo Plugins Folder.
  • Launch Xojo.
  • Download the Xanadu Project and 'database.SQLite'.
  • Open and Run the Project file with Xojo.
  • Once the App Compiles and Runs, the App will Launch and a Browser window will open.
  • Login with the user name 'hal' and password 'hal'.
  • The Contacts Page will show how the interface works.
  • The Other Page will show an on screen keypad and the HTMLViewerControl.


  • Requires Xojo to test and compile.
  • Requires several MBS Xojo Plugin parts. We highly suggested MBS Xojo Complete.
  • Requires the MBS Xojo DynaPDF for printing to PDF. DynaPDF is included in the Xojo Complete download, but is licensed separately.
  • Web App Deployment and Browser Requirements:


Xojo Web Apps can be run on Mac, Windows, Linux, or Raspberry Pi computers as either a standalone or cgi app. Standalone Apps have everything included and only need to be launched to make them accessible. CGI Apps can be run on web hosting providers, but we prefer standalone apps.

Future Plans

  • Audit Log to work in Sqlite or MySQL [IN PROGRESS]
  • XanPDFMaker to use gPDF to make using font styles easier.
  • On Save, compare the controls with the database data. If different, ask the user to revert or save.

Questions and Answers

Q: Can you add a feature for me?
A: That depends on what you need! :) Seriously, just ask and we'll try!



  • 2017

    Open or Close
    - [NEW] ContactsPage: Added a non visible button as an example how to query and show records in the list. this will hide the SearchField and show a label stating 'Showing Found'.
    - [NEW] ContactsPage: Added an 'All' button to show all records, hide the 'Showing Found' label and show the SearchField.
    - [NEW] Settings for App Icon: The App Icon is stored as an XFS File rather than a Base64 string. Changed the App Icon on the Login and MenuPane from an ImageView to a XanWebImageViewHTML. Note: Since each WebPage is set to "Implicit Instance" and the XanWebImageViewHTML controls are loaded On Open, this effectively caches the image on the WebPage until it is closed.
    - [NEW] Settings Users: Add, edit, or delete Users. Checkboxes for Active and Admin. Fields for Email, Work Phone, and Mobile Phone. Passwords are Hashed against a User unique Seed.
    - [NEW] SQLite Support: Can now use either MySQL or SQLite. If using SQLite, the database file will be automatically created if the file is missing. Once connected, the SchemaCheck checks to see of the Settings Table exists and checks the Version. If needed, the tables and sample data is loaded using an SQL Dump File which is stored as a constant in XanQuery.
    - [NEW] Xan: Added TextFormatNumberMask Method.
    - [NEW] XanWebTextField can now have Formats set as a property in the inspector: FormatCaseLower, FormatCaseTitle, FormatCaseUpper, FormatDate, FormatTimestamp, FormatPhone, FormatInteger, FormatCurrency, FormatDouble, FormatPrecentage, FormatDecimalPlaces.
    - [NEW] XFS now included for Images Storage.
    - [CHG] AuditLog: Updated to no longer exclude tables to audit, but rather which to include. In XanQuery.Connect, the LogAuditTableNames can be set for all databases or within the case statement for a particular database.
    - [CHG] Buttons: All buttons now have AutoDisable enabled.
    - [CHG] ContactsPage, added a "OnlySaveIfValid" property defaulted to false so records could be auto saved and still show warnings for invalid data. This no longer prevents saving.
    - [CHG] ContactsPage: Now including the "RulesMessagesLabel" when showing and hiding the spinner as records load.
    - [CHG] ContactsPage: Now showing a spinner when loading the detail.
    - [CHG] Contacts Comms Portal: Adjusted the width of the AddressCalc to match the length of the DataField.
    - [CHG] Xan: Updated MaskPhone constant.
    - [CHG] Xan Controls: Updated the order of properties so each control is in the same relative order.
    - [CHG] WebTextField: Each placed WebTextField now has AutoCorrect, AutoComplete, AutoCapitalize set to be OFF and the defaults are now set to be OFF.
    - [CHG] XanPDFMaker: Can now print long WebPages and WebContainers over multiple pages. See ContactsPage.Print for an example to "Append Pages Based on the PDF Page Length" and "Append Pages Based on Specific Top/Bottom Ranges".
    - [CHG] XanQuery db_mysql_v1 Constant containing the Dump file to create either the MySQL or SQLite database updated.
    - [CHG] XanWebImageViewHTML: Displays its image after the image is loaded to prevent it from being shown progressively.
  • 2016

    Open or Close
    - [FIX] XanWebTextField now sets Number Type fields to 0 if set to empty. Could handle Email, Password, Telephone, or URL field Types in the future.

    - [FIX] Fixed an issue where if a record took more than .5 seconds to load, it acted as if it was an invalid record.

    - [FIX] XanWebRadioGroup were not returning true if the validation passed.
    - [CHG] Removed Validation Message Boxes in favor of showing the info in a WebLabel.
    - [NEW] Now storing the Validation Rule Message in the control's 'RuleMessage' property.

    - [NEW] Validation Based Saving

    - [FIX] Update XFS Path With App Name
    - [FIX] Print Images

    - Massive number of changes.

    - Demoed Xanadu SQLite at Xojo XDC 2016.

    Xanadu has been under development between the development of our client projects for some time now.

About Xojo

We love the Xojo platform. Not only is the development environment very affordable, but it's also powerful, easy to use, and the Xojo Team is very accessible. Time after time, Xojo has responded to new features and bug fixes in a quick and open fashion. It's a pleasure to work with Xojo!

Xojo is free to evaluate for an unlimited amount of time so you can run and debug. Purchasing Xojo allows you to compile, deploy, and distribute your Apps. Since Xanadu is a Web App, all you need is Xojo Web:

About Monkeybread

Monkeybread has been creating plugins for Xojo for as long as I can remember: - Monkeybread's MBS Plugin for Xojo is an amazing plugin for Xojo with over 59,000 functions: - Monkeybread's 'Web Starter Kit' has a ton of code to help you get started with Xojo Web Apps. Try out the demo: