How to
Neocities

A 5-day guide from messy beginner to confident web maker. No fluff, just what you need.

Days 1–2 Working in Neocities Directly

For your first two days, you'll work directly in Neocities. This keeps things simple and helps you understand exactly what's happening with your code.

Getting Started

  1. Go to neocities.org and create a free account
  2. Choose a site name (this will be yourname.neocities.org)
  3. You'll see a dashboard with your files—click on index.html to edit
  4. Make a small change and click Save
  5. Click View to see your site live!

Neocities Survival Tips

No Undo Button Neocities doesn't have undo. If you break something, you can't go back. This is why we have versioning strategies below.
Copy Before You Change Before making big changes, select all your code (Ctrl+A / Cmd+A), copy it (Ctrl+C / Cmd+C), and paste it into a text file on your computer. This is your backup.
Work in Small Steps Make one change → Save → View → Repeat. Don't make 10 changes at once—if something breaks, you won't know which change caused it.

File Management

Neocities file management is basic. Here's how to cope:

Your First Site Structure

By end of Day 2, aim to have:

yoursite.neocities.org/
├── index.html        ← Your homepage
├── style.css         ← All your styles
├── images/           ← Folder for images
│   └── (your images here)
└── old_not_used/     ← Archive old versions here
    └── (backup files)

Versioning Strategy: Manual Backups

Since Neocities has no undo, create your own version history:

  1. On your computer, create a folder called my-site-backups
  2. Each time you finish a working version, copy all your code into a text file
  3. Name it with the date: index-2026-01-16.html
  4. If disaster strikes, you can copy the backup back into Neocities
End of Day 2 Goals You understand how to create files, edit code, and save backups. Your site has a homepage and a stylesheet. You've made mistakes and recovered from them.

Days 3–4 Level Up: Local Development

Now that you understand HTML and CSS basics, it's time to work like a pro. We'll set up a proper workspace on your computer.

Why Switch to Local Development?

Neocities Editor
  • No undo
  • Clunky file management
  • Can't work offline
  • Simple to start
VS Code + Local Files
  • Unlimited undo
  • Drag-and-drop files
  • Works offline
  • Live preview

Setting Up VS Code

  1. Download VS Code
    Go to code.visualstudio.com and download the free editor
  2. Install Live Server Extension
    Open VS Code → Click the Extensions icon (4 squares) → Search "Live Server" → Install it
  3. Install Neocities Extension (optional)
    Search "Neocities" → Install the Neocities extension
    This lets you upload directly to Neocities from VS Code
  4. Create Your Site Folder
    On your computer, create a folder called my-neocities-site
  5. Open Folder in VS Code
    File → Open Folder → Select your folder
  6. Download Your Entire Neocities Site
    Go to Neocities Dashboard → Click Settings → Scroll to Download Entire Site → Click the button to get a .zip file → Unzip it into your folder
  7. Start Live Server
    Right-click on index.html → "Open with Live Server"
    A browser window opens showing your site
Using the Neocities Extension Open the Command Palette (Cmd+Shift+P on Mac, Ctrl+Shift+P on Windows) and type "Neocities" to see options like "Upload to Neocities". You'll need to enter your username and password the first time. After that, uploading is just a few clicks.
Magic of Live Server Every time you save a file (Ctrl+S / Cmd+S), your browser automatically refreshes. No more clicking "View" constantly.

Alternative: Mount Neocities as a Drive

Neocities supports WebDAV, which lets you mount your site as a folder on your computer.

Mac
1. In Finder, press Cmd+K (Connect to Server)
2. Enter: https://neocities.org/webdav/
3. Login with your Neocities username and password
4. Your site appears as a folder—drag and drop files directly
Windows
1. Open File Explorer → Right-click "This PC" → "Map Network Drive"
2. Click "Connect to a Web site..." → Next → Enter: https://neocities.org/webdav/
3. Login with your credentials
4. Your site is now a network folder

This is useful for quick edits, but we still recommend working locally with VS Code for the best experience.

Better File Structure

Now you can organise properly:

my-neocities-site/
├── index.html
├── about.html
├── work.html
├── contact.html
├── blog.html
├── css/
│   └── style.css
├── images/
│   ├── hero.jpg
│   ├── project1.jpg
│   └── profile.jpg
├── old_not_used/
│   └── (archive old versions here)
└── backups/
    └── (your version snapshots)

Easy Versioning

Now versioning is simple:

  1. Before big changes, copy your whole folder
  2. Name it with the date: my-site-backup-jan16
  3. If things break, just copy files back from the backup
Even Better: Use File → Save As Before editing a file, use "Save As" to create a copy like index-v2.html. Keep the old versions around until you're confident.

Uploading to Neocities

When you're ready to publish:

  1. Go to your Neocities dashboard
  2. Delete old files you're replacing (optional but cleaner)
  3. Drag and drop your whole folder's contents onto Neocities
  4. Check your live site
Watch Your Paths If you use css/style.css locally, make sure the folder structure is the same on Neocities, or your styles won't load.
End of Day 4 Goals You're working locally with VS Code and Live Server. You can make changes, see them instantly, and upload to Neocities when ready. You have a proper backup system.

Day 5 Polish and Publish

Final day. Time to polish your 5-page site and make sure everything works perfectly.

Pre-Launch Checklist

Check Your Navigation

Every page should have links to every other page:

<nav>
  <a href="index.html">Home</a>
  <a href="about.html">About</a>
  <a href="work.html">Work</a>
  <a href="blog.html">Blog</a>
  <a href="contact.html">Contact</a>
</nav>

Test on Mobile

In VS Code with Live Server running:

  1. Open Chrome DevTools (F12 or right-click → Inspect)
  2. Click the phone/tablet icon (Toggle Device Toolbar)
  3. Test different screen sizes
  4. Fix any layout issues

Final Upload

  1. Make sure all files are saved locally
  2. Test everything one more time with Live Server
  3. Go to Neocities dashboard
  4. Upload all your files (drag and drop the contents of your folder)
  5. Visit your live site and test every page
  6. Share your URL with the class
Congratulations You've built a complete multi-page website from scratch. You understand HTML structure, CSS styling, and professional development workflows. This is a real skill that you'll use forever.

Troubleshooting Common Mistakes and Fixes

My CSS isn't working

Check these things:

My image won't show

Common Mistake: Spaces in File Names This works on your computer: <img src="images/my photo.jpg">
This breaks online. The browser sees images/my and stops.

Fix: Rename your file to use hyphens or underscores:
my photo.jpgmy-photo.jpg or my_photo.jpg

I broke everything

  1. Don't panic
  2. Do you have a backup? Copy the code back in
  3. No backup? Try to remember what you changed
  4. Use the browser's "View Page Source" on your live site to see the last working version
  5. Ask for help—we've all been there

My links don't work on Neocities but work locally

Beyond Neocities This Workflow Works Everywhere

The skills you're learning aren't just for Neocities. This exact workflow—local development → version control → upload/deploy—works with almost any web hosting.

Other Places to Host Your Sites

Host Best For How to Deploy
GitHub Pages Free, professional portfolios Push to a Git repository
Netlify Free, auto-deploys from Git Drag and drop or connect to GitHub
Vercel Free, great for React/Next.js Connect to GitHub, auto-deploys
Glitch Free, collaborative, beginner-friendly Edit in browser or import from GitHub
Surge.sh Free, super simple CLI surge command in terminal
Traditional Hosting
GoDaddy, Bluehost, Dreamhost, etc.
Custom domains, more control File Manager or cPanel (drag and drop in browser)
Your Own Server
Raspberry Pi, old laptop, etc.
Complete control, great for learning Copy files directly to the server's folder
What's "Your Own Server"? Any computer can be a web server. A Raspberry Pi is a small, cheap computer (around $50) that can host your website from home. Or use an old laptop. Install web server software (Apache or Nginx), put your HTML files in a folder, and your site is live on your home network. With some extra configuration, you can make it accessible to the whole internet.
The Pattern is Always the Same 1. Work locally on your computer
2. Test with Live Server (or similar)
3. Keep backups/versions
4. Deploy to your chosen host

Once you learn this workflow, you can host anywhere.

Want to Level Up?

After this course, consider learning:

Reference Quick Reference

Essential HTML Structure

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>My Page Title</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <!-- Your content here -->
</body>
</html>

Linking Between Pages

<!-- Same folder -->
<a href="about.html">About</a>

<!-- Up one folder -->
<a href="../index.html">Home</a>

<!-- External link -->
<a href="https://example.com" target="_blank">External Site</a>

Adding Images

<!-- Basic image -->
<img src="images/photo.jpg" alt="Description of image">

<!-- With figure and caption -->
<figure>
  <img src="images/photo.jpg" alt="Description">
  <figcaption>Caption text here</figcaption>
</figure>

Keyboard Shortcuts

Action Mac Windows
SaveCmd+SCtrl+S
UndoCmd+ZCtrl+Z
RedoCmd+Shift+ZCtrl+Y
Select AllCmd+ACtrl+A
CopyCmd+CCtrl+C
PasteCmd+VCtrl+V
Hard RefreshCmd+Shift+RCtrl+Shift+R

Bonus Neocities API

Once you're comfortable with the basics, you can automate your workflow using the Neocities API. This is optional but powerful.

What Can the API Do?

Using the Command Line Interface

Neocities has a command-line tool that makes uploading easy:

# Install the Neocities CLI (requires Ruby)
$ gem install neocities

# Push your entire local folder to Neocities
$ neocities push .

# First time, it will ask for your credentials
One Command Deploy Once set up, you can update your entire site with just neocities push . from your project folder. No more drag-and-drop.

Getting an API Key

Instead of using your password, you can get an API key:

# Get your API key (using cURL)
$ curl -u "YOUR_USERNAME:YOUR_PASSWORD" "https://neocities.org/api/key"

# Response:
{
  "result": "success",
  "api_key": "da77c3530c30593663bf7b797323e48c"
}

Upload via API

# Upload a file using cURL
$ curl -u "USER:PASS" -F "hello.html=@local.html" https://neocities.org/api/upload

VS Code Extension

There's a VS Code extension for Neocities that lets you upload directly from your editor.

Save This For Later The API is powerful but adds complexity. Master the basics first (Days 1–5), then explore automation when you're ready.