X2O isn't magic. It generates a remotely-hosted framework so you can program just on the client-side. Here's what an X2O-driven app looks like.

X2O generates a remotely-hosted data services framework behind-the-scenes...
...you build client-side.

1 Database

X2O generates an object-relational database that replicates the objects, properties, relationships you describe in your data model. It handles foreign key constraints, primary keys, referential integrity...all things you don't need to do by hand.

2 SQL queries

By default, X2O creates CRUD SQL queries for each object in your data model. In addition, it creates methods to load by related objects, load by a particular property, and sort by properties you define in your data model.

3 Data access layer

X2O builds a data access layer to pull raw data into objects structured the way you define them. Also, the DAL implements custom load methods that you can optionally create in your project.

4 Web services

Next, X2O generates web services so your generated value objects can access your data. The web service layer is secured via a token authentication system shared with your generated objects.

5 Content management

X2O creates an out-of-the-box, secured CMS so you can manage data and relationships easily. You can control navigation and pagination from the X2O Client.

6 Value objects

Value objects contain your properties, relationships, and methods. No XML parsing or WSDL integration... it's just ready to go. Load data, insert or update records without configuration. Simply download them and start coding!

7 Documentation

For ActionScript 3.0, X2O generates ASDocs for all your value objects and generated code. It's immediately available over the Web.

8 Custom development

Drop a generated SWC file into your Flash or Flex project. Or, download a Zip file of JavaScript classes and import them into your project. Get oriented with our documentation and start developing right away!

9 Deployment!

Deploy your application anywhere on the Web. Since your data is hosted remotely, there's no need to configure connection strings or asset locations. See our sample application.


That's the gist. To get in-depth, read through our documentation, see how we built a sample application, or sign up for an account.