Skip to content
Iván Chocrón
A guide for complete beginners

Build your own software without knowing how to code

This is the exact setup I use to run my coaching business. Four accounts, three downloads, and one first instruction. If you can fill in a form and click Next, you can do this.

Setup time
About 90 minutes
First month
$200, then it drops
Coding needed
None

What you are actually building

Whatever your business is, the software behind it is only ever three things stacked on top of each other.

A place to keep your information
Customers, bookings, payments, notes. Think of a spreadsheet that lives on the internet instead of on your laptop, so it is safe, it is on your phone, and other people can add to it.
Screens to look at that information
A private area only you can log into, plus public pages other people can see. Both are just web pages.
Things that happen on their own
A reminder email that goes out at 6am. A payment that gets logged the moment it lands. These run whether your computer is on or off.

You will not build any of that by hand. You will describe what you want in plain English, and an AI called Claude Code will build it while you watch. Your job is to know your own business and to say yes or no. That is genuinely the whole skill.

Four things worth knowing before you start
  • Do the steps in order. Each one needs the one before it.
  • Nothing here is permanent. Every account is free to delete and every file can be undone.
  • You cannot break the internet. Nothing you make is visible to anyone until you decide to publish it.
  • When you get stuck, paste the problem to Claude. Copy the red text, paste it, say "this happened, fix it". That is the answer to almost every problem in this guide.
Part 1

Create four accounts

Do these in a web browser, in this order. Only the first one costs money. Set aside about 30 minutes.

Claude

The AI that writes all the code for you. This is the one that matters.

Start at $200, end at $20
Go to claude.com/pricing
  1. Open the link above.
  2. Choose Max 20x, at $200 a month. Yes, really. Read the box below before you flinch.
  3. Sign up with your email address and pay.
  4. Check your email and click the confirmation link they send you.
What I actually recommend, and why

Buy the $200 a month plan for your first month. Building is the expensive part, and the first month is when you build almost everything. On a cheaper plan you will spend that month hitting usage limits and waiting, which is a miserable way to learn and will probably make you quit.

After the first month, drop to $100 a month if you are still building. When the system is built and you are just running it, drop to $20 a month and stay there.

You can change plans whenever you like, so nothing here is a commitment. Spending $200 once to get the thing built beats spending $20 a month for a year on something you never finish.

Do not try to do this on the free plan
The free Claude plan does not include Claude Code, which is the tool this entire guide is built around. Pro at $20 is the floor, and it is the right plan for maintaining a finished system, not for building one.

Supabase

Where all your information will live. This is the spreadsheet-on-the-internet from earlier.

Free to start
Go to supabase.com
  1. Open the link above and sign up. Signing in with GitHub is easiest, but if you do not have GitHub yet, just use your email and come back to it.
  2. Once you are in, click New project.
  3. Give it any name you like. Your business name is fine.
  4. It will generate a database password. Copy it and save it somewhere safe right now.
  5. For Region, pick the one closest to where you live.
  6. Click Create new project and wait about two minutes while it sets itself up.
Save that password before you click away
Supabase shows your database password once and then hides it forever. If you lose it you can reset it later, but it is a nuisance. Put it in your notes app or your password manager now.

You do not need to understand anything on the Supabase screen. You will never have to type into it. Claude talks to it for you.

GitHub

Your undo button and your backup. It quietly keeps a copy of every version of your work.

Free
Go to github.com
  1. Open the link above and click Sign up in the top right corner.
  2. Sign up with your email address.
  3. Pick any username. It does not matter, and nobody will see it.
  4. Confirm your email address when they send you the code.
  5. That is all. Do not create a repository. Claude will do that later.
Why you want this
If you ever say "that was better before, put it back", GitHub is what makes that possible. It is also your protection against your laptop dying. Think of it as an infinite undo that also lives off your computer.

Cloudflare

What puts your pages on the actual internet so other people can open them.

Free
Go to cloudflare.com
  1. Open the link above and click Sign up. Choose the free plan when it offers you a choice.
  2. Create the account with your email address.
  3. Confirm your email address.
  4. Stop there. Do not buy a domain and do not add a website yet. Claude will walk you through it when there is actually something to publish.
About a web address
You do not need to buy a name like yourbusiness.com to get started. Cloudflare gives you a free address that works immediately. Buy a proper name later, once you have something you are proud of. It costs roughly $10 to $15 a year.
Checkpoint
You now have four accounts: Claude, Supabase, GitHub, and Cloudflare. Nothing is installed on your computer yet. That is next.
Part 2

Install three things on your computer

These are downloads. You click Next until they finish. About 20 minutes, most of it waiting.

Claude Code

The app you will actually spend your time in. It reads and writes your project for you.

Download Claude
  1. Open the link above. It should detect whether you are on Windows or Mac automatically.
  2. Download the installer and open the file once it finishes.
  3. Click through the installer. All the default options are correct.
  4. When it opens, sign in with the same Claude account you paid for in step 1.
Which version to get
Get the desktop app, not the terminal version. The desktop app is a normal window with buttons, which is what you want. Terminal versions exist for people who prefer typing commands, and you are not that person yet.

Git for Windows

A helper tool Claude uses behind the scenes. You will never open it yourself.

Download Git for Windows
  1. Open the link above and choose 64-bit Git for Windows Setup. That is the right one for essentially every computer sold in the last decade.
  2. Open the downloaded file.
  3. The installer will ask you roughly ten questions. Click Next on every single one without reading them, then click Install. The defaults are all correct.
  4. When it finishes, untick "View release notes" and click Finish.
On a Mac?
Skip this step. Macs already have what they need. If Claude ever asks you to install developer tools, say yes to whatever box pops up.

Node.js

The engine that turns your project into an actual website. Also invisible to you once installed.

Download Node.js
  1. Open the link above and download the version marked LTS. LTS stands for long term support, which is a technical way of saying "the boring stable one". That is the one you want.
  2. Open the downloaded file.
  3. Click Next through the installer and accept the licence when asked.
  4. Let it finish. It may take a couple of minutes.
Checkpoint
Restart your computer now. This sounds like a joke but it genuinely matters: the three things you just installed only become visible to each other after a restart, and skipping it is the single most common reason a beginner's first session fails.
Part 3

Make a home for your project

One folder. That is the whole step. Two minutes.

Create an empty folder

Everything you build will live inside it, forever.

  1. Open File Explorer on Windows, or Finder on a Mac.
  2. Go to your Documents folder.
  3. Right-click in the empty space and choose New, then Folder.
  4. Name it after your business, with no spaces. For example MyBusiness.
No spaces, no accents, no symbols
MyBusiness is good. My Business! will cause you small annoying problems for months. This is one of the few things that is genuinely hard to change later.
Part 4

Open Claude Code and point it at your folder

This is the moment the setup ends and the building begins.

Start your first session

Claude needs to be told which folder it is allowed to work in.

  1. Open the Claude app from your Start menu, or from Applications on a Mac.
  2. Find the option to open a project or folder, and choose the folder you just made in step 8.
  3. Claude will ask for permission to read and write files in that folder. Say yes. It can only touch that one folder, nothing else on your computer.
  4. You should now see an empty chat box waiting for you.
If it asks about permissions constantly
That is normal at the start, and it is a safety feature. Claude asks before it changes anything. After a few days you will learn which things you are happy to approve automatically, and you can tell it so.
Part 5

Your first instruction

Copy the text below and paste it into the chat box. Do not change anything except the parts in brackets.

This first message does something specific and important: it stops Claude from writing any code until it understands your business. Most beginners get this backwards, ask for a finished app on message one, and end up with something impressive that fits nobody.

Paste this as your very first message
I have never written code before. Please assume I know nothing technical and explain everything in plain English.

I want to build a private system to run my business, and eventually a small public website that connects to it.

My business is: [DESCRIBE YOUR BUSINESS IN ONE SENTENCE]

Right now I keep track of things using: [SPREADSHEETS / MY HEAD / PAPER / WHATEVER IT IS]

I already have accounts with Claude, Supabase, GitHub and Cloudflare, and I have installed Git and Node.js on this computer.

Do NOT write any code yet. Instead, interview me. Ask me one question at a time about how my business actually works and what I need to keep track of. Keep asking until you genuinely understand it.

When you are confident you understand, show me a plain English list of the information we should store, and wait for me to approve it before you build anything.
What should happen next
Claude asks you a question. Answer it honestly and in your own words. It asks another. This may go on for fifteen or twenty questions, and that is exactly right. The quality of this conversation determines the quality of everything you build afterwards, so do not rush it.
Part 6

The one thing Claude cannot do for you

Claude writes every line of code. But it cannot log into your Supabase account and read your keys. You have to fetch those by hand, and this is where most beginners get stuck and give up.

A key is a long password that lets two pieces of software talk to each other. Your website needs one to talk to your database. There are two of them, they look almost identical, and the difference between them matters enormously.

Claude will tell you when it needs these. When it does, here is exactly where to go.

Fetch your two Supabase keys

Four clicks, and then the single most important rule on this page.

Open your Supabase dashboard
  1. Open the link above and click on your project.
  2. Click Settings, the gear icon in the bottom left corner.
  3. Click API Keys.
  4. You will see two keys. One starts with sb_publishable_ and one starts with sb_secret_.
  5. Also click General in that same Settings menu and copy your Project URL. Claude needs that too.
Read this twice. It is the one thing you can genuinely get wrong

The publishable key (sb_publishable_) is safe. It is designed to sit inside a web page where anyone can read it. Seeing it in your own website is normal and correct. Do not panic about it.

The secret key (sb_secret_) is the keys to your house. It bypasses every security rule you will ever set up. Never put it in a web page. Never post it in a screenshot. Never paste it into any chat other than Claude Code itself. If it ever leaks, go straight back to that same Settings page and roll it, which cancels the old one instantly.

Before you paste anything, make Claude set up the protection first. Send it this:

Paste this BEFORE you hand over any key
I am about to give you my Supabase keys.

First, before I paste anything: create the environment file where these belong, and confirm out loud that it is listed in .gitignore so it can never be uploaded to GitHub by accident.

Then tell me which of my two keys you actually need for this, and which one you specifically do NOT want me to paste. Explain the difference in one sentence so I understand what I am handing over.

I will paste it after you have confirmed all of that.
If your keys are named differently
Supabase renamed these. Older projects show anon instead of publishable, and service_role instead of secret. They are the same two things with the same rule: anon is the safe one, service_role is the house keys. If you see those words instead, nothing else changes.

Everything else, which is easier than you fear

GitHub and Cloudflare mostly do not need you to copy anything.

For GitHub and Cloudflare, Claude usually runs a command that pops open your web browser, where you click a single Allow or Authorize button. No copying, no pasting, no keys. If either one does ask you for a token, Claude will tell you the exact page to go to.

A rule that will keep you safe for years
Anything called a key, a token, or a secret goes in one place only: the file Claude made for it, which never leaves your computer. If you are ever about to paste one of those into a website, a document, an email, or a chat with a person, stop and ask Claude first. That single habit prevents essentially every serious accident a beginner can have.
What about Next.js, npm, package.json and all those words?

You will see them. They will scroll past in the chat. You do not need to learn any of them, and you should not go away and study them before starting.

Claude creates those files, installs those tools, and maintains them for you. They are the plumbing of the house, not the house. If you ever want to know what one of them is, ask Claude in the moment: "what is package.json and do I need to care?" That is a far better way to learn it than a tutorial, because you will be looking at your own.

Part 7

The prompt that saves you six months

This is the most valuable thing on this page. Paste it as your second message, right after the interview, before Claude writes a single line of code.

Everything below is something I got wrong and had to go back and fix, often months later, sometimes in a panic. None of it was hard to do correctly the first time. All of it was expensive to retrofit.

To give you a sense of what "expensive to retrofit" means:

Every table holding personal information was readable by anyone who opened my website and looked at the page source. Closing that took months of rework across dozens of database changes.
Sixty-seven internal functions were reachable by the public because that was the default and nobody narrowed it.
My email system would send a real, official-looking email from my own address to any address a stranger typed in. I found that in an audit, not from a complaint.
My real bank account and routing numbers ended up committed to a public code repository. It was caught by a human reading a file by chance.
A rewrite of my email templates silently dropped five sections, and twenty-two people received a half-empty email before anyone noticed.

Not one of those was a hard problem. Every one of them was a default I did not know to change. The prompt below changes all of them on day one.

Paste this after the interview, before any code exists
Before you write any code, we are going to agree the rules this project is built under.

Everything below comes from someone who built a real business system this way and had to go back and fix all of it later, at much greater cost. I want it correct from the first line instead.

Write all of this into CLAUDE.md now, in your own words, and then follow it for the entire life of this project. Tell me if any of it does not apply to what we are building, and explain why.

=== SECURITY: the part I cannot check myself ===

1. Assume the key that sits in my website is public, because it is. Anyone can read it out of the page. Nothing private may ever be reachable with that key. When you tell me something is safe, show me the proof by trying to break in as an outsider would.

2. Turn on row-level security on every table in the same step that creates it, never later. Default position for any table holding personal information: nobody can read it. We then open specific doors on purpose, one at a time.

3. A public page must never read a database table directly. Give it a dedicated function that returns only the exact fields that page needs. Never hand a whole row to a public page.

4. Never let a password, token, phone number, address, private note or internal field reach a public page, even if the page does not display it. If it is in the response, it is public.

5. Grant the narrowest possible access first and widen only when something genuinely breaks. Never grant broadly and promise to narrow later.

6. Every function that runs with elevated privileges gets locked down explicitly at the moment you create it.

7. Put two-factor authentication on my admin login as soon as the login exists, not later.

8. Delete code, functions and endpoints we stopped using. Anything still deployed is still an entrance, even if nothing points at it any more.

=== EMAIL: mistakes here reach real human beings ===

9. Never send an email to a real person while testing, under any circumstance. Set up a test address on day one and make it structurally impossible for a test to reach a real contact.

10. Anything that sends in bulk must have a practice mode that shows me exactly who would receive it. I see that list before anything sends. No exceptions, no "it is probably fine".

11. Anything a stranger types into a form gets neutralised before it appears in an email to me. Assume every form field is hostile.

12. Never let a public endpoint email an address chosen by whoever calls it. The recipient must already exist in my database.

13. Before any bulk import or data change, disable anything that automatically notifies people, then re-enable it afterwards. Say this out loud to me every single time.

=== MY DATA: I cannot undo a bad write ===

14. Never replace a large block of my content in one operation. Make targeted edits to the specific part that changes. If you are about to overwrite something wholesale, stop and show me first.

15. Before anything that changes many rows at once, show me the count and a sample of what will change, and wait for me to say go.

16. Set up automatic backups in the first week. Then make me restore from one on purpose, once, so we both know it actually works.

=== SECRETS ===

17. Set up the ignored-file protection before I paste my first key, not after.

18. Assume this code could become public one day. Never store real customer data, real bank details, real statements or real personal records anywhere in the project, not even as a test example. Use obviously fake data.

19. Add an automatic check that refuses to save my work if it spots something shaped like a real account number, key or password. Never store the real value inside the check itself.

=== STOPPING MISTAKES FROM REPEATING ===

20. When you fix a bug, never fix only the one I noticed. Search the whole project for the same shape of mistake, fix every instance, and tell me how many you found.

21. Every bug we fix gets a permanent automatic test so it cannot come back quietly. An actual check that runs, not a note in a file.

22. When something breaks, find out why. Never switch off a safety check to make an error go away. A check that is firing is doing its job.

=== DO NOT GET ME BANNED OR BILLED ===

23. Saving my work locally (committing) is free and safe. Do it constantly, after anything that works. That is my undo button and there is no downside to using it.

24. Uploading that work to GitHub (pushing) is a completely different action and is NOT free of consequence. Only do it when I explicitly say "push" or "back it up". Never automate it, never put it inside a script that runs on its own, and never more than a few times in a working session. Accounts get suspended for looking like a bot doing this, and it has already happened to me once. Treat every push as deliberate.

25. Publishing to the live website is limited. The free plan allows 500 publishes a month, so batch my changes and publish when a batch is genuinely ready, never once per small edit. If we are burning through them, tell me.

26. Anything that costs money or counts against a limit gets flagged to me BEFORE you do it, not after. That includes publishing, paid AI usage, and any service that bills by the request.

=== HOW I WANT YOU TO WORK WITH ME ===

27. I am not technical. Before you do something, tell me in plain words what you are about to do, why, and what could go wrong.

28. If I ask for something that will cause problems later, say so plainly and argue with me. Do not just agree because I asked.

29. If you are unsure, say you are unsure. Never present a guess as a fact.

30. When you finish something, tell me honestly what you did not test and what you are still unsure about.

31. Build the smallest working version first and let me use it before improving it. Never build me six things at once.

Confirm you have written all of this into CLAUDE.md, then tell me which rule you think will be hardest to keep, and why.
Rules 23 to 25, which cost me an account

There are three different actions that all feel like "saving", and a beginner cannot tell them apart. They have very different consequences:

Saving locally (committing) is free and unlimited. Do it constantly. It is your undo button.

Uploading to GitHub (pushing) is not free of consequence. Doing it constantly, or letting something automated do it, looks like bot behaviour. My GitHub account was taken down for exactly this. Push a few times a session at most, and only when you mean to.

Publishing to the live site is capped at 500 a month on the free plan. Plenty, unless something publishes on every edit, which is exactly what an eager assistant will do unless you tell it not to.

Why the last line matters
Asking which rule will be hardest to keep is not a pleasantry. It forces Claude to actually reason about your specific project instead of nodding at a list, and its answer usually tells you something true about what you are building.
You do not need to understand this prompt
You genuinely do not. Paste it. Every line is written so Claude knows what to do with it, and the whole thing goes into your CLAUDE.md file where it keeps working in every future conversation, long after you have forgotten it exists. If you are curious about any single rule, ask Claude why it is there.
Part 8

What to ask for, in order

After the interview, build in this sequence. Each step only makes sense because the one before it exists. Give it days or weeks, not hours.

Below are the six requests, in the order that works. Paste them one at a time, and only move to the next one once the current one actually works.

Step one: the foundation
Set up the Supabase database with the tables we agreed on. Walk me through connecting my Supabase account step by step, and tell me exactly what to click and what to copy. Then put a few rows of fake example data in so I can see it working.
Step two: something you can actually look at
Now build me one private web page that shows that information in a clean table, and lets me add, edit and delete rows. I want to run it on my own computer first, before anything goes on the internet. Tell me exactly how to open it.
Step three: put it on the internet
This works. Now help me put it online with Cloudflare Pages, and put it behind a login so only I can see it. Walk me through every click, and tell me what to do if something fails.
Step four: let other people send you things
Now build a public page where someone who is not me can fill in a form, and have their answers arrive in my database automatically. Make sure nobody can see anyone else's information.
Step five: email
Set up email so my system can send messages automatically. Explain my options first, tell me which one you recommend for someone at my size and why, and then set it up with me.
Step six: things that happen while you sleep
Now set up something that runs on a schedule without me doing anything, even when my computer is off. Start with one simple example, like a reminder email that goes out every morning.
Resist the urge to skip ahead
Every one of these steps is small and boring on its own. That is the point. The reason most people fail at this is that they try to build step six on day one. Build the boring thing, use it for a week, then build the next boring thing. My system has hundreds of pieces now, and every single one was added this way.
Part 9

The one habit that matters more than everything else

If you remember nothing else from this page, remember this part.

Claude is brilliant and it forgets. Every new conversation starts from nothing. So the moment you correct it, that correction has to be written down, or you will be having the same argument in a month.

There is a file for this. It is called CLAUDE.md, it lives in your project folder, and Claude reads it automatically at the start of every single conversation. It is the memory it does not otherwise have.

The prompt in part 7 already created that file and filled it with my hard-won rules. This part is about keeping it alive, which is a habit rather than a one-off. Paste this once, early:

Set this up on your very first day
From now on, whenever I correct you, or tell you a rule about how this project works, or you make a mistake we have to fix, add it to CLAUDE.md in your own words along with why it matters. Do this immediately when it happens, not at the end of the session. If you notice you are about to break a rule that is already in there, say so out loud instead of quietly doing it.

My own version of that file is now long, and it is the single most valuable thing in my entire project. Every line in it exists because something went wrong once. Written down, it went wrong exactly once, and that is the whole return on the habit.

The mindset that makes this work
You are not learning to code. You are learning to be a good manager of something that is a fast, tireless, slightly forgetful employee. Be clear about what you want. Say when it is wrong. Write down the rules. That is the job.
Part 10

What it costs

Real numbers, checked in August 2026. Everything except Claude stays free until you are genuinely busy.

Claude, month 1
$200 / month
Max 20x. The building month. Worth every penny of it.
Claude, after
$100, then $20
$100 while still building, $20 (Pro) once it is just running.
Supabase
Free
Paid plan is $25 a month, and you will not need it for a long time.
GitHub
Free
Free forever for what you are doing.
Cloudflare
Free
Free hosting with no traffic limits on the pages themselves.
A web address
$10 to $15 / year
Optional, and not on day one.

So the shape of it is $200 for the month you build, then $100 a month while you are still adding things, then $20 a month forever to keep it running. Everything except Claude stays free.

For comparison, the off-the-shelf tools that do a fraction of this typically run $100 to $300 a month, every month, permanently, once you have a few hundred customers. And you cannot change how they work.

Part 11

When something goes wrong

It will, on the first day, and it is almost never your fault.

Red text appeared and I do not understand it
Select it, copy it, paste it into the chat, and write: "This error appeared. What does it mean and how do I fix it?" This resolves the large majority of problems on the first try.
Claude says a command is not recognised
You almost certainly have not restarted since installing Git or Node.js. Restart the computer and try again.
It built something I did not ask for
Say so plainly: "That is not what I asked for. I wanted X. Undo it and do it again." It will. Being blunt is more useful than being polite here.
I am completely lost and want to start over
Delete the folder, make a new one, and start again from part 3. You will lose nothing you care about and it will take a fraction of the time.
It keeps making the same mistake
That is your CLAUDE.md file failing to do its job. Go back to part 9, and check the rules from part 7 actually got written into it.
Something about my key being invalid, or nothing loads from the database
Nine times out of ten you copied the wrong one of the two keys, or copied it with a space on the end. Go back to Settings, API Keys in Supabase, copy it again carefully, and tell Claude "I think I gave you the wrong key, here it is again". Nothing is damaged by getting this wrong.
I think I pasted my secret key somewhere public
Do not panic and do not delete anything. Go to Settings, API Keys in Supabase and roll or reset the secret key. That instantly makes the leaked one useless. Then tell Claude you rolled it so it can update the file.

One last thing

I am not a developer. I built what I have by doing exactly what is on this page, badly at first, for months. The thing that made the difference was not talent and it was not any clever choice of tools. It was building one small piece at a time, using it for real, and writing down every rule the moment I learned it.

Start with the boring thing you already do by hand every week. Make the computer do that one thing. Then look up.

Iván Chocrón

Prices and download links verified August 2026. If a link has moved, search for the service by name and use the official site.