How We Built an Educational App for Lawyers from the Ground Up, Ginger Snail


Ginger Snail is an educational app for iOS. Its target audience is law students and lawyers. The app offers tutorials on various legal areas and allows you to test your knowledge conveniently. The startup competes with standard paper books, acting as a handy tool for teaching law students.

Tech stack

Backend:Node.js, Nest.js, PostgreSQL, Redis, RabbitMQ, Docker, Kubernetes
Frontend (admin panel):Material UI, Draft JS, Lodash, React DnD
Mobile:Swift 5, MVVM + Coordinators, UIKit + SnapKit
Other:Core Animation, CoreText, REST API (native), StoreKit, SPM (Swift Package Manager)

Our role

Mobile & Web Development, UI/UX Design, QA, DevOps, Support

The challenge

When the client contacted us, they had a specific goal – to create a highly specialized app for studying law. The key idea was that one solution combines many educational functions: theory and practical cases, training cards, and regular quizzes to test knowledge.
The client wanted the features to be available to the audience for free and by paid subscription. The essence of the subscription is that the user can choose the module they are interested in and get more opportunities to learn it. So, we were required to develop one app that should replace several due to a comprehensive approach to learning.

Project management

A legal education project required special skills from the team. We involved specialists with experience in creating educational programs and an understanding of industry specifics. The project included: a business analyst, UI/UX designers, developers (backend, frontend, mobile), QA, and DevOps.

We divided the process into three iterations:

  • create functionality and integration of subscriptions;
  • implement an administrative panel from scratch;
  • work on the server part and construction of databases.

Iteration 1

After analyzing the client's requirements, we distinguished the basic and advanced functionality available for free and by subscription, respectively. We divided all functions into six sets (Main, Modules, Low, Cards, Quiz, and Profile) for a more in-depth elaboration.

Completed tasks:

  • develop registration options for different roles (student, lawyer, other) and email verification;
  • enable the user to change their email, password, and edit their Profile;
  • introduce modules on different areas of law: contract law, constitutional law, medical law, and so on;
  • add training content within each module by topic;
  • implement quick search and filter content, as well as the ability to add it to bookmarks "for the future";
  • create a monetization system with a free trial module, a monthly/annual subscription with auto-renewal;
  • develop Decks options with drag and drop navigation and Cards (search, selecting, move, create, edit);
  • implement the Quiz functionality, where users can test their knowledge in a particular area of law.

Iteration 2

In the second iteration, we focused on creating an admin panel. It was written entirely from scratch by us without using off-the-shelf solutions. This entailed a number of related tasks, including those connected to creating content typing.

Completed tasks:

  • design a user-friendly UI;
  • create complex drag and drop interfaces using the React DnD toolkit;
  • add features to manage content, such as customizing questions and answers based on cases for quizzes;
  • add features to manage subscriptions to topic modules;
  • implement different levels of content nesting to create a structure that is convenient for the target audience;
  • validate the data entered by the user and display the corresponding errors.

Iteration 3

Backend development was about building a strong technological foundation. We paid attention to program logic and data management to ensure speed and correct operation regardless of the load and number of users.

Completed tasks:

  • build an app architecture based on the Node.js software platform and Nest.js framework;
  • organize data reception, processing, and analysis using PostgreSQL and Redis;
  • automate processes related to app delivery and deployment through Docker and Kubernetes;
  • provide services communication with internal TCP connection in an internal Docker overlay network or Kubernetes SVC internal network;
  • test the product for technical defects and compliance with business requirements.


There were several barriers in the process, which we overcame successfully:

  • Integrating content subscriptions into the App Store. The challenge was both integrating correctly and testing cases with subscriptions, canceling subscriptions, and restoring previously purchased products.
  • Development of the admin panel. Since we created the admin panel from scratch, we had to pay attention to content typing with nesting levels, ordering, and validation of input values.
  • Industry specifics. The use of the app was limited to a narrow thematic focus. In the first stage, we added English Law. We plan to develop in other directions as well.


Register / Login to account

Registration in the app takes less than five minutes. It is enough to enter your email, verify, make up a password and add personal data: name, surname, role (student, lawyer, other), country, school, and courses. You can subscribe to modules right away.


The created event can be updated, for example, to change the date of the event. If the event is no longer relevant, it is easy to cancel it with one click. Also, in editing, we have provided the function Lock This Event.

Study modules

The app contains modules on various areas of law: Contract law, Tort law, Land law, Constitutional law, Medical law, Criminal law. Students can choose one or more modules to study and test their knowledge. Each module presents relevant and reliable information on a specific topic in an intuitive format.

Buy modules from the App Store

The user can purchase the module directly from the App Store on a monthly or annual basis. The subscription will automatically renew at the end of the selected period. You can cancel the subscription or restore a previously purchased product if necessary.

Free trial

Everyone can use the free trial module subscription. There can only be one free trial module. Although such content has some limitations, it is a good opportunity for users who want to test the app's usefulness.

Search & filter

We implemented search and content filtering to improve the user experience. In addition, the user can add tutorials to bookmarks to study them later. This is useful for students and lawyers with busy schedules.

Unique content

The user has access not only to text training materials but also to links to legislation and real cases as examples. Several levels of content nesting ensure easy navigation.

Copy / Highlight / Note

While reading the text, the user can highlight a certain fragment and copy it or mark it with a different color. They can also add notes related to this fragment. Highlights and Notes are available for viewing on a separate page.


One of the most valuable features of this app is the Quiz. After reading the tutorials, users can test their knowledge by answering questions about the module. The administrator creates the answers and questions based on the cases.

Create and configure Decks

Users can create Decks and change the style according to the theme (Title, Color, Icon) in the app. Within each Deck, you can add Cards and manage them as you see fit, such as selecting multiple Cards to remove or move to another Deck.

Create and edit Cards

There are two types of Cards: standard and custom. In the second case, you can create your own back and front content and customize the color. The designed card is added to the Deck and can be used during training (checked/flagged).

Admin panel

The app allows you to manage content flexibly. Content added to the admin panel is delivered to the iOS device, which increases the speed of updates. You can also add additional types of law, translate to different languages, and customize questions/answers in Quizzes.


Their level of engagement and project ownership is uncommon and greatly valued.

Charles Gregory Law
Director, Ginger Snail Pte Ltd
Admin panel



study modules.


tests for the quiz.


requests per second the system can handle.


requests per second for Apple subscriptions.


efficiency of anti-DDOS features of Cloudflare and Docker.

150 ms

request processing speed.


Implemented an educational project for lawyers from scratch for iOS users in 6 months.
Introduced modules that include theory, real cases, and useful references in different areas of the law.
Created a subscription system: buy the module directly from the App Store or choose a free trial period.
Improved the user experience by adding search, filtering, note-taking, copying, and text selection options.
Developed Quiz functionality for testing the knowledge and evaluating learning progress.
Created the ability to make stylized Decks and add Cards (standard or custom) to them.
Developed the admin panel from scratch and added content management and subscription functions.
Implemented the server part, ensuring reliable data management and comprehensive product testing.
Prepared the foundation for the referral program and internal messenger, planning the development of the Android version.

Tell us what you have in mind

If you'd like to get in touch with us you can email us at, call us on +65 3159 3765, send us a message via our online form, or get answers in real time by simple briefing @RocketechHelloBot.
SingaporeKyivLondonSan Francisco