
Digital Post-Treatment Revolution: Start Aftercare – Smart Mobile App with CMS Integration
Post-treatment care has always been a key — yet most sensitive — part of any aesthetic service.
Whether it’s tattooing, piercing, permanent makeup, or tattoo removal, proper aftercare directly determines the final result and overall client satisfaction.
In practice, however, this is often where things go wrong — instructions differ from one studio to another, clients easily forget them, and artists waste valuable time explaining the same procedures over and over again.
Out of this need, Start aftercare was born — a mobile application with a supporting CMS system that transforms traditional paper-based instructions into a personalized digital experience. Start aftercare is a mobile application for Android and iOS that provides clear, guided care steps from day one — no confusion, no searching through papers.
The app leads the user through the entire care process, day by day, with automated reminders, clear visual guides, and real-time notifications. Since the application is fully connected to its CMS, any content change instantly appears to the user, minimizing errors, speeding up recovery, and building trust between client and studio.
The project was developed in close collaboration with the client, who provided a highly detailed initial design. Our team adopted the existing visual concept, expanded it with additional screens, refined the interactive flows, and optimized the layout for mobile use.
The result is an interface that is visually minimalist yet rich in functionality — intuitive for users, consistent in execution, and fully aligned with modern mobile UX principles.
In parallel with the app, a completely new CMS system was built from the ground up. Both the mobile application and the CMS were developed in Flutter, ensuring a unified user experience, high design consistency, and efficient maintenance across platforms. This deep integration keeps all data perfectly synchronized between the two systems.
TypeScript was used for the development of the API service layer, which manages key operational processes — such as sending notifications and emails, uploading images, integrating with RevenueCat, and automating content translation through the Google Translate API.
Hasura, built in Haskell, serves as a GraphQL intermediary between the database and application layers (mobile app and CMS), automatically generating queries and mutations for real-time data synchronization.
This architecture allows administrators to easily manage content, FAQs, notifications, and banners, while Hasura ensures stable, bidirectional communication between the database and application layers. Every change made in the CMS is instantly reflected in the mobile app, achieving perfect synchronization between administration and the user interface — with no need for manual updates or redeployment.
Start aftercare therefore bridges two worlds: user simplicity and technical precision. For end users, it delivers clear instructions and reliable support at every step; for studios, it provides an automated, standardized, and professional communication system that saves time and elevates service quality.
On the technological side, the project relies on three core pillars — Flutter, Hasura, and a TypeScript API — delivering exceptional stability, security, and scalability.
The application was designed not merely as another digital tool, but as a new industry standard in post-treatment care — smarter, faster, and entirely user-centered.
The result is a fully integrated Android and iOS application with a robust backend, enabling dynamic content management within the mobile app without any redeployment.
In a world where details make the difference, Start aftercare demonstrates that proper care doesn’t begin or end in the studio — it continues through a digital experience that carefully guides each user, step by step.
The next step? Building a system that turns that care into a perfectly synchronized technological solution
Learn more about our approach to developing mobile applications that combine design, functionality, and performance.
Building the System from the Ground Up — Where Vision Meets Precision
In developing the Start aftercare system, every stage — from the first sketch to the final implementation — was guided by a single idea: to create a digital solution that’s simple to use, yet technically powerful beneath the surface. The goal was not merely to digitalize aftercare instructions, but to build a platform that supports users throughout the entire recovery process — automated, seamless, and error-free.
The project began with a comprehensive user needs analysis, defining key usage scenarios and potential post-treatment challenges. Based on these insights, the first wireframes and interactive prototypes were created, allowing for early validation of ideas and user flows.
Through multiple testing iterations, precise user journeys were defined — from the initial treatment selection to the final day of care — with special focus on simplicity, readability, and clarity at every step.
From the very beginning, the client was highly involved in all development phases — from planning functionalities to final testing. This close collaboration allowed us to tailor the application to the industry’s specific workflows and needs.
Every design, technical, and functional decision was made jointly with the team that works daily with end users. As a result, the application is not only visually consistent and technically optimized, but also fully aligned with the client’s operational goals.
Special attention was devoted to the connection between the mobile application and the CMS. While the app was developed as an intuitive and responsive user interface, the CMS was built in parallel as a stable administrative platform providing full control over content and processes.
In later stages, real-time synchronization, automated modules, and a notification system were implemented — together forming a fully integrated solution.
At every development step, an iterative approach was applied — each new feature was tested in real-world scenarios before being released to production. This ensured that the final product not only met all technical requirements but also matched actual user expectations.
Start aftercare was not created by chance. It is the result of a carefully managed process, collaborative partnership, and a deep understanding of the industry — a digital solution that merges expertise, simplicity, and technology into a seamless user experience.
Every step in the development of the Start aftercare system was thoughtful, tested, and aligned with the client’s vision. Yet what truly makes this application stable and reliable is not only the process itself — but the technological foundation it is built upon.
The Technological Foundation of the Project — Powering Innovation Behind the Scenes
At the heart of every digital solution lies an architecture that defines its strength, stability, and long-term sustainability.
In the case of the Start aftercare system, this foundation was carefully designed to ensure fast communication, high security, and uninterrupted synchronization between the mobile application and the CMS platform.
The goal was not merely to build a functional tool, but to create a platform that grows alongside its users — flexible, adaptable, and ready for future upgrades without the need for code reconstruction.
To achieve this standard, three core technologies were used: Flutter, TypeScript, and Hasura — together forming the perfect balance between design, performance, and data integrity.
Flutter – The Power of Simplicity in User Experience
To make the application accessible to all users without compromising performance, the team chose Flutter — Google’s development framework that enables the creation of native mobile applications from a single codebase.
This technology allowed the same design and logic to be displayed consistently across both iOS and Android devices, ensuring a fully unified user experience.
Flutter was used to develop both the mobile application (Android and iOS) and the CMS web interface, providing a consistent user experience, coherent design, and shared presentation logic across all devices and platforms.
This approach significantly accelerated development, simplified maintenance, and ensured complete visual and functional consistency between the user-facing and administrative sides of the system.
Key advantages of Flutter in this project include:
- Multi-platform development from a single codebase – the same source code powers both the mobile application and the CMS, simplifying development and maintenance.
- High responsiveness and speed – the application reacts instantly, with no delay when switching between screens.
- Consistent design and animations – thanks to Flutter’s widget system, every visual component is precisely adapted to each platform.
- Lower maintenance costs – a unified codebase enables faster updates and easier implementation of new features.
- Offline support – users can access care instructions and status information even without an internet connection.
- Stable integration with Hasura GraphQL API – the Flutter frontend retrieves and displays real-time synchronized content directly from the CMS via Hasura.
Flutter made it possible for the application to be not only visually appealing but also stable, fast, and intuitive — which is essential for users who open the app multiple times a day for short yet important interactions.
Combined with Hasura and the TypeScript API, Flutter powers a mobile application with an integrated administration layer, fully managed through the CMS.
TypeScript – The Foundation of the CMS and Data Logic
On the administrative side of the system, the key role is played by TypeScript — a programming language that combines the simplicity of JavaScript with the robustness of strongly typed code and the reliability required for complex service processes.
In the Start Aftercare project, TypeScript functions as a service layer connecting the Android and iOS applications with the backend and the mobile app CMS through standardized processes — from sending push notifications and emails, uploading images, and communicating with the RevenueCat service, to invoking the Google Translate API for multilingual translations.
This approach ensures a clear architectural separation: the Flutter application and CMS handle presentation and user interaction, Hasura GraphQL mediates data exchange with the database, while the TypeScript API serves as the central service logic — connecting all systems and automating background processes.
Key advantages of TypeScript in this project:
- **Code safety and predictability – strict typing minimizes the risk of errors during development and maintenance.
- Modular API architecture – the business logic is developed through clearly separated modules (notifications, emails, translations, integrations), enabling easy maintenance and scalability of the system.
- Automated real-time operations – the API synchronizes data and triggers background processes independently of user actions, ensuring that all CMS and app updates occur seamlessly and without delay.
- Integration with Hasura – the API uses a GraphQL endpoint for real-time data retrieval and synchronization.
- Optimized performance – TypeScript ensures efficient handling of complex operations such as dynamic notification scheduling, care status updates, and user data validation.
In combination with Hasura, TypeScript enables simple yet exceptionally powerful communication between the administrative and user-facing parts of the system — turning the CMS into more than just a tool. It becomes the operational “heart” of the platform, seamlessly connecting the administrative, user, and technical layers into a single, self-sustaining whole.
Hasura – The Intelligent Data Connector
To enable instant and secure data exchange between the application and the CMS, the Hasura GraphQL platform was implemented — an open-source engine written in Haskell that automatically generates a GraphQL API on top of a PostgreSQL database.
Hasura serves as the central intermediary between the Flutter applications (mobile and CMS) and the database, providing fast, bidirectional, and reliable communication without the need for manually written server-side logic. This approach allows for seamless integration between the CMS and the mobile application — without manual API development.
Thanks to Hasura, all data — from user profiles and daily care plans to banners and translations — is synchronized in real time.
Every change made in the CMS is instantly reflected in the mobile application, with no manual updates or additional backend requests required.
Key advantages of Hasura in this project:
- Real-time data synchronization – every change made in the CMS is instantly reflected in the mobile application through real-time GraphQL subscriptions.
- Integration with the TypeScript API – Hasura triggers Event Calls that activate the TypeScript API to send notifications, emails, or perform automatic data validation.
- Advanced security control – utilizes JWT authentication and role-based access control to ensure that each user only sees what they are authorized to access.
- Scalability and rapid development – automatically generated GraphQL endpoints allow for easy feature expansion without modifying core logic.
- Support for Cron Jobs and Event Triggers – enables the system to respond to database changes or predefined time-based events, triggering automated processes within the API layer.
Thanks to the combination of Hasura and the TypeScript API, Start Aftercare operates like a living digital organism — every action in the CMS is automatically reflected in the mobile application, every piece of data remains synchronized, and all processes run in real time. Together, Hasura and TypeScript enable consistent real-time content management within the mobile application.
This approach ensures maximum efficiency, security, and system stability, with minimal need for manual maintenance.
A Complete Technological Ecosystem
By combining Flutter, TypeScript, and Hasura, we created an ecosystem that is stable, fast, and ready to grow.
Flutter ensures the visual experience and fluidity of the application, TypeScript provides the structure and precision of the CMS, while Hasura connects everything into a dynamic, self-sustaining system. In practice, this means administrators can update content while users instantly see the changes — without manual intervention, without delay, and without errors.
Start Aftercare is therefore more than just an application; it is a connected digital ecosystem, built on technologies that guarantee long-term scalability and technical excellence.
In practice, this means that:
- Administrators can edit content, add new treatments, FAQ sections, or banners directly within the CMS.
- Users immediately see updated information in the mobile application.
- The API layer in the background automatically executes all necessary processes — from input validation to personalized notifications.
- Content management within the mobile app is handled directly through the CMS, without affecting production stability.
All components communicate in real time through the Hasura GraphQL infrastructure, ensuring complete alignment between administration and the user interface — without manual intervention, delays, or errors.
Start Aftercare is therefore not just an application but a connected digital system built on technologies that guarantee long-term sustainability, high security, and technical excellence.
This three-tier technological foundation — Flutter for experience, Hasura for data, and TypeScript for logic — makes the system flexible enough for growth, integration, and adaptation to future market needs.
Design and User Experience (UX/UI) — Where Simplicity Shapes Emotion
In developing the Start Aftercare application, design was not just a visual layer — it was the foundation for understanding how users experience the recovery process. Because the app deals with the sensitive area of post-treatment care, the goal of the design was to create an environment that builds trust, calms the user, and clearly guides them through each day of recovery.
Minimalism, consistency, and emotional neutrality became the key principles of the design approach, making the application intuitive, comforting, and professional.
Learn more about our UX/UI design process and how we create mobile interfaces that users love to engage with.
Design Philosophy – Less Complexity, More Clarity
From the very beginning, the app’s design followed a clear philosophy: the less the user has to think, the better the experience. The goal was not to impress with effects but to make every interaction intuitive, clean, and logical.
The user never has to search for information — the app delivers it at the right moment, in the right place.
Key design elements include:
- A simple and light color palette – every color serves a purpose; warm tones indicate progress, neutral shades calm the user, and contrasts direct attention.
- Highly legible typography – carefully selected fonts ensure clarity, even at a quick glance.
- Layout aligned with natural user rhythm – navigation and buttons are positioned to match daily routines, reducing cognitive load.
- Daily care view – color coding and status markers visually track the user’s progress day by day, creating a sense of continuity and control.
- Final screen “Care Completed” – designed as an emotional closure to the process, it gives the user a sense of accomplishment and satisfaction.
By combining functional aesthetics with emotional psychology, the app’s design becomes its quietest guide — directing, calming, and rewarding the user without the need for extra explanation.
Mobile Design – Simple Yet Intentional
The mobile design of the application is based on a balance between aesthetic simplicity and functional precision. It was built entirely according to the principles of Google’s Material Design and Apple’s Human Interface Guidelines, ensuring consistency and a natural feel across both Android and iOS environments. The user experience remains consistent regardless of the device, and every detail — from button placement to animations — serves a clearly defined purpose.
A key factor in maintaining both visual and technical consistency was the Flutter framework, which enables the display of identical designs, animations, and logic across all platforms. This approach eliminated fragmentation in the user experience while making development faster and more precise.
Key features of the mobile design:
- Consistency between Android and iOS environments – the interface follows each platform’s native principles while retaining a recognizable brand identity.
- Micro-interactions – carefully crafted animations provide immediate visual feedback for every user action. Subtle yet crucial, they make the app feel “alive” and build trust.
- Fluid transitions – navigation between screens is seamless; every movement has rhythm, creating a sense of lightness and natural flow.
- Wireframe prototyping in Figma – the design was fully developed through wireframes and interactive prototypes, forming the foundation for defining user flows, testing, and refining every detail before development.
- Precise interaction logic – each component was tested to respond within milliseconds, significantly reducing the user’s cognitive load.
The app’s design is more than just a visual layer — it is an extension of the user’s thought process. Every screen guides the user through the care journey with ease, clarity, and a sense of control, making the entire experience feel effortlessly simple.
Collaboration with the Client and Enhancement of the Existing Design
The Start Aftercare project had an unusually strong starting point — the client entered development with an already defined visual strategy and a well-developed initial design. Instead of the classic “from scratch” approach, the process began at the intersection of existing aesthetics and new digital logic, with the goal of preserving the brand’s recognizable identity while adapting it to the standards of modern mobile design and performance.
Our team took the existing design, expanded it with additional screens, refined interactions and element states, and optimized it for mobile display. Special attention was given to consistency — every new component had to align not only with the established visual identity but also with the technical capabilities of the Flutter framework.
Collaboration with the client was most evident in the following aspects:
- Iterative design process – each new screen version was validated collaboratively, preventing any gap between the design concept and real-world usability.
- Client as active tester – with deep insight into their own processes, the client independently tested functional prototypes, providing precise feedback in real usage contexts.
- Extension of the existing design – new screens and interactions were developed that were not part of the original concept but naturally built upon the existing structure.
- Mobile adaptation – initially web-oriented elements were redesigned for touch interaction, smaller screens, and the natural rhythm of user gestures.
- Continuous communication – regular review cycles, feedback sessions, and visual revisions ensured a transparent and efficient development process.
The result is not merely a design that is aesthetically pleasing, but one that is functionally alive — a system that preserves the brand’s personality while aligning seamlessly with the habits and expectations of end users.
This project demonstrated how true innovation emerges when designers and clients collaborate in harmony, combining expertise and experience toward a shared goal. Throughout the process, the team continuously tested and refined the mobile application’s administrative workflows, ensuring that editors could publish updates quickly and effortlessly.
UX Testing Driven by the Client
The Start Aftercare project included a unique phase of user experience validation — UX testing was carried out directly by the client, resulting in a system that fully reflects real user habits and needs.
As a professional with extensive experience in the tattoo and piercing industry, the client had a deep understanding of how users approach post-treatment care — their habits, uncertainties, and expectations.
Instead of traditional testing in a controlled environment, the process took place under real-world conditions, involving users who had just undergone tattoo, piercing, or permanent makeup treatments.
Testing was conducted iteratively, across several cycles, allowing changes and adjustments to be implemented immediately after each phase. This ensured that every design decision was based on real data — not assumptions.
Client-led UX testing was most evident through the following aspects:
- Practical testing in real-life conditions – the app was used during actual aftercare processes, enabling precise identification of real user needs.
- Behavioral analysis – the client observed where users paused, searched for extra information, or unintentionally interacted incorrectly with navigation elements.
- Rapid iteration and design adjustments – all identified issues were immediately addressed through new versions of screens and navigation flows.
- Focus on clarity and visual guidance – colors, statuses, and recovery stages were emphasized so that users always knew what to do next.
- Synergy between the client and design team – all modifications were jointly analyzed and approved, ensuring full alignment between UX logic and brand identity.
The result of this approach is not merely a visually polished app, but a system that has been tested, validated, and refined through real-world experience. UX testing led by the client transformed design into a living experience — intuitive, clear, and emotionally attuned to the user’s needs.
Design Consistency That Feels Righ
One of the core principles behind the Start Aftercare app’s design is complete visual consistency — every element, from color to icon, plays a clearly defined role in creating a sense of trust and recognition. Instead of drawing attention through visual effects, the design operates quietly, seamlessly, and logically — so the user always knows where they are and what to do next.
This approach doesn’t build emotion through spectacle, but through trust. When visual hierarchy is clear and interactions are predictable, users don’t waste mental energy figuring out what to do — they focus entirely on the app’s true purpose: care and recovery.
The visual consistency system is built around several key principles:
- Unified visual language – colors, typography, and iconography are carefully standardized, giving the app a professional and calming character.
- Functional simplicity – every element has a purpose; nothing is ornamental, everything serves orientation and clarity.
- Psychological stability through color – the palette features tones that calm and instill confidence, especially important during post-treatment phases.
- Emotional rhythm of use – transitions, animations, and visual accents are aligned with the user’s pace; the app “breathes” with them.
- Typography as a guide – clearly structured headings and descriptions lead the user without the need for additional explanation.
This design demonstrates strength not through complexity, but through calmness and logic. It reflects RedCode’s core design philosophy: “The best user experience isn’t the one remembered for how it looks — it’s the one remembered for how effortlessly it works.”
Start Aftercare embodies that philosophy in practice — a UX defined by balance, visual clarity, and functional harmony with the user’s journey. It’s not just an app that looks good — it communicates with empathy and precision, offering an experience that truly understands the user and evolves alongside their needs.
Smart Features That Drive the System
Every project we develop at RedCode has its own pulse — a set of functionalities that together create a unique user experience. All features operate through the integration of the CMS and the mobile application, ensuring that both content and logic remain perfectly synchronized.
In the case of the Start Aftercare application, that pulse is steady, calm, and perfectly organized — just like the care process the app is designed to digitalize.
The goal of this system was not merely to replace existing aftercare instructions with a digital version, but to automate the entire post-treatment care process — from the very first day of recovery to the final stage — with complete control and room for future upgrades.
Through a modular architecture connected in real time via the Hasura GraphQL infrastructure and the TypeScript-based CMS, every piece of data is automatically synchronized, and every content update becomes instantly visible to users.
In practice, this means that every functionality — from personalized care plans and automated notifications to educational content and salon branding — is designed to breathe in rhythm with the user.
Key components of the system:
- Hasura GraphQL enables instant, bidirectional communication between the application and the CMS — with no need for manual updates or custom API endpoints.
- TypeScript API connects all service processes: it manages validations, scheduling, notification handling, and third-party integrations. This ensures system stability and precise data control through clearly defined types and rules.
- The Flutter application and CMS form the visual and administrative layers of the system — delivering a consistent user experience across all devices and allowing administrators to update content in real time. This achieves true content consistency within the mobile application.
- The modular architecture allows for rapid feature upgrades without compromising stability, making the system sustainable and adaptable to future market needs.
In the background, the TypeScript API orchestrates communication between all layers — the Hasura GraphQL, CMS, and mobile application — synchronizing data, validating inputs, and triggering automated processes in real time.
Start Aftercare is not just an application; it is a digital ecosystem of interconnected modules that together establish a new standard of communication between studios and their clients.
In the following section, we present the key functionalities that define this system — the ones that set the rhythm of everyday use and mark the difference between an ordinary digital tool and a truly intelligent application.
Personalized Aftercare, One Day at a Time
The Start aftercare project is built around the core functionality that defines the entire user experience — treatment selection and the automatic generation of a personalized aftercare plan. When the user first opens the app, they select their treatment type (tattoo, piercing, PMU, or laser procedure), after which the system automatically generates a daily plan tailored to that specific treatment.
Each plan has been developed in close collaboration with the client, based on professional post-treatment care guidelines. The instructions are concise, clearly structured by days, and easy to follow — allowing the user to effortlessly navigate every recovery phase, from the initial treatment to full healing.
This functionality is powered by a fully integrated connection between the mobile app and the CMS, ensuring real-time synchronization of all content. Any update made by the administrator in the CMS is instantly reflected in the app — without technical intervention or waiting periods.
Most important components of this module include:
- Automatic care plan generation – the system creates a personalized daily plan based on the type of treatment and corresponding aftercare rules.
- Clear daily structure – each day includes defined tasks, instructions, and progress status, allowing users to easily track their recovery and stay motivated.
- Real-time synchronization via Hasura GraphQL and the TypeScript API layer – all changes made in the CMS are instantly visible to users in the app, ensuring complete data consistency.
- Dynamic content rendering in Flutter – the application automatically adapts its display to the user’s language, device, and treatment type, while maintaining flawless design and performance.
- Integrated sales component – each care phase can include themed banners and links to the client’s webshop, connecting educational and commercial content.
- Full control through the CMS – administrators can define the order, visibility, and links of banners directly within the interface, with no additional development or coding required.
- Complete CMS–mobile app integration reduces content publishing time from days to minutes.
This module delivers more than a digital care guide — it creates an intelligent ecosystem that seamlessly blends education, recovery, and commerce into one unified experience.
Users always know what to do and when, while all recommended products and information are instantly available — no searching, no waiting, no confusion.
Start aftercare transforms the recovery journey into a clear, guided, and secure process — from treatment to complete healing — while empowering users to easily access the products that help them achieve the best possible results.
Every Day Counts — Guided Recovery at Your Pace
At the heart of every treatment lies one essential element — time. The rhythm of recovery demands consistency, precision, and trust. That’s why the Start aftercare app features a built-in daily tracker that guides each user through their aftercare journey — step by step, day by day.
Once a treatment is selected, the system automatically launches a personalized timeline tailored to the length and specifics of that procedure. This ensures that every user always knows exactly where they are in the process — what’s been done, what’s next, and how close they are to full recovery.
But this tracker isn’t just counting days — it’s interpreting the phases of healing. Each phase carries its own rhythm and purpose. In the initial phase, users learn what to do and what to avoid. In the middle phase, the app monitors progress and adjusts recommendations. In the final phase, it celebrates completion — signaling the moment care is complete.
Designed to merge visual clarity with technical precision, the tracker makes it effortless for users to stay on course, free from confusion or error.
Key functionalities of this module include:
- Automatic timeline generation – the application creates a care plan duration based on the treatment type and dynamically displays daily progress.
- Phased recovery view – three stages of care (initial, middle, and final), each with clearly defined tasks, alerts, and tips.
- Interactive progress counter – users can see at any moment how many days have passed and how many remain until the end of the care process.
- Real-time synchronization via Hasura GraphQL and the TypeScript API – user status is instantly updated in the database and reflected in the app across all devices, which is crucial for a mobile application with centralized content control.
- Automated progression logic – using TypeScript-based logic, the application records every user action and displays the corresponding content (text, images, videos, banners) precisely on the day it’s needed.
- Fluid display in Flutter – visual progress indicators, animated transitions, and automatic theme adaptation (dark/light mode) ensure a smooth and pleasant user experience.
- Integrated activity validation – the API records all user interactions (task completion, tip viewing, notification receipt) and returns an updated status to the app in real time.
This module doesn’t just track time — it guides it.
Start aftercare becomes more than an app; it becomes a digital companion that keeps users consistent, reminds them of each next step, and records every milestone.
Users no longer have to remember instructions or timelines — the app does it for them, transforming aftercare into a clear, measurable, and motivating journey.
Timely Care — Automated Push Notifications with Deep-Link Precision
In the Start aftercare app, push notifications serve as one of the most essential tools for helping users stay consistent and on track with their personalized care plans.
This feature isn’t just a technical mechanism — it’s a thoughtfully designed communication system that reaches users at just the right moment, minimizing errors and reinforcing a sense of confidence during their recovery journey.
Built on Firebase Cloud Messaging (FCM), the notification system ensures reliable, scalable delivery across all platforms. Notifications are generated automatically based on predefined rules and user preferences set within the app.
When setting up the app, users can customize both the frequency and timing of notifications — choosing to receive them 2, 4, 6, or 8 times per day (with the default set at every 8 hours). They can also define when during the day they wish to be reminded:
- in the morning only,
- in the afternoon only,
- or evenly distributed throughout the day.
This flexibility allows notifications to blend seamlessly with the user’s daily rhythm — not interrupting, but enhancing their routine.
Each message is short, friendly, and consistent in tone — a simple prompt like “It’s self-care time!” appears exactly when needed, aligned with the treatment phase and user settings. Thanks to deep-link functionality, tapping on the notification takes the user directly to the “Care / Maintenance” section — bypassing the home screen — where personalized instructions for that specific day and treatment are displayed.
Every push notification dynamically includes essential parameters:
- User ID,
- Purchased care package (Tattoo, Piercing, Tattoo Removal, or PMU – Permanent Makeup),
- Current care day, calculated automatically from the user’s progress.
Behind the scenes, the system uses Hasura GraphQL API to fetch real-time data, while the TypeScript backend validates user preferences, manages the notification schedule, and synchronizes updates via the CMS. On the front end, the Flutter app ensures instant access to relevant content — no delays, no extra taps.
The result is a seamless automation system that combines technical precision with effortless usability. For the end user, this means total peace of mind — no more worrying about care routines or timing. The app guides them step by step, at the right pace and at exactly the right time.
The push notification system transforms reminders into reassurance — timely, personal, and in sync with each user’s lifestyle.
Up next: discover how FAQ and Legal Pages reinforce transparency, trust, and professional credibility throughout the app experience.
Transparency That Inspires Trust – FAQ and Legal Pages Done Right
To provide users with complete transparency and easy access to reliable information, the Start Aftercare application includes an integrated module for FAQ and legal pages, designed to offer simple, verified, and easily accessible answers to the most common questions about aftercare and app usage.
This serves as a textbook example of how content management within a mobile application can reduce maintenance costs and speed up updates.
The key advantage of this module lies in the client’s full control over content. Through the CMS system, the client can independently edit and organize FAQ sections, as well as add and manage links to legal pages, which are displayed directly within the app through a web-view component.
This approach keeps users within the same interface, without the need to open external browsers — ensuring consistency and trust throughout the user experience.
Within the FAQ module, the client can create:
- a general FAQ – covering universal topics about the app, care processes, and technical support,
- specific FAQ sections for each type of treatment, such as Tattoo, Piercing, PMU, or Tattoo Removal.
This flexibility enables precise targeting of information according to the treatment type selected by the user. For example, a user following PMU aftercare will only see content relevant to that process — from hygiene recommendations to pigment maintenance tips — while a piercing client will receive a completely different set of instructions.
This avoids information overload and delivers an experience that is focused, clear, and truly personalized.
In the same CMS interface, the client can also manage links to key legal pages such as:
- Terms of Use,
- Privacy Policy,
- Contact.
These links are entered as URLs and displayed in-app via a web-view format. This solution allows legal documents to be updated without republishing the app — simply updating the URL in the CMS ensures users immediately access the latest version of each document.
From a technical standpoint, the system uses Hasura GraphQL API to synchronize CMS content, while the TypeScript API validates the entered links and manages FAQ category availability. On the user side, the Flutter app renders web-view pages within its native interface, maintaining consistent visual identity and smooth navigation.
This approach brings together three essential elements — transparency, control, and user experience. Users can access all information within one interface, the client can instantly update content without developer intervention, and the overall design remains clean, structured, and visually coherent.
The FAQ and Legal Pages module bridges information and trust — giving users direct access to reliable answers and legal transparency without ever leaving the app.
From Salon to Screen – How QR Codes Turn App Sharing into Smart Marketing
To make the Start aftercare app easily accessible to end users, a dedicated QR code generation feature was developed for salon owners — a simple yet powerful way to bridge the gap between physical service and digital experience. This solution provides a visually branded, effortless method for clients to download the app instantly, turning everyday salon interactions into seamless onboarding moments.
The main goal of this functionality is to empower salon owners to promote the app directly within their own space. Through the Flutter CMS interface, each salon can generate and download its unique QR code, ready for printing and placement in high-visibility areas such as counters, mirrors, doors, or promotional materials like flyers and stickers.
With just one click in the CMS, a modal window opens, offering two main options:
- download the QR code in light or dark mode,
- view usage details and guidelines for printing and placement.
This dual design ensures flexibility — allowing each salon to choose the version that best complements its interior style or brand visuals.
When a customer scans the QR code in the salon, they are immediately redirected to the app’s landing page, where they can:
- choose their preferred app version (Android or iOS),
- read a short overview of the app’s purpose and how to use it.
This approach allows users instant access to the application without searching through app stores, while providing salon owners with a simple, professional, and visually consistent way to share the app with their clients.
From a technical perspective, the QR code system is integrated with the Flutter-based CMS, which generates and stores codes in an optimized SVG format. The TypeScript API manages the automated creation and validation of links to the official landing page, while also handling communication with the Hasura GraphQL layer, which stores metadata for each generated code.
On the user side, the Flutter frontend ensures a clear display and instant opening of the modal window, without delay.
In this way, the QR code becomes more than a technical feature — it is a bridge between the physical salon and the user’s digital experience, serving as the first step that guides the client into the digital post-treatment care process.
Through this module, Start Aftercare seamlessly combines practicality and marketing: salon owners can share the app with clients in just seconds — without technical barriers or lengthy explanations — while users gain access to a personalized digital care experience simply by scanning the code.
For editors, the CMS ensures that the Android and iOS applications with backend integration are always connected to the latest landing pages and marketing campaigns.
Speaking Every Language of Care – A Seamless Global Experience
To make Start aftercare accessible to a wider audience, a multilingual module was developed to support seven languages defined in collaboration with the Client. This functionality was not conceived merely as a technical enhancement, but as a strategic foundation for expanding the application into international markets.
Regardless of the user’s country, device, or language, the system maintains the same standard — clear presentation, consistent tone, and an equal level of precision across every language version.
Effortless Localization with English as the Ever-Reliable Safety Net
When the application is launched for the first time, it automatically detects the language settings on the user’s device. If the selected language is supported, the interface is fully localized — from buttons and notifications to instructions and system messages.
In cases where the user’s language is not among the supported ones, the app automatically defaults to English, serving as a universal fallback option.
This logic seamlessly combines automation and flexibility while giving users the freedom to manually adjust their preferred language within the app settings. As a result, every user — regardless of market or platform — experiences a clear, consistent, and fully localized interaction.
Key features of automatic localization:
- Automatic detection of device language upon first launch.
- Dynamic adjustment of the interface to the appropriate language version.
- English as a default fallback for unsupported languages.
- Manual language selection available in the app settings.
Such integration between the CMS and the mobile application enables the simultaneous launch of new languages.
Centralized Translation Management — Control Every Word, Effortlessly
All in-app text — from daily care instructions and FAQ sections to notifications and error messages — is managed centrally through the CMS.
Administrators can input and edit content across all seven supported languages, while the system automatically generates initial translations using the integrated Google Translate API, ensuring both precision and terminological consistency.
Every change made within the CMS becomes instantly visible to users thanks to real-time synchronization via the Hasura GraphQL API. This approach enables rapid adaptation to market changes, seamless language expansion, and effortless content updates — all without requiring additional development work.
Key advantages of centralized translation management:
- Full control over translations directly from the CMS interface.
- Automated translation generation with manual fine-tuning options.
- Real-time content updates across all platforms.
- Effortless addition of new languages without code-level modifications.
Thanks to this approach, Start Aftercare ensures that every word — from titles to instructions — remains consistent, accurate, and instantly available to users in their own language.
Centralized translation management thus becomes more than just a technical feature — it serves as a key enabler of global accessibility and locally tailored user experience.
A Multilingual Interface — One Experience, For Every Language
The user interface, developed in Flutter, supports real-time language switching without requiring the app to restart.
Static elements (titles, buttons, notifications) are pulled from the centralized translation database, while dynamic content (such as daily care instructions or FAQs) is sourced directly from the CMS and automatically displayed in the user’s selected language.
The transition between languages happens instantly and seamlessly, ensuring a natural flow of use.
With this approach, Start aftercare maintains a sense of local familiarity within a global reach — every user, regardless of location, experiences the app as if it were designed specifically for them.
Multilingual functionality in the Start aftercare app is not just a technical feature, but a bridge to global accessibility. By combining Flutter’s frontend architecture, TypeScript API, Hasura’s real-time GraphQL synchronization, and a centralized CMS, the system ensures flawless communication with users worldwide — without language barriers and without compromising brand identity.
In the next section, we explore how the custom-built CMS system becomes the central hub for managing content, users, and commercial components of the application.
CMS System — Real-Time Control, Real Results
At the core of the Start Aftercare ecosystem lies the CMS — the operational heart that powers the entire application. While the mobile app represents its visible face, the CMS serves as its brain — a central hub that manages content, users, and care processes in real time.
The result is a mobile application with an integrated administration layer, where content lives and evolves dynamically.
The CMS was developed in Flutter as a web application, accessible from any browser without the need to install additional software.
This approach makes administration simple, accessible, and secure — transforming Start Aftercare from a mobile app into a complete digital business system that connects all key components — content, users, notifications, and sales elements — into one efficient environment.
The system is designed to be intuitive even for users without technical expertise, while in the background, the Hasura GraphQL layer manages database communication and the TypeScript API orchestrates logic transfer and data validation between the CMS and the mobile application.
Thanks to this architecture, every change made in the CMS is automatically reflected in the mobile app — with no manual updates, no waiting, and no additional deployment required.
The CMS includes a set of advanced, carefully designed features:
- Content management – administrators can add, edit, and categorize texts, banners, instructions, and FAQ sections for all supported languages.
- Real-time synchronization – every change made in the CMS is instantly visible to app users thanks to the Hasura GraphQL infrastructure.
- Modular architecture – new modules, languages, or content types can be added without compromising system stability.
- Intuitive interface – the Flutter-based CMS is designed for quick and simple data entry, easily understandable even for non-technical users.
- Integration of sales elements – banners, links, and webshop products can be added or edited directly through the CMS, with immediate visibility in the app.
- The structures and workflows for mobile app content management (treatments, days, phases) are accessible from a single console.
In this project, the CMS is not merely a data-entry tool — it’s a comprehensive business system that seamlessly connects technology, design, and user experience into a unified whole. With its blend of simplicity, automation, and flexibility, it ensures that every aspect of the application — from content and language settings to banners and notifications — remains current, secure, and fully aligned.
Up next: we explore how the automated notifications system enables precise, two-way, real-time communication between the application and end users.
Admin Command Center — Create, Orchestrate, Publish
The Start Aftercare CMS system was developed as the central hub for managing content, users, and care processes. It is designed to give administrators complete control over business logic and user experience, without requiring any additional technical expertise.
The entire toolset was built to support the development of a mobile application with an integrated CMS, giving editors full autonomy over content management.
All changes — from adding new treatments to uploading banners — are synchronized in real time with the mobile application via the Hasura GraphQL database, while the TypeScript API ensures proper data validation and seamless transfer between the CMS and the user-facing app.
This approach maintains complete system accuracy, security, and stability, with minimal need for manual intervention.
User Management — Precision, Control, and Data Integrity
This functionality provides administrators with precise control over the application’s user base through the CMS. Within the interface, admins can:
- View and search users by treatment type, status, or account category.
- Deactivate, reactivate, or permanently delete user profiles.
- Assign different levels of access and administrative permissions.
- Review activity history and registration status.
Built-in security mechanisms prevent accidental deletion or unauthorized modification of data, preserving database integrity and ensuring a high level of personal data protection.
This module serves as the foundation for administrative control and overall system transparency.
Treatment Packages Management — Keeping Content Dynamic and Accurate
The CMS includes a centralized registry of all aftercare packages — Tattoo, Piercing, Tattoo Removal, and PMU (Permanent Makeup). Administrators can:
- Review existing packages and their attributes.
- Update descriptions, images, and content structure.
- Temporarily deactivate specific packages.
- Add new treatments as they become part of the service offering.
This structure gives full control over how available treatments are displayed, ensuring users always access accurate, up-to-date information. In this way, the CMS becomes a key tool for maintaining a dynamic and scalable aftercare system.
Content Management — Instant Updates, Total Creative Freedom
This module allows administrators to add, edit, and maintain all content displayed in the mobile application — including text, images, videos, and daily care instructions. Through the CMS, administrators can:
- Add new content for each treatment type.
- Update existing instructions or enrich them with multimedia elements.
- Edit display order and visual layout.
- Instantly publish updates thanks to real-time synchronization via Hasura.
The key advantage of this approach lies in autonomy — administrators can manage every element of the app without technical intervention. All changes are reflected in real time, dramatically accelerating updates and maintenance. This is the very essence of the concept of a content-managed mobile application.
Banner and Ad Management — Where Care Meets Commerce
The CMS features a dedicated module for adding and managing promotional banners within the application. Through this tool, clients can:
- Add new banners with links to their webshop or partner sites.
- Assign banners to specific treatment types or recovery phases.
- Update visuals and copy in real time.
This functionality transforms Start aftercare into more than a digital guide — it becomes a smart platform that seamlessly blends education and promotion.
Users receive relevant content and recommended products exactly when they need them, while salons enhance their visibility and unlock new revenue opportunities.
Legal & Informational Pages — Transparency Built In
Within the CMS, administrators can easily add and update all legal documents and informational sections, including:
- Terms of Use
- Privacy Policy
- Contact Information
All links are displayed directly within the mobile app through an integrated web-view, ensuring effortless maintenance and full legal compliance — without requiring any development work.
This module guarantees that the application remains transparent, up to date, and compliant with all regulations with minimal administrative effort.
Centralized Translation Management — One System, Seven Languages
The CMS includes an advanced multilingual management module covering all seven languages supported by the application.
Administrators can through Flutter CMS:
- Enter and edit translations for each language.
- Use the integrated Google Translate API for automated translation.
- Manually refine and validate localized content.
- Synchronize all updates in real time through the Hasura GraphQL API.
This approach ensures that all content — from daily care instructions to push notifications — remains fully localized and consistent, without the need for additional tools or manual data transfers.
The administrative interface of the Start Aftercare CMS is not merely a background tool but the operational core of the entire system.
It enables administrators to easily, accurately, and securely manage every aspect of the application — from users and treatments to languages and banners — with full real-time synchronization with the mobile interface. The efficiency of this CMS-for-mobile architecture is especially evident in multi-market environments and scenarios requiring frequent updates.
Thanks to the combination of Flutter CMS, Hasura GraphQL infrastructure, and TypeScript API, every change within the system is automatically reflected in the application.
This architecture ensures that the app always remains up to date, reliable, and ready to scale — without additional development work or manual adjustments.
Real-Time Harmony — How the CMS and App Stay Perfectly in Sync
Start Aftercare CMS and the mobile application are connected through the Hasura GraphQL architecture, which enables instant, bidirectional synchronization of all content — from daily instructions and banners to user settings and notifications.
This architecture ensures a consistent and seamless integration between the CMS and the mobile application.
Whenever an administrator adds or updates information, the change is automatically reflected in the app — without re-downloading, manual refreshing, or any additional steps.
In the background, the TypeScript API manages data validation and transfer between the Flutter CMS and the mobile application, while the Hasura GraphQL layer ensures fast and secure communication with the database.
The result is flawless synchronization between the backend and frontend layers, providing maximum efficiency, precision, and accuracy across the entire system.
Users see updates instantly, administrators work without delays, and data is synchronized in real time — reliably, stably, and without errors.
Built to Evolve — A Flexible Architecture Ready for Growth
The Start aftercare CMS architecture is designed as an open, modular platform — built to continuously evolve and adapt to new requirements.
Instead of a closed, static solution, the system is structured so that each component can function independently while seamlessly interacting with others.
This approach ensures that any future upgrade — whether it’s adding a new treatment type, an additional language, or integrating with an external service — can be implemented without compromising the system’s stability or performance.
The technical foundation of the system relies on Hasura GraphQL, TypeScript, and Flutter, enabling:
- modular expansion of functionality without redeveloping the core,
- scalability in terms of users, treatments, and supported languages,
- high stability and data security through two-way real-time synchronization,
Thanks to this architecture, Start aftercare can grow indefinitely — evolving from a simple aftercare app into a complete business ecosystem that connects salons, clients, and partners on a global scale.
Centralized, automated, and always up to date — the Start aftercare CMS is more than an administrative tool; it’s a future-ready platform whose flexible architecture allows the system to scale alongside the business, staying stable, secure, and efficient no matter how far it expands.
Our Closing Insight — Technology That Cares
The digital transformation of the health and beauty industry demands solutions that are not only functional but also intuitive, personalized, and intelligent enough to meet the needs of modern users and business partners.
The Start Aftercare project demonstrates how mobile app development and business system design can merge into a unified digital experience that enhances the entire post-treatment care process — from the first day after a procedure to complete recovery.
Start Aftercare stands as a benchmark solution for CMS and mobile app integration within the aesthetic industry.
Through carefully planned architecture and a strategic choice of technologies — Flutter for mobile app and CMS interface development, Hasura GraphQL for real-time data synchronization, and TypeScript API for logic, validation, and inter-system communication — we built a platform that combines functionality, design, and performance into a cohesive whole.
For the client, this means a mobile application with an administrative layer that can be developed and maintained without disruption.
The system allows users to follow personalized daily care instructions, enables salons to brand and distribute the app via QR codes, and gives administrators control over content, languages, and campaigns through a single centralized CMS interface.
Start Aftercare is not just a post-treatment care app — it is a digital bridge between salons and clients, designed to deliver safety, consistency, and a professional experience at every stage of care.
Thanks to its modular architecture and scalable design, the system is ready for international expansion, integration with e-commerce platforms, and future AI-driven features that will further personalize the user experience.
Thanks to its modular architecture and upgrade-ready foundation, the system is prepared for international expansion, integration with e-commerce platforms, and future AI-driven features that will further personalize the user journey. This project perfectly embodies our philosophy: technology has the greatest value when it simplifies everyday life and creates real benefits for users.
Start aftercare proves that an innovative combination of mobile applications, intelligent CMS systems, and modern UX design can redefine how we care for ourselves — digitally, simply, and effectively.
At RedCode, we believe the future of digital care is built on tools like these — secure, flexible, and visually flawless.
Whether you’re developing your first digital product, modernizing an existing application, or looking for a partner to build a scalable growth platform, our team is here to help.
Want to develop your own mobile app — from idea to finished product?
Contact us for consultation and collaboration — with us, you’re not just building an app, but crafting a digital strategy for the future of care.
Technologies
















































































