How I Cloned a $1M App in 20 Minutes with Claude Code
Kristoffer · April 1, 2026 · 14 min read
Pallyy makes over $1 Million a year. It's a really complex app that uses a lot of APIs to manage social media accounts. To build such an app, it takes tens of people and thousands of dollars.
But what if I told you that I managed to clone this exact app in under 20 minutes — without writing a single line of code?
Instead of telling you, let me just show you how.
Why Pallyy Is Hard to Build
Making an app like Pallyy isn't easy. It has many advanced features like:
- Multi-platform scheduling
- Deep analytics
- Link-in-bio pages
- Real-time team collaboration
And a lot more. Building all those things alone would normally take months of hard work. But I have a simple 5 step plan that makes the process of building such complex apps extremely simple.
By the end of this guide, you will learn exactly how to clone a complex app like Pallyy in under 30 minutes.
Step 1: Finding a Million Dollar App Idea
I don't want you to only learn how to clone one app — I want you to leave this guide having mastered the art of building mobile apps using AI, so you can also launch a viral app of your own.
The most important thing to build a successful mobile app is making sure it's a million dollar app idea. Because we're not just building apps for fun — we're building apps to make a lot of money from them.
To make sure your idea has the potential to go viral, it must follow these 3 requirements:
- It must solve a common and emotional problem
- Its core value can be explained in 3 words or less
- It should be naturally shareable
One of the best ways to find such viral app ideas is through indiehackers.com, a forum that shows behind the scenes of apps that are going viral right now. The best part is that these apps are usually built by only one person — so all you have to do to beat them is make a slightly better app.
After digging for a few minutes, I managed to find a post about how a single person managed to build an almost $1M ARR business. Further digging into the founder's social media showed that the app has an extremely low churn rate. This app is clearly a hit.
Step 2: Claude Code Setup
Now we can get onto the fun part — actually building the app.
I'm using Claude Code with the Opus 4.6 model because it's the best in the market and can understand vague context very precisely, so I don't need to put in a lot of work to correct minor mistakes.
Open Claude Code in a blank folder and type in this prompt:
You are a senior full-stack engineer. We are building a web application that clones the core functionality of a social media scheduling and management platform. The tech stack is React with TypeScript on the frontend, and InsForge as the backend for database, storage, real-time features, and job scheduling. Before writing any feature code, set up the complete project foundation: initialize a React TypeScript project, configure the folder structure cleanly with separate directories for components, pages, hooks, and services, set up React Router for navigation between a landing page, authentication screens, an onboarding flow, and the main dashboard, and install all necessary dependencies. Do not build any features yet. Just give me a clean, production-ready foundation to build on top of.
After a few minutes, Claude Code creates a clean, properly structured React TypeScript project with routing configured, folder architecture in place, and every dependency installed.
This is exactly why starting with the architecture prompt matters so much. When you give Claude Code a clear structural brief before asking it to build features, it maintains consistency across everything it makes afterward.
Step 3: InsForge Backend Setup
To begin, head over to the InsForge.dev dashboard, go into your organization and create a new project. Once the project is created, click on the Connect button, go to the API Keys section and copy only the Project URL and Anon Key.
[!WARNING] Do not paste the API Key directly in your project — it's sensitive information and you don't want it leaked to your users.
Paste the keys into your .env file. Then do the CLI connection so that Claude Code can make changes to the backend directly without you doing it manually.
Copy the CLI command and let it run. During the process, it will open a browser page to authorize InsForge linking with Claude Code — just click Authorize and you'll see that InsForge has connected successfully.
Finally, run npm run dev in a normal terminal so you can test the webapp locally before deploying.
Step 4: Authentication and Onboarding
The first thing we'll build are two essential features of every app — authentication and onboarding.
Simply ask Claude Code to build those features using InsForge as the backend. This is why it's critical to set up the backend before building even the most basic features — everything relies on it.
After a few minutes, everything is set up:
- A registration page with Google, GitHub, and email options
- Email verification with OTP
- A minimal yet effective onboarding flow that only collects crucial information
The dashboard is ready and waiting for features.
Step 5: Media Library
The first feature we're building is the Media Library. Pallyy is built entirely around content — images, videos, graphics — and the media library is where all of that content lives before it gets scheduled and published. It's the backbone of the entire app.
Here's the prompt:
Build a Media Library page for our Pallyy clone. It should display all uploaded media assets in a responsive grid layout — images and videos both. Include an upload button that opens a file picker allowing multiple file selection. When files are selected, upload them to the InsForge media-library storage bucket, save the metadata including file name, file type, file size, and storage URL to the media table in our database, and display the uploaded assets in the grid immediately after upload completes without requiring a page refresh. Include a loading state during upload and an error state if something goes wrong. Each asset in the grid should show a thumbnail for images and a video preview thumbnail for video files.
The result: a fully working Media Library section. Upload a photo — it appears in the grid within a second. No page refresh. No manual reload. Click on an image and it opens a control panel on the right side — which Claude Code added by itself because Opus 4.6 understands context without being explicitly told.
Step 6: Visual Scheduler
This is the feature that the entire product exists to deliver. Everything we've built up to this point has been infrastructure. The visual scheduler is the product.
What we need specifically:
- A calendar view showing the full week or month at a glance
- Each day acts as a drop target for media assets
- Drag and drop from the media library onto specific dates and time slots
- A post composition modal for captions and social media account selection
- Scheduled posts saved as confirmed jobs in the InsForge queue
- Preview cards displayed on the calendar at the correct time slot
Here's the prompt:
Build a Visual Scheduler component for our Pallyy clone. It should display a weekly calendar view with time slots for each day. On the left side, show the Media Library panel displaying the user's uploaded assets as a scrollable grid. Implement drag and drop so the user can drag any asset from the media library panel and drop it onto any time slot on the calendar. When a drop occurs, open a post composition modal that pre-populates with the dragged asset, allows the user to write a caption, select a connected social media account from their saved accounts, confirm the scheduled time, and save the post. On save, insert the post record into the InsForge posts table and create a scheduled job in the InsForge job queue with the exact execution time. Display the scheduled post as a preview card on the calendar at the correct time slot. Use the react-beautiful-dnd library for the drag and drop implementation.
The drag feels smooth, there's no lag, and the image follows the cursor cleanly across the screen. The schedule post panel opens immediately with the image already loaded.
Quick Fix: Text-Only Posts
One thing I noticed — clicking on the calendar without dragging an image wouldn't let you schedule a post. But platforms like Twitter/X and LinkedIn are mostly text-based, so we need to support that.
A simple follow-up prompt to Claude Code: allow users to click on the calendar without dragging media to schedule a text-only post. Done in seconds.
Step 7: Real-Time Collaboration
Right now we have a solid single-user product. But Pallyy generates most of its revenue from agency plans — tiers where teams of 5, 10, 15 people work inside the same workspace simultaneously. That's where the real money is.
The feature that unlocks team plans is real-time collaboration — multiple people in the same content calendar at the same time, seeing each other's changes as they happen.
With InsForge, the entire WebSocket infrastructure is already built and managed. We just subscribe to database table changes and InsForge handles everything.
Setup
- Open the InsForge dashboard and navigate to the posts table
- In table settings, toggle on the Realtime option
- That single toggle enables change broadcasting for every insert, update, and delete
Then prompt Claude Code:
Create a workspace feature. Per workspace, add real-time collaboration to our Visual Scheduler and Media Library. Use the InsForge real-time client to subscribe to all changes on the posts table, like inserts, updates, and deletes. When a new post is inserted by any user in the same workspace, add its preview card to the calendar immediately without a page refresh. When a post is updated — for example if someone changes the scheduled time by dragging the card to a different slot — update the card's position on the calendar in real time. When a post is deleted, remove the card immediately. Also add a presence indicator in the top navigation bar that shows small avatar icons for each team member currently viewing the calendar, updating live as people join or leave. Since you're also creating the workspace feature, add an option to create, join and manage a workspace.
The result: a Workspace section on the left side. Open the app in two browser windows side by side — create a post in one, and it appears in the other window in real time. No WebSocket code written. No server set up. InsForge handled everything.
Step 8: UI Polish with Mobbin
The core features are built. Now let's make or break the app with UI design.
Pallyy has a genuinely good design — clean visual hierarchy, logical sidebar, intuitive calendar view, professional color palette. We need to match that standard without spending days in Figma.
The tool for this is Mobbin — a curated library of real UI screenshots from top-performing applications. The process:
- Open Mobbin and search for social media management and dashboard applications
- Find a design that works well for your app
- Take a screenshot
- Paste the image into any AI chatbot (like Opus 4.6) and ask it to extract the UI components, style, and design into a prompt for Claude Code
- Paste the generated prompt into Claude Code
The before and after is dramatic. The app looks significantly more premium and ready to launch.
The deeper principle: we didn't design anything. We referenced what already works, extracted the visual logic, and let Claude Code translate it. This is the most efficient path to professional-quality design.
Step 9: Deployment with Vercel
Time to put the app on the internet. First, run a production readiness audit:
Review our entire application for production readiness. Check that all environment variables are properly referenced through the environment configuration and never hardcoded anywhere in the codebase. Ensure all API calls have proper error handling with meaningful error states displayed to the user rather than silent failures or raw error objects. Add loading states to every async operation so users always have feedback that something is happening. Check that the InsForge real-time subscriptions clean up properly when components unmount to prevent memory leaks. Add a basic rate limiter to the authentication endpoints to prevent brute force attempts. Generate a production build and confirm it compiles without errors or warnings.
Then deploy to Vercel:
- Go to vercel.com and click Add New Project
- Connect your GitHub repository
- Vercel auto-detects React and pre-configures build settings
- Add your environment variables from the
.envfile - Click Deploy
Your app is officially live.
[!TIP] Buy a custom domain when publishing your app to the public. Make sure your app reaches at least MVP stage before publishing.
Marketing Playbook: Getting Users and Revenue
Building the app was preparation. Now it's time to build a growth engine — not generic advice, but a strategy engineered around Pallyy's actual market, weaknesses, and the type of user who would switch.
Understanding Pallyy's Distribution
Pallyy's primary acquisition channel is SEO — active blog, extensive documentation, strong domain authority. They also have a generous free tier as a top-of-funnel mechanism. Users discover through search, sign up free, and convert to paid when they hit limits.
But there are clear gaps: almost no video presence. Their YouTube is minimal, no TikTok strategy, sporadic Twitter engagement. For a fundamentally visual product, the absence of video content is a massive gap.
Channel 1: Social Media Presence
Create company accounts on every major platform — YouTube, Instagram, TikTok, Twitter, and LinkedIn. Use Opus 4.6 to generate high-quality promotional posts. For YouTube, hire an agency for promotional content.
The power move: use your own app to schedule posts across all these platforms. If you use your own product, other people trust it more.
Channel 2: Surgical SEO
Don't compete on broad keywords like "social media scheduler." Target long-tail searches from users evaluating alternatives to Pallyy specifically.
The most consistent complaints about Pallyy across G2, Trustpilot, Reddit, and Indie Hackers fall into three categories:
- The mobile experience is weak
- Analytics depth is limited compared to enterprise tools
- Pricing jump between tiers feels steep for small agencies
Create targeted pages:
- "Best Pallyy Alternative for Teams" — speaks to small agencies needing collaboration without high costs
- "Pallyy vs [Your Product]" — honest comparison emphasizing your strengths
Start SEO content from day one. A page published today is more valuable than an identical page published six months from now. SEO compounds over time.
Channel 3: Reddit
Target these communities: r/socialmedia, r/marketing, r/entrepreneur, r/smallbusiness, and r/juststart. Search for threads mentioning Pallyy, Buffer, Later, or Hootsuite — people asking for alternatives.
Answer honestly, helpfully, and with genuine expertise. Mention your product only when it's genuinely the right answer.
Set up F5Bot (free) to get email notifications when keywords like "Pallyy alternative" or "social media scheduler alternative" appear in new Reddit posts. Response time matters — threads answered within the first hour get significantly more engagement.
Channel 4: Product-Led Content Marketing
Our product produces outputs that are inherently shareable. A beautifully organized content calendar with 30 posts scheduled across multiple platforms looks impressive to anyone managing social media manually.
Build a sharing mechanism into the product. At the end of each month, generate a shareable summary card:
"March Content Calendar: 47 posts scheduled, 12 platforms covered, 23 hours saved."
Design it to look premium, brand it with your logo, and make it one-click shareable to Twitter and LinkedIn. This is the Spotify Wrapped mechanic applied to a B2B tool — users share because it makes them look organized and professional.
All Prompts Used
Here are all the prompts I used in this tutorial, ready for you to copy and adapt for your own project.
Prompt 1: Project Foundation
You are a senior full-stack engineer. We are building a web application that clones the core functionality of Pallyy, a social media scheduling and management platform. The tech stack is React with TypeScript on the frontend, and InsForge as the backend for database, storage, real-time features, and job scheduling. Before writing any feature code, set up the complete project foundation: initialize a React TypeScript project, configure the folder structure cleanly with separate directories for components, pages, hooks, and services, set up React Router for navigation between a landing page, authentication screens, an onboarding flow, and the main dashboard, and install all necessary dependencies. Do not build any features yet. Just give me a clean, production-ready foundation to build on top of.
Prompt 2: Media Library
Build a Media Library page for our Pallyy clone. It should display all uploaded media assets in a responsive grid layout — images and videos both. Include an upload button that opens a file picker allowing multiple file selection. When files are selected, upload them to the InsForge media-library storage bucket, save the metadata including file name, file type, file size, and storage URL to the media table in our database, and display the uploaded assets in the grid immediately after upload completes without requiring a page refresh. Include a loading state during upload and an error state if something goes wrong. Each asset in the grid should show a thumbnail for images and a video preview thumbnail for video files.
Prompt 3: Visual Scheduler
Build a Visual Scheduler component for our Pallyy clone. It should display a weekly calendar view with time slots for each day. On the left side, show the Media Library panel displaying the user's uploaded assets as a scrollable grid. Implement drag and drop so the user can drag any asset from the media library panel and drop it onto any time slot on the calendar. When a drop occurs, open a post composition modal that pre-populates with the dragged asset, allows the user to write a caption, select a connected social media account from their saved accounts, confirm the scheduled time, and save the post. On save, insert the post record into the InsForge posts table and create a scheduled job in the InsForge job queue with the exact execution time. Display the scheduled post as a preview card on the calendar at the correct time slot. Use the react-beautiful-dnd library for the drag and drop implementation.
Prompt 4: Real-Time Collaboration & Workspaces
Create a workspace feature. Per workspace, add real-time collaboration to our Visual Scheduler and Media Library. Use the InsForge real-time client to subscribe to all changes on the posts table, like inserts, updates, and deletes. When a new post is inserted by any user in the same workspace, add its preview card to the calendar immediately without a page refresh. When a post is updated, for example if someone changes the scheduled time by dragging the card to a different slot — update the card's position on the calendar in real time. When a post is deleted, remove the card immediately. Also add a presence indicator in the top navigation bar that shows small avatar icons for each team member currently viewing the calendar, updating live as people join or leave. Since you're also creating the workspace feature, add an option to create, join and manage a workspace (if you're the owner or given permission by the owner).
Prompt 5: Production Readiness Audit
Review our entire application for production readiness. Check that all environment variables are properly referenced through the environment configuration and never hardcoded anywhere in the codebase. Ensure all API calls have proper error handling with meaningful error states displayed to the user rather than silent failures or raw error objects. Add loading states to every async operation so users always have feedback that something is happening. Check that the InsForge real-time subscriptions clean up properly when components unmount to prevent memory leaks. Add a basic rate limiter to the authentication endpoints to prevent brute force attempts. Generate a production build and confirm it compiles without errors or warnings.
Recap
We cloned an award-winning $1M/year app using Claude Code, Mobbin, and InsForge in just a few minutes. We even built an entire marketing strategy to bring in users and revenue.
Take the framework from this guide, apply it to the idea you've been sitting on, and ship the thing.
Ready to start building?
- Use Claude Code with Opus 4.6 to build your app
- Check out InsForge for your backend
- Browse Mobbin for UI inspiration
Happy building!