Getting Started


If you haven’t already done so, register yourself via the FatFractal Console.
After you register and complete the validation, you will be asked to add the domain, application name that you wish to use for your application and the type of application (NoServer, Ruby or Java/Servlets).

https://<your domain><your application>

Play (NoServer apps)

If you created a NoServer application, at this point – you have a working NoServer backend in the cloud which you can access at (an email with useful links will also have been sent to you):

Feel free to play around with your backend (go here for some suggestions) else go ahead and get down to business.

Get down to business

Follow the instructions below to download the bits you will need to get the most out of FatFractal, including setting up command line tools, the local runtime and the client SDKs for your mobile or webapp.

Note: The FatFractal Engine require the Java Runtime Environment 1.6 or higher.

What am I installing? FatFractal is all about apps with a backend in the cloud. But you’ll want to develop locally: as Mic explains on our BLOG, “(You’re installing) a fully-featured FatFractal Engine on your desktop. This is not a crippleware version, not a simulation.” One command deploy to the cloud, 100% fidelity.

The following files are available for download:

FatFractal Downloads

The FatFractal runtime download is required to deploy apps and to run a local instance of the FatFractal engine. After downloading the zipfile, getting started is a snap:

  1. Unzip the file to a location of your choice.
  2. (Optional) Add the FatFractal_Runtime/bin directory to your path. This directory contains
    • the ffef / ffef.bat command, which is used to scaffold and deploy apps
    • the ff-service / ff-service.bat command, which is used to run your local instance of the FatFractal engine
  3. To start a local engine, just cd into FatFractal_Runtime and run the command bin/ff-service cl.
    • NB: In the FatFractal_Runtime/conf directory you will find a file called which tells the engine the ports on which to listen (defaults are 8080 for http and 8443 for https), and how frequently to scan for new deployments (default is every 5 seconds)

Create Your First Application

Depending upon the application type, your next steps are shown below, just click on the appropriate tab.

Creating and deploying NoServer apps with FatFractal involves the following steps:

Creating and deploying Ruby on Rails apps with FatFractal involves the following steps:

  1. Setting your JRuby environment up.
  2. Packaging your Rails application for deployment.
  3. Deploying your Rails application.
  4. Creating your cloud database.

Detailed instructions for using Ruby on Rails with the FatFractal platform can be found here

Creating and deploying Java/ Servlet apps with FatFractal involves the following steps:

  1. Configuring your Servlet project.
  2. War’ing up your Servlet project.
  3. Deploying your Servlet application.
  4. Creating your cloud database.

Detailed instructions for using Java/ Servlets with the FatFractal platform can be found here

Questions or problems with installation?

Release Notes

FatFractal release 1.3.3 – Released March 29 2014

  • This release (1.3.3) is now running in our sandbox environments only. It will be released into our production environments soon.
  • As always, downloads are here, and if you have an existing distribution on your dev machine, just type ‘ffef update’ at the command line to update your installation.

NoServer iOS SDK
  • Bug-fix: Methods can now be invoked on GCD queues other than the main queue

NoServer Runtime, including server-side SDK
  • Added Edmodo support to our ScriptableAuth support

FatFractal release 1.3.2 – Released March 27 2014

NoServer Runtime, including server-side SDK

FatFractal minor release – Released March 25 2014

NoServer iOS SDK
  • Made customHttpHeaders a public property on the FatFractal class. Was previously private. Is now in line with the Android SDK

FatFractal minor release 1.3.1 – Released March 24 2014

NoServer Runtime, including server-side SDK
  • Correctly handle register requests which include the ‘createdAt’ field as an ISO string
NoServer iOS SDK
  • Removed the NSObject+FFSerializerSugar category; replaced with FFSerializationProtocol. No impact on applications’ code except it will now be possible to implement those methods in a category, thus keeping your core object model classes free from FatFractal-specific stuff

FatFractal Release 1.3.0 – Released March 23 2014

NoServer Runtime, including server-side SDK
  • Added support for querying grab-bags using ‘addedAt’ (which is the timestamp at which a grab-bag item was added). See the callout at the end of this section
    • This also lays the foundation for general “graph edge” queries, where you can store and query information not just about objects but also about the relationships between them
  • Added ‘starts_with’ predicate to query language – see docs
  • Made http request data accessible to event handlers – see docs
  • Grab-bag items will now be returned in ascending order of the time at which they were added
  • Added support for client-side serialization of grab-bag items “inline”
  • Added server-side function, executeDepthQuery, to perform ‘depth’ queries – see here
  • Added ability to bypass cache in server-side code – see here
  • In scheduled server-side code, getActiveUser() will now return the system user rather than null
  • Fixed bug where sometimes, when retrieving lines from your application logs, they were not being returned in date-time order
  • Added defensive code to guard against accidental recursion of ASYNC event handlers as is already the case for PRE and POST event handlers
  • Amended ffef.bat as per

NoServer Android SDK
  • Modified NoServer Android SDK to make “statusMessage” available for FFReadResponse and FFWriteResponse
  • Better support for deserialization of Maps which contain Lists of other Maps (or Lists)
NoServer iOS SDK
  • Added category NSObject+FFSerializerSugar to provide a clear place in which the serializer sugar methods are defined
  • Added support to serialize grab-bag items from the client-side “inline”
  • Defensive code to ensure FFGeoLocation properties are correctly set even if somehow the clazz is missing in the backend data

FatFractal Release – Released March 9 2014

  • Android SDK: bug fix: postObjToExtension now correctly handles multiple objects being returned
  • Android SDK: made statusMessage available in FFReadResponse and FFWriteResponse
  • Android SDK: if no mapping defined for a given clazz, will now deserialize to a HashMap (consistent with iOS SDK and NSMutableDictionary)
  • iOS SDK: set flag to exclude FF’s cache from being backed up by iTunes / iCloud
  • iOS SDK: added queueGrabBagAdd… and queueGrabBagRemove… methods
  • iOS SDK: added methods to FFUtils:
    • + (NSNumber *) unixTimeStampFromDate:(NSDate *)date;
    • + (NSString *) isoUTCStringFromDate:(NSDate *)date;
  • iOS SDK: Fixed bug where sometimes references would be unnecessarily re-loaded when handling large result sets from queries with depthRef or depthGb flags set.

FatFractal Release – Released March 1 2014

FatFractal Release 1.2.2 – Released Feb 14 2014

Improved CoreData support in iOS SDK

  • Introduced FFUserProtocol – no longer need to subclass FFUser if introducing a custom ‘user’ class – simply have it implement the FFUserProtocol – see also this blog post
  • When retrieving CoreData objects from the FF backend, you will want fine-grained control over how the objects are instantiated. Now you can create a subclass of FatFractal and override the - (id) createInstanceOfClass:(Class) class method
  • – see also this thread in the forums

FatFractal Platform Release 1.2.1 – Released Jan 31 2014

NoServer minor bug-fixes and enhancements

  • Bug-fix so if an ENCRYPTED field is supplied as null, we don’t throw an exception
  • Allow comparison of values in arrays of objects – for example ffRefs.url eq ‘/ff/resources/Todo/ajKB2veir-5q1AzeMRI3i6′
  • And more generally, properly support queries which include ‘/’ characters within string literals

FatFractal Platform Release 1.2 – Released Jan 11 2014

Lots of great new features – here are a few of them

  • NoServer: Virtual collections – the simplest way to expose an API to legacy or external data – See documentation here
  • NoServer: Major enhancements to date support in queries. New keywords (now, today, tomorrow, yesterday); can use ISO8601 string literals in queries; and powerful new date manipulation functions (date_add and date_round). See documentation here
  • NoServer: Delete-by-query. Simply provide a query in the URL and all matching objects will be deleted (subject to permissions). For example
    DELETE /Comments/(text contains_any 'bad naughty words')
  • NoServer: Powerful easy-to-use client-side caching for the iOS and Android SDKs Full documentation pending but see here (IOS) or here here (Android) to get started
  • NoServer: Choose from multiple iOS push certificates; can now also send to devices rather than to users Full documentation pending
  • Remotely access your app’s backend log files from the command line. See documentation here

Note: If you have previously downloaded and installed the runtime for local development, type ‘ffef update’ at the command line to update your installation.

FatFractal Platform Release 1.1 – Oct 27 2013
FatFractal Platform Release 1.0.5 – Sep 19 2013
FatFractal Platform Release 1.0.4 – Jul 29 2013
FatFractal Platform Release 1.0.3 – Jul 23 2013
FatFractal Platform Release 1.0.2 – Jul 22 2013
FatFractal Platform Release 1.0 – Jul 10 2013
FatFractal Platform Beta Release 5.1 – Feb 18 2013
FatFractal Platform Beta Release 5 – Jan 21 2013
FatFractal Platform Beta Release 3 – Nov 2012