Figma to Production Code: How We Turn Designs Into Live React Apps

TL;DR
AI can generate about 70% of a React app from a Figma file. The remaining 30% — state handling, error and empty states, accessibility, and performance — is where production apps are won or lost. This is the six-step Figma to production code workflow we use on client projects, including design tokens and Code Connect.
Figma to Production Code: How We Turn Designs Into Live React Apps
Turning Figma to production code is still one of the most painful steps in building a product. Figma's own research found that 92% of designers and developers agree the handoff needs improvement. That number has barely moved in years, even as the tools got better.
The reason is simple. A design file and a codebase are two different things. A Figma frame describes how something looks at one size. A React app has to handle every size, every state, every error, and every user. Closing that gap is engineering work, not export work.
At Craxinno, we have shipped this handoff across 210+ projects. This post explains exactly how we do it: the preparation that makes designs convertible, the tooling we use, the part AI handles well, and the part that still needs a developer. If you are evaluating how to get your designs into a live app, this is the honest version.
Why most Figma to React conversions fail
Before the process, it helps to know where teams go wrong. Three failures show up again and again.
The design was never built for code. A designer creates a beautiful screen using absolute positioning and one-off colors. It looks perfect at one width. In code, it breaks on mobile, because nothing tells the layout how to flex. The fix belongs in Figma, not in the codebase.
Every value is hard-coded. The design uses 47 slightly different hex values and a dozen padding numbers. The developer copies each one by hand. Six months later the brand changes, and someone has to hunt down every instance. This is the single biggest source of long-term drift.
The export was treated as the finish line. A tool generates a React component that looks right in a screenshot. Nobody checks keyboard access, loading states, or what happens when the API returns nothing. The app looks done and behaves broken.
Our Figma to production code workflow, step by step
Here is the process we run on client work. It is deliberately front-loaded, because the preparation is what makes the rest fast.
Step 1: Audit the design file before writing any code
We open the Figma file and check three things. Is auto layout used on every frame that needs to be responsive? Are components named the way they will exist in code? Are colors, type, and spacing defined as styles and variables rather than one-off values?
If the answer is no, we fix that first. This step feels like a delay. It is the opposite. A file that is properly structured converts in a fraction of the time, and the code that comes out is maintainable.
Step 2: Extract design tokens as the single source of truth
We pull colors, spacing, typography, and radii out of Figma as design tokens, then map them into the codebase as CSS variables or Tailwind theme keys.
This is the highest-leverage step in the entire workflow. Once every value in the code traces back to a named token, a rebrand becomes a single change in one file instead of a search across fifty components. It also removes ambiguity between teams. When a designer says primary-600 with spacing-4, the developer knows exactly what that means. No screenshots, no back-and-forth.
Step 3: Map Figma components to React components one-to-one
A button in Figma with size and variant properties should become a React Button component with size and variant props. Same name, same structure, same options.
We use Figma Dev Mode and Code Connect to make that mapping explicit. The payoff is that the design system and the codebase stop drifting apart. A change in one has an obvious home in the other.
Step 4: Generate the first pass with AI, then engineer the rest
This is where we are direct about what AI does and does not do. Modern tooling, including Figma's MCP server and AI coding assistants, can read component properties, tokens, and auto layout directly from the file and produce a solid first draft. Claude and Claude Code are part of our daily workflow here, and they genuinely compress the tedious part.
But the first pass is roughly 70% of the job. It gets structure and styling close. It does not reliably handle state management, error boundaries, loading and empty states, data fetching, or accessibility. Research cited across the industry found automated accessibility tools catch only about 30% of WCAG issues in generated output. Engineering cleanup is not optional. It is the work.
Step 5: Build the states the design never showed
Every design shows the happy path. Production needs the rest. For each screen we build the loading state, the empty state, the error state, and the partial-data state.
This is the step that separates a demo from a product, and it is the one most conversion tools skip entirely because a Figma file simply does not contain that information.
Step 6: Test responsiveness, accessibility, and performance
We check the app at real breakpoints, not just the two the design showed. We verify keyboard navigation, focus order, colour contrast, and screen reader labels. We measure bundle size and load performance.
Then we ship it, usually on Next.js and Vercel, with the component library documented so the next developer inherits something clean.
The stack we use for Figma to React work
Our production stack is deliberately standard, because standard means maintainable by whoever comes next.
For the design side: Figma with Dev Mode, Code Connect for component mapping, and design tokens exported as the source of truth.
For the code side: React and Next.js with TypeScript, Tailwind for styling driven by those tokens, and a documented component library.
For the AI-assisted layer: Claude and Claude Code for first-pass generation and refactoring, always followed by human review.
There is no exotic lock-in here. If you take the codebase elsewhere, any competent React team can pick it up. That is intentional.
When to use a conversion tool, and when not to
Honest guidance, since this comes up on nearly every project.
Use a one-shot conversion tool when you need a marketing page, a landing page, an internal tool, or a throwaway prototype. Tools like Anima, Locofy, and Visual Copilot get you to a working build quickly, and the output is good enough for something you will not maintain for years.
Do not architect a product on them. For an application you will grow, hire on, and maintain, generated output tends to produce code that works but is unpleasant to extend. The cost shows up later, in every feature that takes longer than it should.
The rule we use: if the code will live longer than six months or be touched by more than two developers, engineer it properly.
What good Figma to code handoff actually delivers
When the workflow above is done well, the outcomes are concrete.
Rebrands take hours instead of weeks, because tokens live in one place. New screens ship faster, because the component library already exists. Visual bugs get rarer, because values are named rather than copied. And designers and developers stop arguing about padding, because they share a vocabulary.
That is the real return on the handoff. Not pixel accuracy on day one, but speed on day ninety.
Work with a team that ships design to production
If you have Figma designs and need them live as a fast, accessible, maintainable React app, the Craxinno team does this work daily. See recent builds in the Craxinno portfolio, view our full capabilities on the services page, or email hello@craxinno.com.
Frequently Asked Questions
Can AI convert Figma designs to production React code?+
AI can generate a strong first pass, typically around 70% of the work. Tools using Figma's MCP server read component properties, design tokens, and auto layout directly from the file. But generated code rarely handles state management, error and empty states, data fetching, or accessibility properly. Automated accessibility tools catch only about 30% of WCAG issues, so engineering review is still required.
What are design tokens, and why do they matter for Figma to code?+
Design tokens are named values for colors, spacing, typography, and radii, shared between the design file and the codebase. They matter because they remove hard-coded values. When every value traces back to a token, a rebrand is one change in one file instead of a search across dozens of components.
How do you prepare a Figma file for code conversion?+
Use auto layout on every frame that needs to be responsive, since absolute positioning converts to fixed pixels and breaks on mobile. Name components the way they will exist in code, so a frame becomes a readable component. Define colors, type, and spacing as styles and variables rather than one-off values.
Should I use a Figma to React conversion tool?+
Use one for marketing pages, landing pages, internal tools, and prototypes, where speed matters more than long-term maintainability. Avoid architecting a real product on generated output. A good rule: if the code will live longer than six months or be touched by more than two developers, engineer it properly.
How long does Figma to production code take?+
It depends mostly on how well the design file is prepared. A well-structured file with auto layout, named components, and defined styles converts far faster than an unstructured one. A single marketing page can ship in days. A full application with a component library, states, and accessibility work typically takes weeks.
Need a site that performs?
Fast, accessible web apps in React and Next.js — built to rank and built to scale.
Start a projectKeep ReadingMore case studies like this
Engineering retros, product launches, and brand systems from our studio — updated monthly.
All case studiesTechnology Used
Tags & Keywords
Continue with Blogs.
View all blogs
AI AgentsAI Agents for Customer Support: Implementation Guide
AI Agents for Customer Support: Implementation Guide Implementing an AI agent for customer support is not about picking a chatbot tool and switching it on. The teams that succeed follow a clear sequence: connect the agent to real data, give it the ability to actually resolve issues, test it hard against messy real conversations, and roll it out gradually with a human safety net. The teams that fail skip those steps and put an unprepared agent in front of angry customers. This guide walks through how to do it right, step by step. Here is the honest framing before you start. A support agent that only answers questions is a chatbot ; a support agent that resolves issues, looking up an order, processing a refund, updating a record- is a true AI agent, and that is where the real return is. But that power is exactly why implementation has to be careful: an agent that can take actions can also take wrong ones. So this guide is as much about guardrails and gradual rollout as it is about capability. If you are still deciding whether you need an agent at all, or want the business case first, start with our guide on AI agents for customer support use cases . This one assumes you have decided, and shows you how to implement it. The quick answer: the implementation sequence If you want the path in one glance, here are the phases, each detailed below. Scope one workflow first, do not automate everything. Connect the agent to your real data and systems, so it can look things up and act. Write clear instructions and firm boundaries, so it knows exactly what it can and cannot do. Test against messy, real conversations, not scripts. Roll out gradually with human handoff, starting small and expanding as it proves itself. Then monitor and improve continuously, because a support agent is never truly finished. The theme across all of it: start small, prove it, expand. The biggest implementation mistake is going live everywhere at once before the agent has earned it. Step 1: Scope one support workflow to start Do not try to automate all of support at once. Pick one clear, high-volume workflow where success is easy to measure, order status questions, refund requests, password resets, common product questions. Starting narrow does three things. It gets you a win quickly, so you learn what works. It contains the risk, since a narrow agent has fewer ways to go wrong. And it gives you a clean metric, resolution rate on that one workflow, that proves value before you expand. Customer support is the most common first agent project precisely because volume is high and outcomes are measurable, so lean into that: choose the workflow that is both high-volume and low-risk, and make it the beachhead. Step 2: Connect the agent to your data and systems This is what separates a real support agent from a glorified FAQ. An agent that can only talk is not much use; an agent that can look up a specific order and act on it is transformational. Two connections matter most. First, your knowledge, your help docs, policies, and product information, so the agent answers accurately from your real content rather than making things up. This grounding in your own data is what RAG does , and it is essential for support accuracy. Second, your systems, your order database, your CRM, your payment tools, so the agent can take real actions, not just describe them. The quality and cleanliness of these connections largely determines how good your agent is, and the integration layer, not the AI model, is usually where the hard work and the failures live. Step 3: Write clear instructions and firm boundaries An agent that can take actions needs to know exactly which actions it may take, and which it must never take without a human. This is where safety lives. Give it a clear role and goal (resolve the customer's issue completely, escalate when you cannot), the specific rules it must follow (always verify identity before sharing account details), and firm boundaries on its power (never issue a refund over a set amount without human approval; never promise something you cannot verify). Every boundary you leave unstated is a decision you hand to the agent's guesswork, so be thorough. Getting these instructions right is its own skill, and our guide on writing a good prompt for AI agents covers it in depth, but for support specifically, the "never" list matters as much as the "always" list. Step 4: Test against real, messy conversations Support agents fail in production because they were only tested on clean, scripted inputs. Real customers are not clean. They are frustrated, they phrase things oddly, they change topic mid-sentence, they ask about things the agent was not designed for. So test with real, messy conversations before going live. Throw ambiguous questions, angry messages, unusual requests, and edge cases at the agent, and watch where it stumbles. Each stumble reveals a gap, a missing boundary, an unclear instruction, an unhandled situation, that you fix before customers ever see it. This evaluation step is what separates a support agent customers trust from one that embarrasses you the first day, which is why building evaluation in from the start matters so much. Step 5: Roll out gradually, with a human safety net Do not flip a switch and route all customers to the agent on day one. Roll out in stages, and always keep a clear path to a human. A safe rollout looks like this. Start with the agent handling a small share of conversations, or only the one workflow you scoped, while humans handle the rest and watch closely. As it proves itself, expand its share and its scope gradually. Throughout, make human handoff seamless, the agent should escalate cleanly when it is unsure, when a customer asks, or when the situation is beyond its boundaries. An agent that traps frustrated customers with no way to reach a person is worse than no agent at all, so the escape hatch to a human is non-negotiable. Step 6: Monitor and improve continuously Launch is not the finish line. A support agent needs ongoing attention to stay good. Watch the numbers that matter: resolution rate (how often it fully solves the issue), escalation rate (how often it hands off, and why), and customer satisfaction on agent-handled conversations. These tell you where it is working and where it is not. Then feed what you learn back in, when the agent handles something badly, that is a gap to fix in its instructions or its data; when your products or policies change, its knowledge must be updated or it will start giving wrong answers. A well-run support agent gets better over time because someone is actively improving it, not because it was perfect at launch. The mistakes that sink support agent projects A few errors catch most first-time implementations. Avoid these. Going live everywhere at once. The single most common failure. An unproven agent in front of all your customers turns small flaws into a public mess. Start narrow. Only answering, never resolving. If the agent can only talk and not act, you built an expensive FAQ. The value is in resolution, so connect it to your systems. No clean human handoff. Trapping customers with no way to reach a person destroys trust fast. Always build the escape hatch. Weak boundaries. An agent that can act without firm limits will eventually take a costly wrong action. The "never" rules are your protection. Skipping real-world testing. Scripted tests pass; real customers break things. Test against messy reality before launch, not after. Ready to implement a support agent that works? A well-implemented AI support agent resolves real issues around the clock, deflects the repetitive volume that burns out your team, and hands off cleanly when a human is needed. The difference between one that delights customers and one that frustrates them is entirely in the implementation: the data connections, the boundaries, the testing, and the gradual, human-backed rollout. The Craxinno team builds and implements production AI support agents, connected to your real systems, tested against real conversations, and rolled out safely. See recent AI work in the Craxinno portfolio , explore our AI development service , or email sales@craxinno.com .
Headless CMSHeadless CMS vs Traditional CMS: Which to Choose?
Headless CMS vs Traditional CMS: Which to Choose? Headless CMS vs traditional CMS is not really a question of which is better. It is a question of two things: how many places your content needs to appear, and whether you have a developer. Get those two answers, and the right choice is usually obvious. A traditional CMS keeps your content and your website design in one system, which is simple and fast to launch. A headless CMS splits them apart and delivers content through an API, which is more flexible and faster but needs more technical setup. Here is the honest 2026 reality most comparisons skip: most teams do not end up at either pure extreme. They land on a hybrid, a modern front-end on a proven CMS backend, which captures most of the flexibility with less risk. So the real decision is less "headless or traditional" and more "how far along that spectrum does my situation actually need to go." This guide helps you find that answer. We will cover what each one is, how they really differ, where each genuinely wins, and a simple way to choose for your site. The quick answer If you want the decision fast, use this. Choose a traditional CMS (like WordPress) when you publish mainly to one website, your team wants to edit and restyle pages without a developer, and you want a low-cost, fast launch. For most standard websites, this is the practical choice. Choose a headless CMS when your content needs to appear in many places, website, mobile app, other systems, from one source, when you need top loading speed and a smaller security surface, and when you have developers to build and own the front-end. Consider a hybrid when you want much of headless's speed and flexibility without the full build cost or risk, a decoupled front-end on a familiar CMS backend. In 2026, this is where most growing businesses actually land. The honest rule: default to a traditional CMS for a simple single website, and move toward headless only as your channels, performance needs, and engineering capacity genuinely call for it. What each one actually is A quick, clear definition, because the difference drives everything. A traditional CMS bundles everything together. The content, the database, and the website's visual design all live in one connected system. WordPress is the classic example. You write content and it appears on your site through a theme, all in one place. This is sometimes called a "coupled" CMS, because the content and the front-end are joined. A headless CMS separates the content from the front-end. It stores and manages your content, then delivers it through an API to wherever you want, a website built with a framework like Next.js , a mobile app, or another system. It is called "headless" because it has no built-in front-end (no "head"); you build that separately. The content becomes a source that can feed many destinations, not just one website. The plain-English version: a traditional CMS is content and design in one box; a headless CMS is content in one box that can feed many boxes. Everything below follows from that difference. The differences that actually matter Five differences decide most real projects. Here is the honest version of each. Multichannel delivery. This is headless's biggest strength. If your content must appear in many places, a website plus a mobile app plus other systems, headless serves them all from one source. A traditional CMS is built for one website, and pushing its content elsewhere is awkward. If you are single-website, this does not matter; if you are multichannel, it is decisive. Ease of editing. This is traditional's biggest strength. A traditional CMS gives your marketing team a visual, click-to-edit experience, often letting them build and restyle pages without a developer. Headless uses structured content and its editing preview depends on the custom front-end, which can be less immediate. If your team wants to publish without calling engineering, traditional is friendlier. Performance. Headless generally wins. Because the front-end is built separately with modern tools, headless sites can load significantly faster, an advantage for user experience and SEO, though only with the right build. A well-optimized traditional site performs fine, but headless has a higher ceiling. Security. Headless has a smaller attack surface. Because the front-end is separated from the content database, there is no direct public path to your backend, and there are no plugin vulnerabilities exposing your server. Traditional CMSs, with public login screens and many plugins, are a bigger target. For high-security needs, headless is safer by design. Cost and team. Traditional is cheaper and simpler to start; its core is often free, and it needs only a content team plus light development. Headless costs more upfront and needs front-end engineers to build and an owner for the integration, but its long-term maintenance can be lower and it scales more cheaply. Your budget and whether you have developers often decide this. The hybrid middle path Before choosing an extreme, know the option most teams actually pick in 2026. A hybrid approach puts a modern, decoupled front-end on a proven CMS backend, so you keep a familiar, editor-friendly content system while gaining much of headless's speed and flexibility on the front-end. It captures most of the benefit with less cost and less risk than a full headless rebuild, which is exactly why so many growing businesses land here rather than at either pure extreme. The pattern that works for many: start with a traditional CMS for simplicity, then move toward a decoupled or headless front-end when performance, security, or a second channel (like a mobile app) genuinely requires it. You do not have to choose the most complex option on day one, and often you should not. This is the same build-versus-complexity discipline behind choosing a custom build only when a simpler option genuinely falls short . When to choose a traditional CMS A traditional CMS is the right call more often than the headless hype suggests. Choose it when your content lives on one website and does not need to appear across many channels. Choose it when your marketing team needs to create and edit pages themselves, without a developer, using visual tools and templates. Choose it when you want a low upfront cost and a fast launch, since templates and plugins get you live quickly. And choose it when you do not have engineering resources to build and maintain a custom front-end. For a standard business website or blog, a well-run traditional CMS is usually the practical, cost-effective winner. When to choose a headless CMS Headless earns its extra complexity in specific situations. Choose it when the same content must feed multiple channels, a website, a mobile app, other systems, from one source. Choose it when top loading speed and Core Web Vitals matter to your growth, since a headless front-end can be built for speed. Choose it when security is a priority and a smaller public attack surface is worth real value. And choose it when you have developers who can build and own the custom front-end and the integration layer. For content-heavy, multichannel, performance-critical, or fast-growing products, headless pays back its investment. Building that custom front-end well, often on a framework like Next.js, is where the real engineering lives. Ready to choose the right CMS for your site? The headless versus traditional decision comes down to your channels, your team, and your performance needs, not to which architecture is trendier. For a simple single website with a non-technical team, traditional usually wins; for multichannel, high-performance, or fast-growing needs with engineering behind them, headless does; and for many in between, a hybrid captures the best of both. Getting this right early matters, because the wrong choice costs more to reverse than to make the first time correctly. The Craxinno team builds both traditional and headless (and hybrid) sites, and will recommend the right one for your situation honestly, not the most complex option. See recent work in the Craxinno portfolio , explore our web development service , or email sales@craxinno.com .
App Development CostHow Long Does It Take to Build an App? (2026 Timeline Guide)
How Long Does It Take to Build an App? (2026 Timeline Guide) Building an app in 2026 takes about 2 to 4 months for a simple app or MVP, 4 to 7 months for a medium app, and 7 to 12 months or more for a complex or enterprise build. That is the honest range. This guide helps you find your number inside it, and, just as importantly, shows you what actually makes timelines slip. Here is the part most timeline guides skip, and it is the most useful thing to know before you start: apps rarely run late because engineering is slow. They run late because of scope creep and slow decisions. The build itself is fairly predictable; what stretches it is changing your mind mid-project and taking weeks to approve things. Understand that, and you have more control over your timeline than you think. This guide breaks down how long each type of app takes, where the time actually goes phase by phase, what makes projects slip, and how to ship faster without cutting the corners that matter. The quick answer: app timeline by complexity If you want the number fast, here are the honest 2026 ranges. Simple app or MVP: 2 to 4 months. One core feature, basic screens, a login, maybe one integration. A focused team with locked scope can ship a tight MVP in as little as 6 to 10 weeks. Medium app: 4 to 7 months. Several features, multiple user roles, a few integrations, a real backend. A marketplace, a booking platform, a SaaS tool. Complex app: 7 to 12 months. Heavy features, deep integrations, real-time functionality, or AI components. Fintech, healthcare, and multi-role platforms live here, where compliance and integrations are the real timeline drivers. Enterprise app: 12 to 18 months or more. Large-scale systems with many modules, strict security, and compliance. If anyone quotes far less for this, ask what they are cutting. The single biggest factor is complexity, specifically how many features you build and how many systems you connect to. Everything else adjusts around that. Where the time actually goes: the phases An app timeline is not one long coding stretch. It splits across five phases, and knowing them helps you see where time is spent and where it slips. Discovery and planning (2 to 4 weeks). Defining what you are building, who it is for, and what success looks like, plus architecture decisions and wireframes. Rushing this phase is the most common cause of delays later, because unclear requirements turn into rework. Design (2 to 6 weeks). Turning the plan into user flows, screens, and a design system, then getting sign-off. Slow stakeholder approval here is a frequent, avoidable source of delay. Development (roughly half the total timeline). The actual build, frontend, backend, APIs, and integrations. This is the largest chunk, and, notably, the most predictable one when scope is stable. Integrations are usually the part that stretches, especially messy or legacy ones. Testing and QA (2 to 6 weeks). Finding and fixing bugs, testing across devices, and checking performance and security. This phase is often squeezed to save time, and almost always regretted, because a bug caught after launch costs far more than one caught here. Launch and deployment (a few days to 2 weeks). Shipping to the app stores and monitoring the release. Apple's review adds anywhere from a day to about a week; Google Play is usually faster. Notice that development, the part people imagine is the whole project, is only about half the timeline. The other half is what turns code into a real, reliable product. Why apps take longer than people expect The gap between the quoted timeline and the actual one usually comes from a few predictable causes, and none of them is slow coding. Scope creep. This is the number one timeline killer. Features get added mid-build, each one small on its own, and together they quietly push the launch back by months. Every "can we just add" resets part of the schedule. Slow decisions and approvals. When a project waits days or weeks for sign-off on designs, content, or direction, that waiting time is pure delay. A team that responds fast keeps a project moving; a slow one stalls it regardless of how good the developers are. Unclear requirements at the start. Beginning to build before you truly know what you want guarantees rework, because you build the wrong thing, then rebuild it. Time spent getting clear upfront saves far more later. Underestimated integrations. Connecting to other systems, especially old or poorly documented ones, routinely takes longer than expected. If your app depends on several integrations, build extra time in. The honest pattern across all of these: most delay comes from the client side, changing scope, deciding slowly, starting unclear, not from the engineering. Which is good news, because it means much of your timeline is within your control. How AI has changed app timelines in 2026 A genuine shift worth knowing. AI-assisted development has meaningfully compressed timelines for teams that use it well. A modern team building with AI in the loop can move faster through the development phase than benchmarks from even two years ago, because AI accelerates the repetitive parts of coding. But be careful with the extreme claims. No-code and AI app builders can produce a working prototype in hours or days, which is genuinely useful for validating an idea. Getting that prototype to a production-grade product that is secure, reliable, and ready for real users still takes months. The prototype is fast; the production hardening is not. Treat "an app in a day" as a prototype, not a launch-ready product, and you will set realistic expectations. The fastest real timelines come from an experienced team using AI to accelerate a well-scoped build, not from skipping the engineering. How to ship faster (without cutting corners) You can genuinely shorten your timeline, but the right levers are about focus and decisions, not rushing the engineering. Lock your scope before building. The single most effective way to hit your timeline is to decide what you are building and resist adding to it mid-project. Save new ideas for version two. Start with an MVP . Build the core first and launch it, rather than waiting to build everything. This gets you live in 2 to 4 months instead of many, and real users then tell you what to build next. Scoping to an MVP is the biggest timeline lever available. Make decisions fast. Since slow approvals are a top cause of delay, commit to quick turnaround on sign-offs. Your responsiveness directly shortens the timeline. Get requirements clear upfront. Invest in the discovery phase so the team builds the right thing once. This feels like a delay and is the opposite. Choose an experienced team. A senior team that has shipped similar apps hits estimates and avoids the rework that sinks timelines, and good project management keeps scope and decisions on track throughout. The most reliable way to build an app faster is to build a smaller, clearer first version with a team that has done it before, not to pressure engineers to code faster. Ready to build your app on a realistic timeline? How long your app takes comes down to its complexity, how clearly it is scoped, and how fast decisions get made. The ranges here, 2 to 4 months for an MVP, 4 to 7 for a medium app, 7 to 12 for a complex one- are honest starting points, and how much you control scope and decisions determines where you land inside them. The Craxinno team ships apps in bi-weekly increments with production code from week one, so you see real progress on a realistic schedule rather than waiting months to find out. See recent work in the Craxinno portfolio , explore our mobile app development service , or email sales@craxinno.com .



