everythingpossible - Fotolia

News Stay informed about the latest enterprise technology news and product updates.

Neat turns its receipt-scanning app into subscription-based software

Neat retires its legacy desktop cash-register receipt scanning app and moves to the cloud with SaaS subscription-based software and expertise from a contract programming house.

Businesses migrate to the cloud for a variety of reasons; to simplify operations, eliminate infrastructure, enhance performance or cut costs. For the The Neat Co., maker of the ubiquitously advertised namesake cash-register receipt scanning product, the cloud represented a way to merge divergent Mac and Windows versions and to create a new revenue stream with subscription-based software by adopting a fee-based software as a service model.

For all the witty puns that could be made about the cloud being a neat place to be, Neat found the experience of cloud migration challenging, rife with lessons from which any company contemplating a cloud-only future can learn. Andrew Schaps, head of engineering at the Philadelphia company, shared the transition's ups and downs with SearchCloudApplications.

Neat's longtime business model was to sell a package consisting of a scanner and a desktop software application. That application performed several functions: scanning receipts and business cards, doing optical character recognition (OCR) conversion, storing the scanned image and interpreted version in a desktop database, and -- the real reason for doing all of this -- tracking and categorizing purchases for budgetary and tax purposes.

"Our strategy had always been to offer a fully offline desktop application with one version for Windows and another for the Mac," Schaps said. Though the products for the two operating systems started out in lockstep, their development streams diverged over the years with separate features rolled out for each. "We eventually ended up with two applications that differed widely in features and user experience," Schaps said.

Beyond the need to support separate code bases, separate teams for development, user tech support teams, marketing and training had evolved. With a desire to unify the UX, company executives set out to do a simultaneous restart of the company and rebranding of the product. "We wanted to shift the paradigm from our offline-centric model to one that was fully cloud powered," Schaps said.

We wanted to shift the paradigm from our offline-centric model to one that was fully cloud powered.
Andrew Schapshead of engineering, The Neat Co.

Those first cloud efforts went live in the summer of 2012, but it was a case of the desktop application still leading with the cloud used primarily for synchronization. "Differences in the desktop and cloud versions led to a lot complexity," Schaps said. "The desktop still ruled and we quickly discovered that was counterintuitive to what the cloud is all about." After that experience, Neat decided the time had come to go all-in for a SaaS-based cloud product.

Development platform and language decisions

In 2011, when Neat embarked on its cloud transformation, Schaps said Amazon Web Services was essentially the only game in town. "We looked at platform as a service providers and found that the Google platform was at its very beginning and that Microsoft's Azure was focused solely on the Windows environment and did not have the cross-platform capability we needed," he said. "AWS was already established and had what we needed in terms of cloud formation, availability, resources spread across multiple regions and time zones, and very aggressive pricing." Another attractive feature was pricing for reserved instances, which allowed Neat to more closely tie costs to actual use.

Like nearly all companies undertaking an initial cloud applications development project, Neat had little in terms of in-house expertise with subscription-based software. To meet its aggressive cloud deployment timeline while still paying necessary attention to millions of customers still using the desktop applications, the company was forced to look outside. Eventually, Neat chose ThoughtWorks, a Chicago contract software development company with 36 offices in 12 countries. "ThoughtWorks embedded a large group with us," Schaps said. "We managed the architectural decisions, but ThoughtWorks provided the actual hands-on developers who worked side-by-side with our own people."

Neat's existing code base, which had evolved over the years into a combination of Ruby, C++, and C#, underwent its own changes. The Django web framework, written in Python, was considered for its speed-of-development advantages. However, it was Ruby on Rails that Schaps said "felt best." Only later did Schaps' team discover that RoR's single-threaded nature did not measure to performance expectations. The company is now looking to port portions of its software to Java, Scala and Node.js. The desktop component, still necessary for the process of physically scanning receipts into the system, continues to rely on C++ and C# to drive its OCR engine. The remainder of the desktop application, including processing logic and user interface, now consists mostly of HTML, Javascript and Cascading Style Sheets, which, Schaps said, is "still tops for layout and styling."

A new database

A significant impediment for expanding its original desktop application beyond receipt scanning was the reliance on a fixed-schema database. "It created obstacles and headaches as we tried to add new functionality and document types, such as invoices," Schaps said. As part of its cloud transformation, the company considered NoSQL databases but eventually settled on MongoDB stored on Amazon S3. "All metadata such as vendor, receipt date, and sales tax, is captured in mongo documents. It gives us great flexibility in adding new document types." With Mongo's document-oriented flexibility, Neat was able to expand from just receipts and business cards, adding invoices and statements to the list of document types that it can scan and parse into editable data.

With its shift to a cloud SaaS subscription-based software model, Neat is now able to add new features on a schedule to makes sense from a business perspective instead of once every year or two. That has become especially important as competition, all of it cloud-based, has grown. Through the subscription model, what was formerly a one-time software purchase is now a recurring revenue stream. Subscription plans that use customers' own scanners start at $5.99 per month, ranging up to $24.99 for a business plan that supports five shared users. The company continues to offer its own line of scanners, ranging from $149.95 to $499.95, depending on a variety of factors, including single page versus multisheet autofeed, and wired or wireless connectivity.

In the end, Neat believes it made the right strategic and technology decisions. "We are happy with our architecture, bringing in outside expertise worked for us, and Amazon is providing everything we're looking for. We'd do it again," Schaps said.

Next Steps

Does a SaaS model bring companies and customers closer together?

Is developing with Node.js in AWS a good thing?

Does AWS complicate cloud app development?

Dig Deeper on Cloud application migration

Join the conversation


Send me notifications when other members comment.

Please create a username to comment.

What is your company's strategy for retiring obsolete legacy applications?
The problem is often in the funding for the rewrite. The apps stay around way longer than they should, costly to maintain, and by the time of the rewrite there's no one around remembering how they work.
I for one am unimpressed. I bought the neat scanner for desktop use. Once I'd scanned in hundreds of receipts, an update moved all of my stuff to the cloud. I can't access it anymore unless I buy a subscription. No help whatsoever for NEAT except to send me a "sync link" that doesn't even correspond to the screen view I'm seeing. I feel like I've been duped and my data has been hijacked. Did it bring this customer closer to the company? NO! Once I get this mess straightened out I will return the scanner for a full refund to the retail outlet and find some other way. Neat is terrible