
Product Manager at Meta, previously PM at Wix
Zevi Arnovitz is a Meta PM, formerly at Wix, who ships real products with Cursor and Claude Code without writing code himself. The lesson most worth taking is to run AI through a fixed pipeline of reusable commands, review its work with rival models, and fix the cause of every mistake.
If I see something that happens over and over again, I'll just create a /command and then it will be automated within the workflow.
How a Meta PM ships products without ever writing code | Zevi Arnovitz
Arnovitz is a Meta PM who ships products without writing code. He was a PM at Wix before Meta and has no technical background; he did music in high school. Engineers at Meta ask him to teach what he does.
Tal Raviv calls him the most hands-on vibe coding PM he knows.
A video of AI-built apps sent him straight to his computer. He saw it in Japan around when Sonnet 3.5 came out, and opened Bolt the moment he got home, before unpacking. He has been building for a year since.
Watching a Bolt or Lovable demo made a non-coder feel he had superpowers.
He left each tool behind once he outgrew it. Bolt worked until he tried to connect payments. He then moved to Cursor and fell in love with Claude Code, which runs inside it.
Code is just files on a computer, so one project can move between apps and models.
In high school he cut out the middleman on a clothing business. He built a thermal clothing business by negotiating straight with the importer, cutting the price to $12.50 a piece and making 100% profit.
He also wrote a basketball chant with his phone number, which still earns him the name Thermal Zevi.
He forces exploration and planning before the AI writes any code. Bolt and Lovable start writing code at once, which caused gnarly bugs when he added payments or database changes. He now has the AI read the codebase and ask about scope, data model, UX and grading before a plan exists.
Normally he spends a lot of time in exploration, which he says separates serious building from vibe coding.
Every repeated step becomes a reusable /command. His chain is create issue, explore, create plan, execute, review, peer review and update docs, saved as prompt files in the codebase. The backbone came from a CTO project prompt he first wrote in ChatGPT.
He built StudyMate's fill-in-the-blank questions live with this chain, and the build step took only minutes.
He captures bugs and ideas by voice without breaking flow. A /create-issue command tells Claude he is mid-build and should be asked only a few brief questions. In the demo, a dictated idea became Linear ticket STU88 with a TLDR, current state, expected outcomes and context, filed via MCP.
This works because he is a company of one with all the context in his head. He would not create tickets this way at work.
He writes the plan as a markdown file with status trackers. The plan holds a TLDR, the critical decisions and broken-down tasks, and Claude updates each task's status as it works.
A file lets him hand frontend work to Gemini and fast tasks to Composer, and saved plans show later what was already done in an area. The template came from a Twitter post by someone he forgot.
With a written plan, Cursor builds a feature in minutes. He tags the plan file and types "execute", using Composer for its speed, then runs the feature locally to ask for changes. He says a human engineer would need days or a week.
In one week he ran three agents in parallel: a Hebrew-to-English StudyMate localization in two days, a personal site live on a domain in 90 minutes, and podcast prep. He doesn't check what credits cost and counts them as tuition.
He wrote a CTO prompt that refuses to please him. The prompt tells the AI it owns the technical side while he owns the problem and the user's feeling. The same rules now live in Claude.md, which loads in every conversation.
Plain ChatGPT agreed that Bun was exactly the same as Zustand, which is wrong, then said it thought he was making it up and riffing. His instruction: "I don't want you to be a people pleaser."
He chose Cursor and Claude Code over Bolt to get control. Bolt, Lovable, Replit, Base44 and v0 run the same underlying models; the difference is the harness around them. Bolt felt opinionated, and he wanted to make the decisions as his knowledge grew.
He doesn't say those tools can't build production apps, and he doesn't know their current state.
He advises newcomers to climb gradually, like exposure therapy. The path runs from a chatbot project to Bolt or Lovable, then Cursor in light mode, and finally a terminal in dark mode. Code looks terrifying to him, so he treats the climb as exposure therapy.
He uses projects to keep each area of life in its own context, because ChatGPT memory mixed up his running, work and studies.
He tests by hand first, then has Claude review its own work. A manual QA pass of the running feature comes before the /review command, because he can't spot code mistakes himself. The command casts Claude as dev lead.
Writing code is now easy and reviewing it is the main challenge. His review process has gone through many iterations.
Rival models review the same branch and Claude argues each finding. Claude, Codex and Cursor's Composer each review the branch. He pastes each review back to Claude as a team lead's findings, and Claude must fix or rebut every one until no issues remain.
In one run Claude's own review found a critical bug in the prompt, some high bugs and some medium ones. Claude sometimes replies that an issue has been raised for the third time and is by design.
He gives each model the job that fits its character. Claude is the communicative, opinionated dev lead, Codex takes the worst bugs, Gemini 3 does UI and design, and Composer handles fast simple builds.
He pictures Codex as the best coder in the company, in a hoodie and sandals in a dark room, who "closes the door for two hours" and returns fixed. Gemini's process looks alarming, but the design comes out beautiful.
He runs a postmortem on every AI mistake. After a failure he asks Claude what in its system prompt or tooling caused it, then updates the docs, commands or tooling so it can't recur. Early on he moved on as soon as something worked.
He calls this one of the biggest productivity hacks and says it separates people who are okay with AI from people who really know how to use it. Even after a success he looks at what could have gone better.
A /learning-opportunity command teaches him what he doesn't understand. It primes Claude that he is a technical PM in the making with mid-level engineering knowledge and asks for an 80/20 explanation. He runs it during exploration and review.
This turns each build into learning rather than outsourced thinking.
His workflow is untested beyond a solo side project. StudyMate is a weekend project with no teammates, and the live build skips the exploration answers, the full review and real testing.
No bug rates, costs or time comparisons are given, so how it holds up in a team codebase is unknown.
He says the PM owns every output, so AI slop is a human error. Colleagues once said he was outsourcing his thinking when he used a PM copilot built from Tal Raviv's course. He answers that a PM's job is to reach the right solution fast, not to have every answer.
He sees the criticism mostly in people who dislike showing work that is 10% done or asking for help. Saying "sorry, that was built by AI" in a product review would be his own mistake.
He gives AI his context and style to avoid generic output. Without guidance AI copies the top results on the internet, like a junior told only to produce a strategy deck. He supplies his writing style and the problem he is solving.
For code he runs a deslop command to clean leftover slop at the end.
He sees AI as a way for juniors to get more reps. At Wix he did not set company marketing strategy or rework onboarding. On his side product he makes all those decisions himself.
He says reps matter most at the start of a career and that AI is like an always-available mentor who never judges.
At big companies he wants the codebase made AI native first. Technical people should add markdown files telling agents how to work in each area and how the code is laid out. PMs should then ship only contained UI work and send the PR to a developer to finish.
Many developers are skeptical, so it takes selling. He says teams that invest the few weeks of setup will be years ahead, and expects everyone to become a builder in the coming years.
His first Wix product review failed because he worked alone. He wanted to blow away four far more experienced PMs, but the format wasn't what they expected and he missed many of their questions. The team told him to come back in two weeks.
He had hidden his thinking while preparing by himself.
He reframed the job as being a 10X learner and used teammates as mentors. He matched each PM to a strength: Neri has the best product sense, Oya thinks in frameworks, and Yahra sees third and fourth order effects. His next review felt like a win for the mentors too.
Neri is still his mentor today. "The expectation of me was being a 10X learner."
He prepped for Meta with an AI coach plus human mock interviews. He built a Claude project as an interview coach and told it not to make him feel good, only to make him ready. He cold-messaged people on LinkedIn for human mocks, which he calls the biggest game changer.
For questions he had no time to mock, Claude played the candidate and gave a model answer. He used the Comet browser agent on Louis Lynn's bank of real questions to find the most-asked ones and mock those first.
He built a small quiz game to practice his weak spot. He struggled with product segmentation, so he built a Base44 quiz web app that made him choose segments, and played it on the bus.
His mottos are "you can just do things" and "nobody knows what they're doing", the second his brother's.
A non-technical PM shows his full workflow for shipping real products in Cursor with Claude Code, built on reusable slash commands, a written plan, and cross-model code review. The payoff is a working, revenue-making side app built without writing code, plus a method engineers at Meta ask him to teach.
Arnovitz is a Meta PM who ships products without writing code. He was a PM at Wix before Meta and has no technical background; he did music in high school. Engineers at Meta ask him to teach what he does.
Tal Raviv calls him the most hands-on vibe coding PM he knows.
A video of AI-built apps sent him straight to his computer. He saw it in Japan around when Sonnet 3.5 came out, and opened Bolt the moment he got home, before unpacking. He has been building for a year since.
Watching a Bolt or Lovable demo made a non-coder feel he had superpowers.
He left each tool behind once he outgrew it. Bolt worked until he tried to connect payments. He then moved to Cursor and fell in love with Claude Code, which runs inside it.
Code is just files on a computer, so one project can move between apps and models.
In high school he cut out the middleman on a clothing business. He built a thermal clothing business by negotiating straight with the importer, cutting the price to $12.50 a piece and making 100% profit.
He also wrote a basketball chant with his phone number, which still earns him the name Thermal Zevi.
He forces exploration and planning before the AI writes any code. Bolt and Lovable start writing code at once, which caused gnarly bugs when he added payments or database changes. He now has the AI read the codebase and ask about scope, data model, UX and grading before a plan exists.
Normally he spends a lot of time in exploration, which he says separates serious building from vibe coding.
Every repeated step becomes a reusable /command. His chain is create issue, explore, create plan, execute, review, peer review and update docs, saved as prompt files in the codebase. The backbone came from a CTO project prompt he first wrote in ChatGPT.
He built StudyMate's fill-in-the-blank questions live with this chain, and the build step took only minutes.
He captures bugs and ideas by voice without breaking flow. A /create-issue command tells Claude he is mid-build and should be asked only a few brief questions. In the demo, a dictated idea became Linear ticket STU88 with a TLDR, current state, expected outcomes and context, filed via MCP.
This works because he is a company of one with all the context in his head. He would not create tickets this way at work.
He writes the plan as a markdown file with status trackers. The plan holds a TLDR, the critical decisions and broken-down tasks, and Claude updates each task's status as it works.
A file lets him hand frontend work to Gemini and fast tasks to Composer, and saved plans show later what was already done in an area. The template came from a Twitter post by someone he forgot.
With a written plan, Cursor builds a feature in minutes. He tags the plan file and types "execute", using Composer for its speed, then runs the feature locally to ask for changes. He says a human engineer would need days or a week.
In one week he ran three agents in parallel: a Hebrew-to-English StudyMate localization in two days, a personal site live on a domain in 90 minutes, and podcast prep. He doesn't check what credits cost and counts them as tuition.
He wrote a CTO prompt that refuses to please him. The prompt tells the AI it owns the technical side while he owns the problem and the user's feeling. The same rules now live in Claude.md, which loads in every conversation.
Plain ChatGPT agreed that Bun was exactly the same as Zustand, which is wrong, then said it thought he was making it up and riffing. His instruction: "I don't want you to be a people pleaser."
He chose Cursor and Claude Code over Bolt to get control. Bolt, Lovable, Replit, Base44 and v0 run the same underlying models; the difference is the harness around them. Bolt felt opinionated, and he wanted to make the decisions as his knowledge grew.
He doesn't say those tools can't build production apps, and he doesn't know their current state.
He advises newcomers to climb gradually, like exposure therapy. The path runs from a chatbot project to Bolt or Lovable, then Cursor in light mode, and finally a terminal in dark mode. Code looks terrifying to him, so he treats the climb as exposure therapy.
He uses projects to keep each area of life in its own context, because ChatGPT memory mixed up his running, work and studies.
He tests by hand first, then has Claude review its own work. A manual QA pass of the running feature comes before the /review command, because he can't spot code mistakes himself. The command casts Claude as dev lead.
Writing code is now easy and reviewing it is the main challenge. His review process has gone through many iterations.
Rival models review the same branch and Claude argues each finding. Claude, Codex and Cursor's Composer each review the branch. He pastes each review back to Claude as a team lead's findings, and Claude must fix or rebut every one until no issues remain.
In one run Claude's own review found a critical bug in the prompt, some high bugs and some medium ones. Claude sometimes replies that an issue has been raised for the third time and is by design.
He gives each model the job that fits its character. Claude is the communicative, opinionated dev lead, Codex takes the worst bugs, Gemini 3 does UI and design, and Composer handles fast simple builds.
He pictures Codex as the best coder in the company, in a hoodie and sandals in a dark room, who "closes the door for two hours" and returns fixed. Gemini's process looks alarming, but the design comes out beautiful.
He runs a postmortem on every AI mistake. After a failure he asks Claude what in its system prompt or tooling caused it, then updates the docs, commands or tooling so it can't recur. Early on he moved on as soon as something worked.
He calls this one of the biggest productivity hacks and says it separates people who are okay with AI from people who really know how to use it. Even after a success he looks at what could have gone better.
A /learning-opportunity command teaches him what he doesn't understand. It primes Claude that he is a technical PM in the making with mid-level engineering knowledge and asks for an 80/20 explanation. He runs it during exploration and review.
This turns each build into learning rather than outsourced thinking.
His workflow is untested beyond a solo side project. StudyMate is a weekend project with no teammates, and the live build skips the exploration answers, the full review and real testing.
No bug rates, costs or time comparisons are given, so how it holds up in a team codebase is unknown.
He says the PM owns every output, so AI slop is a human error. Colleagues once said he was outsourcing his thinking when he used a PM copilot built from Tal Raviv's course. He answers that a PM's job is to reach the right solution fast, not to have every answer.
He sees the criticism mostly in people who dislike showing work that is 10% done or asking for help. Saying "sorry, that was built by AI" in a product review would be his own mistake.
He gives AI his context and style to avoid generic output. Without guidance AI copies the top results on the internet, like a junior told only to produce a strategy deck. He supplies his writing style and the problem he is solving.
For code he runs a deslop command to clean leftover slop at the end.
He sees AI as a way for juniors to get more reps. At Wix he did not set company marketing strategy or rework onboarding. On his side product he makes all those decisions himself.
He says reps matter most at the start of a career and that AI is like an always-available mentor who never judges.
At big companies he wants the codebase made AI native first. Technical people should add markdown files telling agents how to work in each area and how the code is laid out. PMs should then ship only contained UI work and send the PR to a developer to finish.
Many developers are skeptical, so it takes selling. He says teams that invest the few weeks of setup will be years ahead, and expects everyone to become a builder in the coming years.
His first Wix product review failed because he worked alone. He wanted to blow away four far more experienced PMs, but the format wasn't what they expected and he missed many of their questions. The team told him to come back in two weeks.
He had hidden his thinking while preparing by himself.
He reframed the job as being a 10X learner and used teammates as mentors. He matched each PM to a strength: Neri has the best product sense, Oya thinks in frameworks, and Yahra sees third and fourth order effects. His next review felt like a win for the mentors too.
Neri is still his mentor today. "The expectation of me was being a 10X learner."
He prepped for Meta with an AI coach plus human mock interviews. He built a Claude project as an interview coach and told it not to make him feel good, only to make him ready. He cold-messaged people on LinkedIn for human mocks, which he calls the biggest game changer.
For questions he had no time to mock, Claude played the candidate and gave a model answer. He used the Comet browser agent on Louis Lynn's bank of real questions to find the most-asked ones and mock those first.
He built a small quiz game to practice his weak spot. He struggled with product segmentation, so he built a Base44 quiz web app that made him choose segments, and played it on the bus.
His mottos are "you can just do things" and "nobody knows what they're doing", the second his brother's.