Rebuilding and expanding Kipinä: a comprehensive preschool management platform

About the project

Client:

Kipinä is an international preschool management platform featuring its own educational program for early childhood education. The ecosystem consists of three components: a web-based administration panel and two mobile applications – one for teachers and one for parents. The system supports school management, communication between staff and parents, child progress tracking, attendance management, and financial operations.

After several years in production, the mobile applications had become increasingly slow, the number of bugs continued to grow, and the legacy PHP backend prevented further development. The client needed more than another iteration – they required a complete system rewrite while maintaining uninterrupted service and preserving the integrity of the existing database. fireup.pro took over the project from the previous development team and delivered an entirely new technology stack, covering the frontend, backend, and cloud infrastructure.

Project goal:
Business
  • Eliminate performance issues and bugs in the mobile applications (teacher and parent), which were frustrating the system's daily users.
  • Refresh the web interface – the administration panel no longer met modern UX standards and required a complete redesign.
  • Implement a financial module enabling preschool fee management – functionality that had not previously existed in the system.
  • Streamline attendance tracking through a dedicated Barcode Scanner application for teachers and parents.
Technological
  • Migrate the backend from PHP to NestJS (TypeScript) while preserving the existing database structure.
  • Rewrite the mobile applications (React Native) and the web panel (React) from scratch – new codebase, new interface.
  • Migrate the infrastructure to AWS by consolidating all components (database, file storage, and video conversion) into a single cloud environment.
  • Implement a VOD service for a global user base, significantly reducing video loading times.
From challenge

Key Challenges

1

Taking over the project from the previous development team without documentation

The PHP backend had been in operation for years, and the previous development team left no documentation behind. The challenge was to understand the existing business logic, rewrite the backend in NestJS, and preserve the integrity of the database throughout the migration – without data loss or system downtime. Every migration decision had to take into account what already existed and what was working, even if it was undocumented.

2

Slow and unstable mobile applications

Teachers and parents relied on the applications every day, but they had become slow and error-prone. The poor performance led to growing user frustration. Optimization was no longer enough – the solution was a complete rewrite of both the frontend and backend using a new technology stack designed for performance and scalability.

3

Video conversion and global distribution

Kipinä is an international platform where teachers share videos of children's activities with parents. These videos had to be available quickly regardless of the user's location, and the entire video processing pipeline was built from scratch using AWS services.

4

Building the financial module from scratch

Managing preschool fees is a complex domain involving multiple payment categories, administrative reporting, and integration with each child's profile. The financial module was designed and implemented from scratch across both the backend (NestJS) and the frontend (React), ensuring seamless integration with the rest of the system.

Key functional requirements

Web panel (admin): adding and managing schools, teachers, parents, and children; assigning children to groups; selecting a curriculum for each group; managing school details and logos.

Teacher application: sharing photos and videos of children's activities, publishing daily updates, tracking the class learning journey, and adding badges and progress reports to each child's profile.

Parent application: a news feed, an overview of the child’s learning progress and assigned skills, an online journal, and a gallery of photos and videos shared by the teacher.

Kipinä Barcode Scanner: a dedicated mobile application for recording the attendance of children and teachers upon arrival at the preschool.

Financial module: managing preschool fees, generating child progress reports using AWS Lambda, and tracking and reconciling financial transactions within the application.

Through the solution

A complete rewrite instead of patching

The decision was clear: the entire application would be rewritten from scratch, with the existing database being the only component retained from the original system. This approach eliminated years of accumulated technical debt and provided the flexibility to design an architecture tailored to the requirements of the new technology stack.

    Backend: NestJS instead of PHP

    Rewriting the backend from PHP to NestJS (TypeScript) was the key transformation of the migration. NestJS provides better code organization, native TypeScript support, a modular architecture that simplifies testing, and improved system scalability. TypeORM, used as the database access layer, ensured consistent interaction with the existing MariaDB schema. The new backend also enabled clean integration with AWS services through the AWS SDK and direct Lambda function invocations.

      Infrastructure: everything on AWS

      Migrating the infrastructure to AWS made it possible to consolidate all system dependencies within a single cloud environment: the database on Amazon RDS, static files and videos stored in Amazon S3, video processing handled by AWS Elemental MediaConvert and distributed through Amazon CloudFront, video pipeline orchestration managed with AWS Step Functions, the backend running on Amazon ECS with AWS Fargate (eliminating server management and charging only for actual resource usage), and reporting and analytics implemented as AWS Lambda functions.

        Frontend and mobile: a new interface from scratch

        The web panel was rebuilt in React with TypeScript and Ant Design, resulting in a modern, consistent interface aligned with current UX standards. The mobile applications for teachers and parents were rewritten in React Native with Redux, ensuring smooth performance on both iOS and Android. The Barcode Scanner was developed as a separate React Native mobile application.

          Project takeover and maintenance

          One of fireup.pro's developers formally took over ownership of the project from the previous development team, managing the system's stability and operational continuity while simultaneously delivering new features. There was no gap in ownership—the transition was seamless.

            To the success

            Technological outcomes

            Video loading time for users worldwide was reduced from approximately 30 seconds to around 5 seconds after implementing a video pipeline based on AWS Elemental MediaConvert and Amazon CloudFron

            The NestJS backend replaced the legacy PHP codebase, providing better scalability, improved code maintainability, and a smoother onboarding experience for new developers.

            The mobile applications were rebuilt from scratch and now operate reliably, without issues that disrupt the daily experience of teachers and parents.

            The financial module was implemented end-to-end, covering backend business logic, AWS Lambda functions, and the user interface within the web administration panel.

            Business benefits

            Frustrated users, the client's primary concern at the start of the project, stopped reporting performance issues after the new technology stack was implemented.

            Kipinä gained a financial management capability that had not previously existed in the platform, creating a new source of value for preschool administrators.

            The Barcode Scanner application streamlined daily attendance tracking by eliminating manual processes.

            A single shared React Native codebase for iOS and Android means one development team instead of two, lower development and maintenance costs, faster delivery of new features, and a reduced risk of inconsistencies between the teacher and parent applications.

            The system is architecturally prepared for future growth. New features can be added within NestJS's modular architecture without risking the stability of the production system.


            Project team
            Abstract background
            Robert
            Damian
            Patryk
            Mateusz
            Małgorzata
            Maks

            Robert

            Backend developer

            He took over the project from the previous development team, ensuring a seamless transition and uninterrupted operation of the application. He designed and implemented the financial module, as well as the child progress reporting functionality powered by AWS Lambda.

            Tech stack

            NestJS

            Node.js

            TypeScript

            MariaDB

            React

            React Native

            Redux

            AWS Lambda

            Amazon S3

            Amazon RDS

            Docker

            Your success is our success

            See how we can build a technological advantage for your company together.

            Book free consultation!

            We have a team that truly knows its stuff — we'll help you find a solution that works.

            Conclusions & recommendations

            A complete rewrite pays off when technical debt becomes a barrier to business growth.

            Optimizing the legacy PHP codebase burdened with years of technical debt and lacking documentation would have delivered only short-term results. The decision to rewrite the entire system—while preserving the existing database—was bold but justified. The new platform is stable, maintainable, and ready to support future growth for years to come.

            Migrating to AWS is not just about infrastructure – it's about architecture.

            Migrating to AWS was not simply a matter of replacing servers. It involved consolidating the database, file storage, video processing, and serverless functions into a single, cohesive cloud ecosystem. For a globally distributed product, this architectural decision had a direct impact on the user experience.

            Node.js/NestJS as a successor to PHP in existing systems

            NestJS provides a modular architecture and native TypeScript support, making code significantly easier to maintain. For systems with a legacy PHP codebase, where scalability and onboarding new developers have become challenges, migrating to NestJS is a worthwhile option to consider.

            Project takeover requires a dedicated owner, not just a team

            Transitioning a project from a previous development team is not just a project task—it is a matter of ownership. Assigning a dedicated person to take responsibility for the project, rather than just the codebase, is what determines whether the transition is seamless or results in months of instability.

            Background

            Time for your project.

            Turn your ideas into real solution and...

            ...Get in touch with us!

            Your vision, our realization
            Want to discuss the details?
            Let us know!

            I agree to the processing of my personal data by Fireup Software ...