PageSourceSearch

https://www.kmpship.app/_next/static/chunks/8623.4fe80bc5a6147cda.js

js kmpship.app collected 2026-10-02 06:54:51 UTC 9,160 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8623],{22521:(e,t,i)=>{i.d(t,{A:()=>n,D:()=>s});var a=i(95704);let n={isWaitlistEnabled:!1,appName:"KMPShip",appDescription:"Create iOS & Android apps in days with Kotlin Multiplatform. Production-ready foundation with auth, payments, notifications & CI/CD built in.",domainName:"www.kmpship.app",datafastWebsiteId:"dfid_hRvRhavVFRWRiGrAdKNi5",documentationUrl:"https://docs.kmpship.app",crisp:{id:"",onlyShowOnRoutes:["/"]},stripe:{plans:[{priceId:"price_1TExILACFYe4Ll5qDTRcYF5y",name:"Starter",description:"Get started with a solid KMP foundation",timeSaved:"~75h",prices:{EUR:99,USD:109,GBP:89},priceAnchors:{EUR:179,USD:199,GBP:159},features:[{name:"Basic project setup (KMP + CMP)",enabled:!0},{name:"Screen navigation & Dependency Injection",enabled:!0},{name:"Onboarding & Settings flows",enabled:!0},{name:"Notifications (local & push)",enabled:!0},{name:"Design System & Image Fetching",enabled:!0},{name:"HTTP Requests & API Calls",enabled:!0},{name:"Lite Clean Architecture",enabled:!0},{name:"CI/CD pipeline",enabled:!0},{name:"Discord community access",enabled:!1},{name:"Lifetime updates",enabled:!1}],github:{teamId:a.env.GITHUB_STARTER_TEAM_ID,repoName:a.env.GITHUB_STARTER_REPO_NAME||"kmpship-starter"}},{priceId:"price_1TExHOACFYe4Ll5qQDX3uPOF",isFeatured:!0,name:"All-in",description:"Build a real business with full infrastructure",timeSaved:"~122h",prices:{EUR:349,USD:399,GBP:299},priceAnchors:{EUR:499,USD:549,GBP:449},features:[{name:"Everything in Starter, plus:",enabled:!0,isInheritLine:!0},{name:"Authentication (Google, Apple, Email)",enabled:!0},{name:"Payments (In-app purchases & subscriptions)",enabled:!0},{name:"Local Database & Remote Config",enabled:!0},{name:"In-App Reviews & Analytics",enabled:!0},{name:"Full Clean Architecture & Unit Tests",enabled:!0},{name:"Discord community access",enabled:!0},{name:"Lifetime updates",enabled:!0}],github:{teamId:a.env.GITHUB_ALLIN_TEAM_ID,repoName:a.env.GITHUB_ALLIN_REPO_NAME||"kmpship-allin"}}]},aws:{bucket:"bucket-name",bucketUrl:"https://bucket-name.s3.amazonaws.com/",cdn:"https://cdn-id.cloudfront.net/"},resend:{fromNoReply:"KMPShip <[email protected]>",fromAdmin:"Vivien at KMPShip <[email protected]>",supportEmail:"[email protected]",developerEmail:"[email protected]"},colors:{main:"#8b52edff"},auth:{loginUrl:"/api/auth/signin",callbackUrl:"/dashboard",magicLinkExpirationMs:864e5},usersInfo:{developersCount:127,discountTotalSpots:150,waitlistCount:18},discount:{endDate:"2025-10-15 08:59:59"},affiliates:{commissionRate:.5,cookieDurationDays:60}},s={starter:["price_1RR6k9ACFYe4Ll5qBLbE6J68","price_1RhCYRACFYe4Ll5qKvBHzups","price_1SGRmoACFYe4Ll5qbEDgMkLa","price_1SKdNSACFYe4Ll5q35P100x4","price_1SKfc9ACFYe4Ll5qXkBNGWHh","price_1SZSIyACFYe4Ll5q8QfahOVW","price_1SZTq0ACFYe4Ll5qGJHTyIXS","price_1SeNsNACFYe4Ll5q6kXs8AUL","price_1TExK3ACFYe4Ll5qafptExdR","price_1RR6x1ACFYe4Ll5qC8HhHfop","price_1RhCYvACFYe4Ll5qt8lcVd1B","price_1SGRiXACFYe4Ll5qvPjz3xtl","price_1SIOjVACFYe4Ll5qA3h6cjHM","price_1SKdOKACFYe4Ll5qlAa4z4KS","price_1SKfh2ACFYe4Ll5qUjRjyAf0","price_1SZSI9ACFYe4Ll5qAS5RXncM","price_1SZTgCACFYe4Ll5q7RamsOc4","price_1SeNwRACFYe4Ll5qusFwInFL","price_1TExILACFYe4Ll5qDTRcYF5y"],allin:["price_1RR6kOACFYe4Ll5qBDqv7AuL","price_1RhCXnACFYe4Ll5qfLHCDW6C","price_1SGRlmACFYe4Ll5qlqBrAIkC","price_1SKdMjACFYe4Ll5q8YnGLNa5","price_1SKfbgACFYe4Ll5qjBAnEgqw","price_1SZS7VACFYe4Ll5qYM6I4c9w","price_1SZTp6ACFYe4Ll5qgdG3jkuv","price_1SeNtbACFYe4Ll5qDDHQ7D1C","price_1TExJEACFYe4Ll5q8QVEoz6u","price_1RR6xDACFYe4Ll5qrJuN718x","price_1RhCWoACFYe4Ll5qF3HMv2u4","price_1SGRfhACFYe4Ll5qz2L9F5Eg","price_1SKdNuACFYe4Ll5qx8oY1pgR","price_1SKfgNACFYe4Ll5qEzcaA709","price_1SZTeYACFYe4Ll5q7yXpsocI","price_1SZSHSACFYe4Ll5qXC1V7a9A","price_1SeNxaACFYe4Ll5qU014bNyw","price_1TExHOACFYe4Ll5qQDX3uPOF"]}},41895:(e,t,i)=>{i.r(t),i.d(t,{default:()=>a});let a={src:"/_next/static/media/vivien.1bb895b3.png",height:768,width:768,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAZlBMVEVMaXHGqjD8z0Lyxz/5zTrpwEDJn2Dtw0GVcmGGa0b/5j3Ur0VzWzDTqGSFcj+7lzpCMCxbQkT/2T9WTSDRqzuAZyuKY1ypfXLJm4B4WVP6zVLbs0nht1vPoZPmvVhqTUOwlFvrv1lSbCpmAAAAFnRSTlMALbCwMOv59P39LfX8+bS0+f4wtLT3rORQEAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAEVJREFUeJwFwQUCgDAMBLCbdoZDZ+j/P0kChP1IUwC0SUv1RkP2OV+uS1CsnMtJoM9xLjdBNfvw0BTW6Nm9RgNi83YU+AGALA
1N+OD61cQAAAABJRU5ErkJggg==",blurWidth:8,blurHeight:8}},81004:(e,t,i)=>{i.r(t),i.d(t,{articles:()=>h,authorSlugs:()=>c,authors:()=>p,categories:()=>r,categorySlugs:()=>l,styles:()=>d});var a=i(95155),n=i(41895),s=i(22521);let l={feature:"feature",tutorial:"tutorial",news:"news",guide:"guide",analysis:"analysis"},r=[{slug:l.feature,title:"New Features",titleShort:"Features",description:"Here are the latest features added to ".concat(s.A.appName,". I'm constantly improving the product to help you launch faster."),descriptionShort:"Latest features added to ".concat(s.A.appName,"."),color:"#6366F1"},{slug:l.tutorial,title:"How Tos & Tutorials",titleShort:"Tutorials",description:"Learn how to use ".concat(s.A.appName," with these step-by-step tutorials. I'll show you how to build faster and save time."),descriptionShort:"Learn how to use ".concat(s.A.appName," with these step-by-step tutorials."),color:"#0EA5E9"},{slug:l.news,title:"Industry News",titleShort:"News",description:"Stay updated with the latest news and announcements in Kotlin Multiplatform development. Breaking news, updates, and insights from the KMP ecosystem.",descriptionShort:"Latest news in Kotlin Multiplatform development.",color:"#F59E0B"},{slug:l.guide,title:"Strategy & Business Guides",titleShort:"Guides",description:"Comprehensive guides to help you succeed with ".concat(s.A.appName,". Learn business strategies, monetization techniques, and best practices for launching successful mobile apps."),descriptionShort:"Business strategies and comprehensive guides for ".concat(s.A.appName,"."),color:"#10B981"},{slug:l.analysis,title:"Technology Analysis & Insights",titleShort:"Analysis",description:"In-depth analysis of mobile development technologies, framework comparisons, and data-driven insights to help you make informed decisions for your projects.",descriptionShort:"Technology analysis and framework comparisons.",color:"#8B5CF6"}],o={twitter:{name:"Twitter",svg:(0,a.jsx)("svg",{version:"1.1",id:"svg5",x:"0px",y:"0px",viewBox:"0 0 1668.56 1221.19",className:"w-9 h-9",children:(0,a.jsx)("g",{id:"layer1",transform:"translate(52.390088,-25.058597)",children:(0,a.jsx)("path",{id:"path1009",d:"M283.94,167.31l386.39,516.64L281.5,1104h87.51l340.42-367.76L984.48,1104h297.8L874.15,558.3l361.92-390.99   h-87.51l-313.51,338.7l-253.31-338.7H283.94z M412.63,231.77h136.81l604.13,807.76h-136.81L412.63,231.77z"})})})},linkedin:{name:"LinkedIn",svg:(0,a.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-6 h-6",viewBox:"0 0 24 24",children:(0,a.jsx)("path",{d:"M4.98 3.5c0 1.381-1.11 2.5-2.48 2.5s-2.48-1.119-2.48-2.5c0-1.38 1.11-2.5 2.48-2.5s2.48 1.12 2.48 2.5zm.02 4.5h-5v16h5v-16zm7.982 0h-4.968v16h4.969v-8.399c0-4.67 6.029-5.052 6.029 0v8.399h4.988v-10.131c0-7.88-8.922-7.593-11.018-3.714v-2.155z"})})},github:{name:"GitHub",svg:(0,a.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-6 h-6",viewBox:"0 0 24 24",children:(0,a.jsx)("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"})})}},c={vivien:"vivien"},p=[{slug:c.vivien,name:"Vivien Mah\xe9",job:"Creator of KMPShip",description:"Vivien Mah\xe9 is a senior mobile engineer and indie maker with over 15 years of experience building Android and cross-platform apps. He created KMPShip, the #1 Kotlin Multiplatform starter kit to build and launch production-ready apps for Android and iOS.",avatar:n.default,socials:[{name:o.twitter.name,icon:o.twitter.svg,url:"https://twitter.com/VivienMahe"},{name:o.linkedin.name,icon:o.linkedin.svg,url:"https://www.linkedin.com/in/vivienmahe"},{name:o.github.name,icon:o.github.svg,url:"https://github.com/Tweener"}]}],d={h2:"text-2xl lg:text-4xl font-bold tracking-tight mb-4 text-base-content",h3:"text-xl lg:text-2xl font-bold tracking-tight mb-2 text-base-content",p:"text-base-content/90 leading-relaxed",ul:"list-inside list-disc text-base-content/90 leading-relaxed",li:"list-item",code:"text-sm font-mono bg-neutral text-neutral-content p-6 rounded-box my-4 overflow-x-scroll select-all",codeInline:"text-sm font-mono bg-base-300 px-1 py-0.5 rounded-box select-all"},h=[]}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.