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
- Go to neocities.org and create a free account
- Choose a site name (this will be
yourname.neocities.org)
- You'll see a dashboard with your files—click on
index.html to edit
- Make a small change and click Save
- 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:
- Creating files: Click "New File" and type the full name with extension (e.g.,
about.html)
- Creating folders: Click "New Folder" and give it a name (e.g.,
images)
- Uploading: Drag and drop files directly onto the file list
- No "Move": To move a file, download it, delete the original, then upload to the new location
- Renaming: Click the file, then "Rename"—this works well
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:
- On your computer, create a folder called
my-site-backups
- Each time you finish a working version, copy all your code into a text file
- Name it with the date:
index-2026-01-16.html
- 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
-
Download VS Code
Go to code.visualstudio.com and download the free editor
-
Install Live Server Extension
Open VS Code → Click the Extensions icon (4 squares) → Search "Live Server" → Install it
-
Install Neocities Extension (optional)
Search "Neocities" → Install the Neocities extension
This lets you upload directly to Neocities from VS Code
-
Create Your Site Folder
On your computer, create a folder called my-neocities-site
-
Open Folder in VS Code
File → Open Folder → Select your folder
-
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
-
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:
- Before big changes, copy your whole folder
- Name it with the date:
my-site-backup-jan16
- 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:
- Go to your Neocities dashboard
- Delete old files you're replacing (optional but cleaner)
- Drag and drop your whole folder's contents onto Neocities
- 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
- All 5 pages created and linked together
- Navigation works on every page
- All images load correctly
- Styles look good on different screen sizes
- No broken links (check every link)
- Spelling and content reviewed
- Site title and favicon set
- Final backup saved locally
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:
- Open Chrome DevTools (F12 or right-click → Inspect)
- Click the phone/tablet icon (Toggle Device Toolbar)
- Test different screen sizes
- Fix any layout issues
Final Upload
- Make sure all files are saved locally
- Test everything one more time with Live Server
- Go to Neocities dashboard
- Upload all your files (drag and drop the contents of your folder)
- Visit your live site and test every page
- 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:
- Is the
<link> tag in your <head>?
- Is the path correct?
href="style.css" or href="css/style.css"
- Did you save both the HTML and CSS files?
- Clear your browser cache (Ctrl+Shift+R / Cmd+Shift+R)
My image won't show
- Check the file path:
src="images/photo.jpg"
- Check the file extension:
.jpg vs .jpeg vs .png
- Make sure the image was uploaded to Neocities
- File names are case-sensitive:
Photo.jpg ≠ photo.jpg
- No spaces in file names —
my photo.jpg breaks online. Use my-photo.jpg or my_photo.jpg instead
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.jpg → my-photo.jpg or my_photo.jpg
I broke everything
- Don't panic
- Do you have a backup? Copy the code back in
- No backup? Try to remember what you changed
- Use the browser's "View Page Source" on your live site to see the last working version
- Ask for help—we've all been there
My links don't work on Neocities but work locally
- Check file names match exactly (case-sensitive)
- Make sure you uploaded ALL files
- Check folder structure matches your local setup
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:
- Git and GitHub — professional version control (never lose work again)
- GitHub Pages — free hosting that auto-updates when you push code
- Netlify/Vercel — modern hosting with features like forms and functions
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 |
| Save | Cmd+S | Ctrl+S |
| Undo | Cmd+Z | Ctrl+Z |
| Redo | Cmd+Shift+Z | Ctrl+Y |
| Select All | Cmd+A | Ctrl+A |
| Copy | Cmd+C | Ctrl+C |
| Paste | Cmd+V | Ctrl+V |
| Hard Refresh | Cmd+Shift+R | Ctrl+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?
- Upload files automatically from your computer
- Delete files programmatically
- List all files on your site
- Get site info like hit counts and last updated
- Automate backups or deployments
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.