[{"data":1,"prerenderedAt":166},["ShallowReactive",2],{"layout":3,"work-contentrain":118},{"servicePages":4,"socialLinks":105},[5,20,36,51,66,79,92],{"approachContent":6,"benefitsContent":7,"challengeContent":8,"heroDescription":9,"id":10,"metaDescription":11,"metaTitle":12,"order":13,"relatedWorks":14,"slug":17,"technologies":18,"title":19,"ID":10},"We follow a domain-driven approach to microservice design. Each service owns its data and business logic, communicating through well-defined contracts. For synchronous operations we use gRPC with Protocol Buffers for type-safe, high-performance inter-service calls. For asynchronous workflows — notifications, order processing, background jobs — we implement message queues with RabbitMQ.\n\nOur NestJS monorepo architecture keeps shared code (DTOs, interfaces, utilities) in common libraries while each service deploys independently. We implement the API Gateway pattern to provide a unified REST interface for frontend clients, handling authentication, rate limiting, and request routing internally.\n\nIn our FoodButik project, we built a 7-microservice backend: 1 API Gateway + 3 gRPC services + 3 RabbitMQ consumers. The system handles ~78 RPC methods and ~80+ REST endpoints with a 10-state order lifecycle, multi-channel notifications (Email/SMS/Push) with exponential backoff retry, and 3 different authentication mechanisms for admin, merchant, and POS device access.","Independent scaling — scale only the services that need it, not the entire system. Fault isolation — a failure in the notification service doesn't bring down order processing. Technology flexibility — each service can use the optimal database and tools for its domain. Team autonomy — multiple developers can work on different services without merge conflicts. Deployment independence — ship updates to individual services without full system downtime.\n\nOur implementations include Docker multi-stage builds, Kubernetes-ready health checks, automatic Prisma migrations, and comprehensive monitoring with Sentry integration.","Monolithic backends become bottlenecks as products grow. Scaling individual features independently, managing complex business logic across domains, and maintaining system reliability under load require a fundamentally different approach. Many teams struggle with service boundaries, data consistency across services, and the operational complexity of distributed systems. A poorly designed microservice architecture can be worse than a monolith — adding network latency, deployment complexity, and debugging challenges without the benefits of true service isolation.","We design and build production-grade microservice architectures using NestJS, gRPC, and message queues. From API gateway design to inter-service communication, we deliver backend systems that scale with your business.","sp01a2b3c4d5","Expert NestJS microservice development with gRPC, RabbitMQ, and event-driven architecture. We build scalable, production-ready backend systems with proven multi-service architectures.","NestJS Microservice Development | Lanista Software",1,[15,16],"c3d4e5f6a7b8","d4e5f6a7b8c9","nestjs-microservice-development","NestJS, gRPC, RabbitMQ, PostgreSQL, Redis, Prisma ORM, Docker, Sentry, TypeScript","NestJS Microservice Development Services",{"approachContent":21,"benefitsContent":22,"challengeContent":23,"heroDescription":24,"id":25,"metaDescription":26,"metaTitle":27,"order":28,"relatedWorks":29,"slug":33,"technologies":34,"title":35,"ID":25},"We choose between Expo and React Native CLI based on project requirements. For consumer apps requiring rapid iteration, OTA updates, and broad device support, Expo provides an excellent foundation with EAS Build for production deployments. For projects requiring deep native access — custom hardware SDKs, background services, or specialized native modules — we use React Native CLI with custom native bridges.\n\nFor Yanyana, our social game platform, we built a React Native Expo + CLI hybrid architecture with a pnpm workspaces monorepo containing 4 apps and 4 shared packages. The app features 12+ independent game engines with real-time WebSocket state synchronization, reconnect logic, and lobby management. A dual payment system handles Paddle for web and In-App Purchase for iOS/Android.\n\nFor FoodButik POS, we wrote ~2,100 lines of custom Java Native Modules integrating the Sunmi SDK for thermal printer control, Android foreground services for uninterrupted order listening, and device-based authentication using Sunmi serial numbers.\n\nFor RezMe, we used Expo SDK 53 with Expo Router v5, implementing 9 Zustand stores, multi-auth support (Email, Google, Apple, Phone OTP), deep linking, and push notifications via Expo SDK.","Single codebase for iOS and Android — reduced development time and maintenance cost. Native performance with platform-specific optimizations where needed. Access to the full React ecosystem and npm package library. OTA updates with Expo for instant bug fixes without app store review. Deep native integration capability for specialized hardware and SDKs.\n\nOur React Native projects consistently ship with comprehensive testing (130+ test files, 500+ tests in the Yanyana project including Stryker mutation testing), type-safe architectures with TypeScript, and production-ready CI/CD pipelines.","Building mobile apps that feel truly native on both iOS and Android while maintaining a single codebase is a constant balancing act. Teams face challenges with native module integration, performance optimization for real-time features, platform-specific UI behaviors, and the complexity of managing app store deployments. For specialized hardware like POS terminals, the challenge multiplies — requiring custom native bridges, hardware SDK integration, and background service management that goes far beyond standard app development.","We build cross-platform mobile applications with React Native — from consumer-facing apps to specialized commercial device software. Our experience spans Expo managed workflows for rapid development and bare React Native CLI for deep native integration.","sp02b3c4d5e6","Cross-platform React Native mobile app development with Expo and CLI. We build production iOS and Android apps with native module integration, real-time features, and scalable architectures.","React Native Mobile App Development | Lanista Software",2,[30,16,31,32],"a1b2c3d4e5f6","e5f6a7b8c9d0","1a01328952b4","react-native-mobile-app-development","React Native, Expo, TypeScript, Zustand, Redux Toolkit, WebSocket, Java Native Modules, Supabase, Firebase, EAS Build","React Native Mobile App Development Services",{"approachContent":37,"benefitsContent":38,"challengeContent":39,"heroDescription":40,"id":41,"metaDescription":42,"metaTitle":43,"order":44,"relatedWorks":45,"slug":48,"technologies":49,"title":50,"ID":41},"We approach SaaS development with a modular architecture that separates concerns cleanly. Authentication, billing, tenant management, and core business logic each live in their own modules with well-defined interfaces.\n\nFor Contentrain, our Git-native Headless CMS platform, we built a Vue 3 + NestJS + PostgreSQL stack with 20+ modular NestJS modules. The monorepo architecture (pnpm workspaces + Nx + Turbo) manages multiple applications from a single codebase. Stripe handles subscription and invoice management, while TypeBox provides schema-first API validation.\n\nFor LineDiff, our AI-powered document comparison platform, we implemented a local-first architecture with IndexedDB as primary storage and Firebase Firestore as a sync queue. This ensures the app works offline while syncing data when connectivity returns. Paddle manages subscriptions, and OpenAI API powers intelligent diff analysis. The platform integrates with Google Docs, Notion, and MS Word as add-ins.\n\nFor RezMe, we built the complete subscription lifecycle with PayTR integration — handling trial periods, billing cycles, payment retries, suspension, and grace periods. Request-scoped JWT combined with Supabase RLS provides row-level data isolation between tenants.","Battle-tested subscription management — we've integrated Stripe, Paddle, and PayTR across multiple products, handling every edge case from payment failures to plan migrations. Multi-tenant isolation at the data layer, not just the application layer. Local-first architecture options for privacy-sensitive applications. Monorepo architectures that let you ship multiple apps (web, mobile, API, admin panel) from a single codebase.\n\nEvery SaaS platform we build includes comprehensive authentication (social logins, OTP, device auth), role-based access control, audit logging, and API documentation with Swagger.","Building a SaaS platform requires solving a unique set of challenges simultaneously: multi-tenant data isolation, subscription billing with trials and grace periods, user authentication across multiple providers, and an architecture that supports rapid feature development without accumulating technical debt. The subscription lifecycle alone — trial periods, payment retries, plan changes, suspensions, cancellations, and grace periods — is a complex state machine that must work flawlessly to protect revenue.","We build SaaS platforms from the ground up — designing multi-tenant architectures, implementing subscription lifecycle management, and delivering scalable infrastructure that grows with your user base. From early-stage MVPs to enterprise platforms serving thousands of customers.","sp03c4d5e6f7","End-to-end SaaS platform development with multi-tenant architecture, subscription billing (Stripe, Paddle, PayTR), and scalable infrastructure. From MVP to enterprise-grade platforms.","SaaS Platform Development | Lanista Software",3,[46,47,31],"8a8044e883e8","b2c3d4e5f6a7","saas-platform-development","Vue 3, NestJS, PostgreSQL, Stripe, Paddle, PayTR, Firebase Firestore, IndexedDB, Supabase, TypeScript, pnpm workspaces, Nx, Turbo","SaaS Platform Development Services",{"approachContent":52,"benefitsContent":53,"challengeContent":54,"heroDescription":55,"id":56,"metaDescription":57,"metaTitle":58,"order":59,"relatedWorks":60,"slug":63,"technologies":64,"title":65,"ID":56},"We leverage Nuxt.js for applications requiring server-side rendering, static site generation, or hybrid rendering strategies. Our component architecture follows Atomic Design principles — atoms, molecules, organisms, templates — ensuring reusable, testable, and maintainable UI code.\n\nFor Bloom & Fresh, Turkey's leading online flower and gift platform, we executed a complete frontend modernization from legacy code to Nuxt.js. Over 2 years of continuous development, we implemented SSR for SEO optimization, integrated Contentrain CMS for dynamic content management, and delivered performance optimizations including lazy loading, code splitting, and image optimization. The platform includes full e-commerce capabilities: product catalog, cart management, payment processing, and order tracking.\n\nFor our own products, we use Vue 3 extensively — Contentrain's admin dashboard, LineDiff's document comparison interface, and Yanyana's 39-component shared design system are all built on Vue 3 with TypeScript. Our open-source LUI Vue component library, used across all our projects, provides a battle-tested foundation of UI components built with Vue 3, TypeScript, and TailwindCSS.","Server-side rendering for optimal SEO and Core Web Vitals. Component-driven architecture with our proven Atomic Design methodology. Performance optimization expertise — lazy loading, code splitting, image optimization, font optimization. CMS integration for non-technical content management. Type-safe development with TypeScript throughout the stack.\n\nWe maintain LUI Vue, our open-source Vue 3 component library used in production across all our projects, ensuring consistent UI patterns and rapid development.","Modern web applications need to balance multiple competing requirements: fast initial page loads for SEO and user experience, rich interactivity for engagement, responsive design across devices, and maintainable codebases that scale with feature growth. Legacy frontend codebases often suffer from poor performance, inconsistent component patterns, and SEO deficiencies that hurt discoverability. Migrating to a modern framework while maintaining business continuity requires careful planning and deep framework expertise.","Vue.js and Nuxt.js are at the core of our frontend expertise. We build server-rendered web applications, single-page apps, and static sites with a focus on performance, SEO, and developer experience. From e-commerce platforms to SaaS dashboards, our Vue ecosystem expertise delivers production-grade results.","sp04d5e6f7a8","Expert Nuxt.js and Vue.js web application development with SSR, SEO optimization, and high-performance architectures. We build modern, scalable web applications and e-commerce platforms.","Nuxt.js & Vue.js Web Development | Lanista Software",4,[61,46,47,62],"8a8044e883e9","f6a7b8c9d0e1","nuxtjs-vuejs-web-application-development","Vue 3, Nuxt.js, TypeScript, TailwindCSS, Pinia, Contentrain CMS, Storybook, Vitest, SSR, SEO","Nuxt.js & Vue.js Web Application Development",{"approachContent":67,"benefitsContent":68,"challengeContent":69,"heroDescription":70,"id":71,"metaDescription":72,"metaTitle":73,"order":74,"relatedWorks":75,"slug":76,"technologies":77,"title":78,"ID":71},"We treat payment integration as a first-class architectural concern, not an afterthought. Each payment provider gets a dedicated service module with its own webhook handlers, event processing, and state management.\n\nFor Contentrain, we implemented Stripe with full subscription lifecycle management — plan creation, customer portal, invoice generation, webhook event processing, and automated dunning for failed payments.\n\nFor Yanyana, we built a dual payment system: Paddle for web subscriptions and In-App Purchase for iOS and Android. Both systems sync to a unified subscription state, so a user's access is consistent regardless of where they purchased.\n\nFor RezMe, we integrated PayTR for the Turkish market, implementing the complete subscription lifecycle including trial periods, billing cycles, payment retries, suspension, and grace period management. The system handles webhook callbacks, payment status reconciliation, and automated notifications for payment events.\n\nFor LineDiff, Paddle handles subscription management with support for multiple pricing tiers and annual/monthly billing options.","Battle-tested integrations across 4 different payment providers. Unified subscription state management across web and mobile platforms. Robust webhook handling with idempotency and retry logic. Comprehensive error handling for failed payments, expired cards, and disputed charges. Regional payment provider expertise for the Turkish market (PayTR).\n\nEvery payment integration we build includes comprehensive logging, Sentry error tracking, and reconciliation tools to ensure no transaction is lost.","Payment integration goes far beyond displaying a checkout form. Subscription management requires handling trial periods, plan upgrades and downgrades, proration, failed payment retries with exponential backoff, grace periods, and cancellation flows. Mobile apps add another layer of complexity with Apple and Google's in-app purchase requirements, receipt validation, and the need for a unified billing state across web and mobile. Regional payment providers like PayTR have their own quirks, webhook patterns, and reconciliation requirements that differ significantly from global providers like Stripe.","We integrate payment systems into web and mobile applications — from one-time purchases to complex subscription lifecycles. Our hands-on experience with Stripe, Paddle, PayTR, and native In-App Purchase systems means we understand the edge cases that break payment flows in production.","sp05e6f7a8b9","Payment system integration for web and mobile apps. Stripe, Paddle, PayTR, and In-App Purchase expertise with subscription lifecycle management, multi-currency support, and PCI compliance.","Payment Integration Development | Lanista Software",5,[46,30,47,31],"payment-integration-development","Stripe, Paddle, PayTR, Apple In-App Purchase, Google Play Billing, NestJS, Webhooks, TypeScript","Payment Integration Development Services",{"approachContent":80,"benefitsContent":81,"challengeContent":82,"heroDescription":83,"id":84,"metaDescription":85,"metaTitle":86,"order":87,"relatedWorks":88,"slug":89,"technologies":90,"title":91,"ID":84},"Our POS development approach starts with the Sunmi SDK and works outward. We write custom Java Native Modules that expose device-specific capabilities to React Native, giving us the reliability of native code with the development speed of React Native for business logic and UI.\n\nFor FoodButik POS, we developed a complete restaurant order management application with ~2,100 lines of custom Java Native Modules. The Sunmi SDK integration covers thermal printer control with custom receipt formatting, Android foreground service for uninterrupted order listening (the app stays active even when the screen is off), and audio notification system for new order alerts.\n\nThe application implements device-based authentication using Sunmi serial numbers combined with PIN verification, ensuring only authorized terminals can access the system. Redux Toolkit with custom middleware handles real-time order polling, while AutoTask provides automatic order acceptance for high-volume periods. A concurrent action lock mechanism prevents duplicate order processing.\n\nThe entire system supports 3 languages (managed remotely via i18next + Contentrain CMS), allowing restaurant chains to deploy across different markets without code changes.","Deep Sunmi SDK expertise with proven production deployments. Custom native module development for hardware-specific requirements. Reliability-first architecture — foreground services, crash recovery, and offline fallbacks. Device-based security with hardware-bound authentication. Remote configuration and multi-language support for multi-location deployments.\n\nOur POS solutions are designed for the demanding restaurant environment — where every second counts and downtime means lost revenue.","Commercial POS terminals operate in environments where reliability is non-negotiable. A crashed app means lost orders and revenue. These devices require deep native integration — thermal printers need precise formatting control, the app must run as a foreground service to never miss an incoming order, audio alerts must work reliably for kitchen notifications, and device authentication must be hardware-bound for security. Standard React Native development doesn't cover these requirements — they demand custom native module development and intimate knowledge of device-specific SDKs.","We develop custom applications for commercial POS terminals — specifically Sunmi devices. From thermal printer control to foreground services for real-time order processing, we bridge the gap between React Native and native device capabilities with custom native modules.","sp06f7a8b9c0","Custom POS application development for Sunmi terminals and commercial devices. Restaurant order management, thermal printer integration, and real-time order processing systems.","POS Application Development | Lanista Software",6,[16,15],"pos-application-development","React Native CLI, TypeScript, Java, Sunmi SDK, Redux Toolkit, i18next, Contentrain CMS, Android Foreground Service","POS Application Development Services",{"approachContent":93,"benefitsContent":94,"challengeContent":95,"heroDescription":96,"id":97,"metaDescription":98,"metaTitle":99,"order":100,"relatedWorks":101,"slug":102,"technologies":103,"title":104,"ID":97},"We use AI at two levels: as a development accelerator and as a product feature.\n\nAs a development tool, we actively use Claude Code and Codex across our projects. These AI agents assist with code generation, refactoring, test writing, and architectural decisions. In our Yanyana and LineDiff projects, AI-assisted development has measurably accelerated our delivery cycles — from generating comprehensive test suites (500+ tests with Stryker mutation testing) to scaffolding complex state machines for game engines.\n\nAs a product feature, we integrate LLM capabilities where they provide genuine user value. LineDiff uses OpenAI API for intelligent diff analysis — going beyond character-by-character comparison to provide semantic understanding of document changes, automatic change summaries, and context-aware highlighting. The AI processing runs in Web Workers to keep the main thread responsive.\n\nOur approach to AI integration is pragmatic: we use AI where it demonstrably improves outcomes, not as a marketing checkbox. Every AI feature we ship includes fallback behaviors, cost monitoring, and response quality validation.","Faster development cycles through AI-assisted coding, testing, and code review. Intelligent product features powered by LLM APIs with proper error handling and fallbacks. Pragmatic AI adoption — we know where AI adds value and where it doesn't. Experience with multiple AI providers (OpenAI, Anthropic) and their SDK ecosystems. AI-assisted testing workflows that catch more bugs with less manual effort.\n\nWe stay current with the rapidly evolving AI landscape — Claude Code, Codex, and emerging AI agent frameworks are tools we use daily, not just talk about.","AI is transforming software development on two fronts: how software is built, and what software can do. Teams that don't adopt AI-assisted development workflows fall behind in delivery speed. Products that don't leverage AI capabilities miss opportunities to provide intelligent features users increasingly expect — smart search, content analysis, automated insights, and natural language interfaces. The challenge is knowing where AI adds genuine value versus where it introduces unnecessary complexity, cost, or reliability concerns.","We integrate AI technologies into both our development workflow and the products we build. From using Claude Code and Codex as AI pair programming partners to embedding LLM capabilities directly into applications, AI is a core part of how we deliver software faster and smarter.","sp07a8b9c0d1","AI-powered software development with Claude Code, Codex, and LLM integration. We leverage AI agents for faster delivery, smarter testing, and intelligent product features.","AI-Powered Software Development | Lanista Software",7,[47,30],"ai-powered-software-development","Claude Code, OpenAI API, Anthropic SDK, Web Workers, AI Agents, LLM Integration, Prompt Engineering, TypeScript","AI-Powered Software Development Services",[106,110,114],{"icon":107,"id":108,"link":109,"ID":108},"ri-linkedin-line","2aa54f9e7eaf","https://www.linkedin.com/company/lanista-software",{"icon":111,"id":112,"link":113,"ID":112},"ri-twitter-line","2aa54f9e7eb1","https://x.com/lanistasoftware",{"icon":115,"id":116,"link":117,"ID":116},"ri-instagram-line","2aa54f9e7eb2","https://www.instagram.com/lanistasoftware/",{"work":119,"related":133},{"category":120,"challenge":124,"description":125,"id":46,"image":126,"link":127,"order":13,"outcome":128,"slug":129,"solution":130,"technologies":131,"title":132,"ID":46,"categoryName":121},{"category":121,"id":122,"order":123},"Product Development","bcc834108adc",9,"AI made teams dramatically faster at producing code — but it did nothing for the content trapped inside that code. UI copy, docs, and structured content stay hardcoded across components: unstructured, untranslated, and ungoverned. Traditional CMS products answer this by hiding content behind opaque databases and admin panels, and by locking it into a proprietary runtime. The brief was to let AI agents extract, create, translate, and update content at full speed, while keeping schema, human review, and portable output firmly in control — with no vendor lock-in.","AI-native content governance ecosystem. Contentrain lets teams extract, govern, and ship structured content straight from their codebase — a local-first, Git-native toolchain (CLI, MCP server, type-safe SDK) plus Contentrain Studio, a conversation-first, self-hostable CMS.","/1729065603135_denemecontentrain.svg","https://contentrain.io/","Shipped as an open ecosystem rather than a single product: the MIT npm packages (the `contentrain` CLI, `@contentrain/mcp`, `@contentrain/query`, `@contentrain/rules`, `@contentrain/skills`, and `@contentrain/types`) with 15 reusable agent skills, alongside the AGPL open-core Studio platform and a managed cloud option. Content stays portable JSON and Markdown in Git with zero vendor lock-in — and this very site runs on it.","contentrain","We designed and built Contentrain as a two-layer, open ecosystem around a single `.contentrain/` Git contract — plain JSON and Markdown that any framework or language can read.\n\nContentrain AI (MIT, local-first): a CLI plus a deterministic MCP server (17 tools over stdio and HTTP, with Local, GitHub, and GitLab providers), a type-safe `#contentrain` query SDK, and a library of agent rules and skills. Agents extract hardcoded strings and create, translate, and update content; Contentrain enforces the schema, writes canonical output, and routes every change through Git-native review branches. It is agent-agnostic (Claude Code, Cursor, Windsurf, VS Code, Copilot) and ships starters for Nuxt, Next.js, Astro, SvelteKit, and VitePress.\n\nContentrain Studio (open-core, AGPL + EE): a conversation-first, Git-backed content operations platform built on Nuxt 4. Teams connect a repository, define models, edit through chat, forms, or a structured UI, review changes as branches, commits, diffs, and merges, and deliver through media, CDN, and APIs — self-hosted or as a managed Pro/Enterprise offering, with Git always the source of truth.","TypeScript, Model Context Protocol (MCP), Node.js, Nuxt 4, Vue 3, Supabase, TailwindCSS, Git, pnpm monorepo, Sentry","Contentrain",[134,144,154],{"category":135,"challenge":136,"description":137,"id":30,"image":138,"link":139,"order":28,"slug":140,"solution":141,"technologies":142,"title":143,"ID":30,"categoryName":121},{"category":121,"id":122,"order":123},"Weddings, corporate events, and gatherings needed a social game platform that works both offline for small groups and online for hundreds of players, across web and mobile.","Social game platform for weddings, corporate events, and social gatherings. Supports P2P offline (2-10 players) and online event (50-500+ players) modes across Web (PWA), iOS, and Android.\n\nBuilt with React Native (Expo + CLI), Bun.js + ElysiaJS, Vue 3, and a pnpm workspaces monorepo with 4 apps + 4 shared packages. Features 12+ independent game engines, real-time WebSocket state sync, 39 shared Vue components as a design system, dual payment system (Paddle + In-App Purchase), and 130+ test files with 500+ tests including Stryker mutation testing.","/yanyana-logo.svg","https://yanyana.games","yanyana","We built it on a pnpm monorepo (4 apps + 4 shared packages) with React Native (Expo + CLI), a Bun.js + ElysiaJS backend, and Vue 3: 12+ independent game engines, real-time WebSocket state sync, a 39-component design system, dual payments (Paddle + In-App Purchase), and 500+ tests with Stryker mutation testing.","React Native, Expo, Bun.js, ElysiaJS, Vue 3, WebSocket, Paddle","Yanyana",{"category":145,"challenge":146,"description":147,"id":47,"image":148,"link":149,"order":44,"slug":150,"solution":151,"technologies":152,"title":153,"ID":47,"categoryName":121},{"category":121,"id":122,"order":123},"Comparing text and documents usually means uploading sensitive files to the cloud — users needed a private, offline-capable tool across many formats.","AI-powered text and document comparison platform. Local-first, offline-capable with client-side encryption for privacy. Supports 10+ file formats including txt, docx, pdf, json, xml, csv, md, html, and yaml.\n\nBuilt with Nuxt 4 + Vue 3, Firebase Firestore, and OpenAI API. Features IndexedDB primary storage with Firestore sync queue (local-first architecture), Web Workers for diff computation, Paddle subscription management, and integrations with Google Docs, Notion, and MS Word Add-in.","/linediff-logo.png","https://linediff.app","linediff","We built a local-first, client-side-encrypted comparison platform on Nuxt 4 + Vue 3 with IndexedDB primary storage and a Firestore sync queue, Web Workers for diff computation, OpenAI-powered analysis, Paddle subscriptions, and Google Docs / Notion / MS Word integrations across 10+ file formats.","Nuxt 4, Vue 3, Firebase Firestore, OpenAI API, IndexedDB, Web Workers, Paddle","LineDiff",{"category":155,"challenge":156,"description":157,"id":158,"image":159,"link":160,"order":161,"slug":162,"solution":163,"technologies":164,"title":165,"ID":158,"categoryName":121},{"category":121,"id":122,"order":123},"Visivi, an HR platform, needed both a mobile app and a web portal from a single product vision.","Visivi is an HR platform with both mobile and web portals. \n\nWe developed the mobile application with React Native, making it cross-platform for both iOS and Android. For the web portal, we used Nuxt.js and Vue.js.","8a8044e883eb","/1729074133746_visivi.svg","https://visivi.co/",10,"visivi","We built the cross-platform mobile app with React Native for iOS and Android, and the web portal with Nuxt.js and Vue.js.","React Native, Nuxt.js, Vue.js","Visivi",1782668022386]