Make a Website
15 minutes. No experience needed.
This tutorial walks you through making a real website from scratch and putting it on the internet. If you can type and follow instructions, you can do this.
Install Go
Go is the programming language Congo uses. You need it installed on your computer.
Go to go.dev/dl and click the big download button for your computer (Mac, Windows, or Linux). Run the installer like any other app.
When it's done, open your terminal:
- Mac — open Spotlight (Cmd + Space), type
Terminal, press Enter - Windows — press the Windows key, type
PowerShell, press Enter - Linux — you probably already know where your terminal is
Type this and press Enter:
go version
You should see something like go version go1.25.0. If you see "command not found", close the terminal and open a new one — sometimes it needs a restart.
Install Congo
Go to the download page and grab the file for your computer. Then in your terminal:
# Mac / Linux — unpack and move it to your PATH
tar -xzf congo-*.tar.gz
sudo mv congo /usr/local/bin/
# Windows — unzip the file and move congo.exe
# somewhere in your PATH, or run it from the folder
Check it works:
congo version
If you see a version number, you're ready.
Create Your Project
Pick a name for your website. We'll use mysite here, but use whatever you want. Type this:
congo init mysite
This creates a folder called mysite with everything you need inside it.
Now go into that folder:
cd mysite
Run It
congo dev
Open your browser and go to:
localhost:5000
You should see a welcome page. That's your website, running on your computer right now. Leave this terminal open — it's running your site.
Change the Page
Open the project folder in any text editor. If you don't have one, download VS Code — it's free.
Open the file web/views/index.html. You'll see HTML that looks something like this:
{{template "main.html" .}}
{{define "content"}}
<div class="container mx-auto p-8">
<h1 class="text-3xl font-bold">Welcome</h1>
<p>Your app is running.</p>
</div>
{{end}}
Change the text inside the <h1> tag to whatever you want. For example:
<h1 class="text-3xl font-bold">Hello World</h1>
<p>This is my first website!</p>
Save the file. Go back to your browser and refresh the page. You'll see your changes.
Make It Look Good
Congo comes with DaisyUI, a library of ready-made components. You just add class names to your HTML and things look nice automatically.
Try replacing your page content with this:
{{template "main.html" .}}
{{define "content"}}
<div class="container mx-auto px-8 py-16 max-w-2xl">
<h1 class="text-4xl font-bold mb-4">My Website</h1>
<p class="text-lg mb-8">Welcome to my corner of the internet.</p>
<div class="card bg-base-100 shadow-lg p-6 mb-4">
<h2 class="text-xl font-bold mb-2">About Me</h2>
<p>Write anything you want here.</p>
</div>
<div class="card bg-base-100 shadow-lg p-6">
<h2 class="text-xl font-bold mb-2">My Interests</h2>
<ul class="list-disc ml-4 space-y-1">
<li>Making websites</li>
<li>Learning new things</li>
<li>Whatever you like</li>
</ul>
</div>
</div>
{{end}}
Save and refresh. You've got a nice-looking page with cards and spacing — no CSS needed. Browse the DaisyUI docs for buttons, forms, navbars, and more.
Add a Second Page
Create a new file at web/views/about.html with this content:
{{template "main.html" .}}
{{define "content"}}
<div class="container mx-auto px-8 py-16 max-w-2xl">
<h1 class="text-4xl font-bold mb-4">About</h1>
<p class="text-lg">This page is about me.</p>
<a href="/" class="btn btn-primary mt-4">Back Home</a>
</div>
{{end}}
Now tell your app about this page. Open web/controllers/home.go and add one line in the Setup function:
func (c *HomeController) Setup(app *application.App) {
c.BaseController.Setup(app)
http.Handle("GET /{$}", app.Serve("index.html", nil))
http.Handle("GET /about", app.Serve("about.html", nil)) // new!
}
Restart the dev server (press Ctrl+C in the terminal, then run congo dev again).
Now go to localhost:5000/about in your browser.
Add a link on your homepage to connect the pages:
<a href="/about" class="btn btn-primary">About Me</a>
Let AI Help You Build
Don't know how to do something? Congo can launch an AI assistant that understands your project:
congo claude
This opens Claude Code with your entire project loaded in. You can ask it things like:
- "Add a contact form to my about page"
- "Make a page that shows a list of blog posts"
- "Add a dark mode toggle"
- "Change the colors to purple and gold"
It will write the code for you and explain what it did.
Put It on the Internet
Right now your website only works on your computer. To put it on the internet so anyone can see it, you need a server. Congo handles this for you.
First, you need an account with a cloud provider. DigitalOcean is simple and cheap (about $6/month for a small server).
Once you have an API key from your cloud provider, run:
congo launch
Congo will ask you a few questions (which provider, what region, etc.), then it will:
- Create a server for you
- Build your website into a single file
- Upload it to the server
- Start it up and make sure it's working
When it's done, you'll get an IP address. Type it into any browser and you'll see your website — live on the internet.
Keep Going
You just built and launched a website. Here's where to go from here:
Stay Updated
Get notified about new releases and updates.