A personal dashboard web page that shows a live clock, a to-do list that saves between visits, a random motivational quote, and links to your most-used sites. Everything lives in one HTML file β Claude builds it, you ship it.
You don't have to build the dashboard β if you already have an idea you're excited about, build that instead. The steps are identical: Claude builds it, you put it on GitHub, Vercel makes it live.
What works well for a first project: anything that fits in a single HTML file with no user accounts, no payments, and no external APIs.
Not sure if your idea fits? Paste this into Claude first:
index.html.my-dashboard. Set it to Public. Check "Add a README file". Click Create repository.index.html onto the page. Scroll down and click Commit changes.my-dashboard.vercel.app. Click it β your dashboard is now live on the internet. Share it with anyone.The best first project is one you actually want to exist. Here's a proven framework for finding it:
The terminal is just a text-based way to control your computer. Instead of clicking icons, you type commands. Here are the only commands you'll use in this course:
pwd prints your current location. Think of it as asking "what folder am I in right now?"ls (Mac/Linux) or dir (Windows) lists everything in your current folder.cd my-dashboard2 moves you into a folder. cd .. goes up one level. cd ~ takes you back home.mkdir my-project creates a new folder called "my-project" in your current location.Tab to auto-complete folder and file names. Press β to repeat your last command. Press Ctrl+C to cancel anything running.Claude Code is not a chatbot. It's an AI agent that lives inside your project folder and can actually do things β read your files, write code, run commands, install packages, and push to GitHub.
claude in your terminal while inside your project folder. It reads everything in that folder automatically β your files, your folder structure, your CLAUDE.md β so it already has context before you say a word./plan or say "before you build anything, give me a plan." It will describe what it intends to do step by step. Review the plan, approve it, then let it build.CLAUDE.md in your project folder every time it starts. This is where you put permanent context: what the app is, what tech stack it uses, what not to change.You're rebuilding your Project 1 dashboard β but this time using Claude Code in the terminal instead of the Claude chat interface. The end result looks the same, but how you get there is completely different and far more powerful.
If you already have an idea you're more excited about, build that. The workflow is identical β the dashboard is just the example. Keep it to a single-page app with no login or database for now (that's Project 3).
F12 (Windows) or Cmd+Option+I (Mac), click the Console tab. Red text = errors. Copy the exact error text β don't try to understand it, just copy it.A full-stack web app called Dashboard Creator β a platform where users sign up, log in, and build their own personal dashboard by choosing from 13 widgets (clock, weather, to-do list, Pomodoro timer, and more). Every user gets their own private dashboard saved to a real database.
Landing page β explains what the app does and has a Sign Up button
Sign up / Login β users create an account with email and password
Dashboard builder β logged-in users customize their own dashboard with widgets
My Dashboard β the user's finished dashboard, saved and persistent
What is Supabase? Supabase is a free, open-source backend platform that gives your app a database, authentication, and an API. Think of it as the engine running behind your app.
https://xxxxxxxxxxxx.supabase.co. Copy it.anon public.anon public key in your app.You just got your first real API credentials. This is the moment developers lose thousands of dollars β by accidentally pushing keys to a public GitHub repo. Automated bots scan GitHub constantly.
npm install and npm start. Your app will open at localhost:3000.width, height), the space inside it (padding), the space outside it (margin), and its border (border).display: flex to a container puts its children in a row. justify-content: center centers them horizontally. align-items: center centers them vertically. That's 80% of what you'll need.- Happy path: Sign up β build a dashboard β log out β log back in β confirm dashboard saved
- Error states: Try to sign up with an already-used email. Try logging in with the wrong password.
- Mobile check: Open Chrome DevTools (F12), click the phone icon to toggle mobile view at 375px width.
- Console check: F12 β Console. Are there any red errors during normal use?
- Second browser: Open your app in an incognito/private window to simulate a fresh user.
- Live URL test: After deploying, repeat the happy path on the real Vercel URL.
2. Go to APIs & Services β OAuth consent screen β Get started. Fill in App name + support email.
3. Select External audience. Complete the setup wizard.
4. Go to Clients β + Create Client β Web application.
5. Add your Supabase URL to Authorized JavaScript origins.
6. Add
https://xxxx.supabase.co/auth/v1/callback to Authorized redirect URIs.7. Click Create. Copy the Client ID and Client Secret.
2. Paste your Client ID and Client Secret. Save.
3. Authentication β URL Configuration β set Site URL to your Vercel URL.
4. Add
https://your-app.vercel.app/** and http://localhost:5173/** to Redirect URLs.
ANTHROPIC_API_KEY./admin that shows:- A table of all users β name, email, signup date, last login
- What dashboard widgets each user has created
- Whether each user is on a free or paid plan
- Ability to send a password reset email to any user
- Ability to deactivate or delete a user account
- Summary stats β total users, new this week, paid vs free
/admin while logged in as the regular user β it should redirect away.- Premium widget is visually locked for free users with an "Unlock for $1" button
- Clicking opens Stripe's hosted checkout β you never handle card details
- After payment, Stripe sends a webhook to your app to confirm
- Your app updates the user's record in Supabase to mark them as paid
- The widget unlocks immediately β no page refresh needed
Use Test Mode when: you are still building and testing. No real money moves. Use fake card numbers Stripe provides.
Switch to Live Mode when: the app works end-to-end in test mode and you're ready to charge real users.
sk_test_ and pk_test_. Live keys start with sk_live_ and pk_live_. Always double-check.- Name: Premium Access (or whatever fits your app)
- Pricing model: Standard pricing
- Price: $1.00
- Billing period: Monthly (for a recurring subscription) or One time
After clicking Save, you'll land on the product detail page. Scroll down to the Pricing section β there's a table listing your price. In the far right column you'll see a value that starts with
price_ β for example: price_1ABcDeFgHiJkLm.Click the copy icon next to it. This is your Price ID. Paste it into your code where you see
priceId or STRIPE_PRICE_ID. Don't confuse it with the Product ID, which starts with prod_.
pk_test_...) and Secret key (sk_test_...). The secret key goes in your .env file only.4242 4242 4242 4242, any future expiry date, and any 3-digit CVV. No real money is charged.localhost. Push your app to Vercel first (even a test deploy is fine), then use that URL here.
checkout.session.completedcustomer.subscription.deletedinvoice.payment_failedClick Continue β
/api/webhook:https://your-app.vercel.app/api/webhookClick Add destination to save.
whsec_ β copy it.STRIPE_WEBHOOK_SECRET and paste the whsec_ value. Redeploy./api/webhook. Select checkout.session.completed. Copy the new whsec_ secret β add to Vercel as STRIPE_WEBHOOK_SECRET.- Users sign up and log in on their phone
- Dashboard builder adapted for touch and mobile screen sizes
- Their data stays in the same Supabase database as the web app
- Testable on your phone immediately using the Expo Go app
- Ready to submit to the App Store and Google Play
What is Expo? Expo is a free framework that lets you build real iOS and Android apps using React β the same language you already used. Without Expo, building a mobile app would require Xcode (Mac only, 12GB+), Android Studio, and complex native build tools. Expo handles all of that for you.
This could be anything β a tool that solves a problem you have, a SaaS product, a portfolio site, a mobile app, a side business, or something completely new. The only limit is your imagination.
- Pick an idea you care about β the more personal, the better
- Use whatever stack makes sense (you know them all now)
- Get it live with a real URL before you consider it done
- Share it β with friends, on social media, or in the GoLive Labs Project Library
Before writing a single line of code, get your idea clear. The biggest mistake builders make is starting to build before they know what they're building.
You've already built with most of these. Pick the right tool for what you're building β not the fanciest one.
You know how to do all of this. Trust the process, build feature by feature, and keep Claude Code in the driver's seat for the heavy lifting.
claude.env file β Add your Supabase URL, anon key, and any other secrets here. Never commit this file.CLAUDE.md file β Describe your project, stack, and conventions so Claude Code has context in every session. Update it as you build..env..gitignore (include .env), and push your initial code.git push deploys automatically. Share the URL and get real feedback.Stuck on what to build? The best ideas solve real problems β usually ones you've had yourself. Here are some starting points:
- A tool for your job β something that automates a task you do manually every week
- A simple SaaS β pick a niche and charge for access (you know how to do Stripe now)
- A personal project β budget tracker, habit app, recipe organizer, anything you'd actually use
- A portfolio site β showcase the six projects you've already built
- An AI-powered tool β use the Claude API to build something that reads, writes, or analyzes
- A client project β find a local business that needs a website or web app and build it for them
In this project you'll:
- Buy and connect a real custom domain to your Vercel deployment
- Add a Privacy Policy and Terms & Conditions (using pre-built templates)
- Run an AI-powered site audit that scores your product and tells you exactly what to fix
A custom domain costs about $10β15/year and immediately makes your project look professional. Here's how to set one up:
.com if possible β it costs around $10β12/year. Avoid hyphens and keep it short and memorable.76.76.21.21) and a CNAME record for www pointing to cname.vercel-dns.com.https://yourdomain.com. No extra steps needed.privacy-policy.html and terms.html (or the equivalent for your stack). Match the design of your existing site. Keep URLs clean: yourdomain.com/privacy and yourdomain.com/terms.Enter your project URL below and Claude will audit your site across six dimensions β design, content, trust, SEO, conversion, and performance β then give you a prioritised list of exactly what to fix before you start marketing.