๐Ÿš€ From Zero to LiveVPS + Claude ยท free course

Home โ€บ Module 7

Module 7 ยท Building Your First Project

Turn your server into a working app

You have a server, your tools are installed, and Claude is connected. This is the module where it all clicks together: you're going to build a small, real app and run it on your own machine. It'll stay private for now โ€” putting it on the public internet is Module 8 โ€” but it will genuinely work.

๐ŸŽฏ Goal of this module

Go from a blank server to a working app with Claude's help.

Pick a small, real project

Before you type anything, decide what you're building. Keep it small โ€” small projects finish, and finishing is what teaches you the most. Here are four friendly starting points. Pick one.

  • A personal homepage. A page about you: who you are, what you make, how to reach you.
  • A "link in bio" page. One tidy page with buttons linking out to your social profiles, shop, or newsletter.
  • A simple note or guestbook. A page where you (or visitors) can type a message and see it saved.
  • A tiny tool. Something that does one useful thing โ€” converts units, picks a random name, shows the weather.
๐Ÿ’ก

Small on purpose

You can always add more later โ€” another page, another button, another feature. It's much easier to grow something small and working than to fix something big and broken. Start tiny.

The core loop: describe, build, test, understand

Building with Claude isn't a one-shot magic trick. It's a short rhythm you'll repeat over and over, each time making your app a little better. Once this loop feels natural, you can build almost anything.

  1. Describe what you want

    Tell Claude, in plain words, what you'd like to exist. Be specific about the one thing you want right now โ€” not everything at once.

  2. Let Claude build it

    Claude writes the actual files and code. You don't need to write it yourself โ€” that's the whole point of having it as your pair programmer.

  3. Test it

    Run it and actually look at it. Does it do what you asked? Click around, try it the way a real visitor would.

  4. Review and understand

    Skim what Claude made. Ask questions if something's unclear. Then go back to step one and describe the next small improvement.

Notice that step four loops right back into step one. That's the whole trick: describe โ†’ build โ†’ test โ†’ understand โ†’ describe again. Real apps are built one small loop at a time, not in one giant leap.

Work with Claude, not just around it

It's tempting to let Claude build things and never look at what it made. Resist that a little. You don't need to understand every single line โ€” but you should know the shape of your project: which files exist and roughly what each one does.

After Claude builds something, try asking it: "What does this file do?" or "Walk me through what you just built, in plain English." A good answer takes thirty seconds to read and leaves you feeling more in control, not less.

โš ๏ธ

Never hard-code secrets

If your app ever needs a secret value โ€” like a password or an API key โ€” ask Claude to put it in a separate .env file, never typed directly into your code. And never share that file with anyone or paste its contents into a chat. (We'll cover secrets properly in Module 10 โ€” for now, just keep them out of your code.)

Running the app on the server

Most small apps you'll build are actually tiny web servers themselves. They "listen" for visitors on a port โ€” think of a port like a numbered door on your server. A common one for testing is door number 3000.

When you ask Claude to build your project, also ask it to tell you the exact command to start the app. For a typical Node.js project, that command often looks like this:

terminal
node server.js

Run that, and your app starts up and keeps running right there in the terminal โ€” it stays "alive" as long as that window is open and busy. That's normal! When you want to stop it, press Ctrl+C and it shuts down.

Checking it works โ€” from the server itself

With your app running in one terminal, open a second terminal window connected to the same server. Now you can visit your own app from the command line, using a tool called curl:

terminal
curl http://localhost:3000

curl is just a way to "visit" a page as text, without opening a browser. And localhost means "this same computer" โ€” you're asking the server to fetch a page from itself. If you see your page's text printed back at you, congratulations: it works.

One important note: this only proves it works on the server. It's not reachable from the wider internet yet โ€” nobody else can visit it by typing an address into their browser. That's exactly what Module 8 sets up.

When something breaks (and it will)

Errors are completely normal โ€” every single person who builds software sees them, all the time. An error isn't a sign you did something wrong; it's the computer telling you exactly what it needs next.

When you see red error text in your terminal, don't panic and don't try to decode it yourself. Just copy the whole error and hand it to Claude with something like: "I ran node server.js and got this error โ€” what's wrong?" Paste the text in. Claude can usually explain what happened and fix it in the next loop.

๐Ÿงญ

Read errors calmly

Error messages look scary because they're often long and full of unfamiliar words. You don't have to understand them yourself โ€” just capture the text and hand it over. That single habit, "copy the error, ask Claude," solves the vast majority of beginner problems.

โœ๏ธ Hands-on: build something real

Time to run the whole loop for real. This should take about fifteen minutes.

  1. Start Claude in your project folder

    In your terminal, on your server, run claude inside the folder where you want your project to live.

  2. Describe your project in one sentence

    Pick from the list above and say it plainly: "Build me a simple personal homepage with my name and a short bio."

  3. Let Claude build it โ€” and ask for the start command

    Let it create the files, and ask it exactly how to run the app when it's done.

  4. Start it

    Run the command Claude gave you, something like node server.js. Leave that terminal window running.

  5. Open a second terminal and confirm it responds

    In a new terminal window (same server), run curl http://localhost:3000 and look for your page's text.

  6. Ask for one small improvement

    Describe one tiny change you'd like, and run the loop again: describe, build, test, understand.

โœ…

You did it

You now have a real app, running on a server you control, built with your own words and Claude's hands on the keyboard. That's the entire craft of building software โ€” you just did it.

โœ… Recap
  • Pick one small, real project โ€” you can always grow it later.
  • The core loop is describe โ†’ build โ†’ test โ†’ understand โ†’ repeat.
  • Skim what Claude builds so you always know the shape of your project, and keep secrets in a .env file, never in code.
  • Apps run on a port; start them (node server.js), and check them with curl http://localhost:3000 โ€” it's private until Module 8.
  • When you hit an error, copy it and ask Claude โ€” that's normal, not a failure.