Download the template and unzip it. Everything — pages, images, music, games — lives in that one folder. Put it somewhere easy to find (your Desktop is fine) and give it a simple name like my-site. Never move individual files out of it. This folder is your website — copying it somewhere safe is a full backup.
Either of these serves the folder for you — no terminal needed. VS Code is the one to reach for first: nothing else to install, and it works the same on every system.
Or use the launcher for your system — it starts the server and opens your site and dashboard for you. These need Python installed.
If it opens your site, you’re done — skip to chapter 02: Build your site. Leave the launcher window open while you work; it is the server. If Python isn’t installed, the launcher opens the download page for you — install it (Windows: tick “Add python.exe to PATH”), then run the launcher again. If it won’t run at all, the steps below do the same thing by hand.
Double-clicking index.html opens it at a file:// address, and for security browsers block a file:// page from reading other local files — so the site can’t load content.json and shows up empty. The fix is to run a tiny local web server in the folder and open the site at http://localhost instead. It sounds technical, but it’s one pasted line — and nothing you type in the next steps can break anything.
The commands differ slightly per operating system. Choose yours — every command below updates to match.
Most computers already have Python — it’s what we’ll use for the server. First, open a terminal:
Press ⌘ + Space, type Terminal, press Return. Then run:
Press the ⊞ Win key, type PowerShell, press Enter. Then run:
Open your terminal (often Ctrl + Alt + T). Then run:
If you see something like Python 3.11.x you’re set — skip to step 6. If you see “command not found” or “not recognized”, do step 5 first.
Download the macOS installer from python.org/downloads, open it, and click through — the defaults are fine. Close and reopen Terminal, then re-run the check from step 4.
Download the Windows installer from python.org/downloads. On the installer’s first screen, tick “Add python.exe to PATH” before clicking Install — this matters. Then close and reopen PowerShell and re-run the check from step 4. (Tip: typing python on Windows may pop open the Microsoft Store — installing from python.org with “Add to PATH” avoids that.)
Python 3 is usually preinstalled. If not, install it with your package manager — e.g. sudo apt install python3 (Debian/Ubuntu) or sudo dnf install python3 (Fedora).
Type cd and a space, then drag your site folder from Finder into the Terminal window — it fills in the location for you. Press Return.
In File Explorer, open your site folder, click the address bar, type powershell and press Enter — it opens PowerShell already pointed at the folder. (Or type cd, a space, and paste the folder’s path.)
Type cd and a space, then paste or type the folder path, and press Enter. Many file managers also have an “Open Terminal Here” right-click option.
Paste this line and press return:
If it says “Serving HTTP…”, you did it. Leave this window open while you work — it is the server. Closing it just stops the preview; nothing is lost.
Your site is now running privately on your own machine — nobody else can see it yet. In your browser (use Chrome or Edge for the dashboard’s folder-scan features), open:
The dashboard auto-loads content.json — no password, it runs entirely on your machine. Bookmark both links.
To stop: click the terminal window and press Ctrl + C. Next time you want to work on your site, repeat steps 6–7 and open the same links — that’s the whole routine from now on.
{{ it.blurb }}
neocities.org is a free host built for personal sites, and it suits Meridian perfectly — it serves static files and nothing else. Sign up, delete the sample index.html it gives you, then drag your exported site folder into the dashboard. You are live at yourname.neocities.org. meridianos.neocities.org is a Meridian site running there.
You will want yourname.com instead of a cloudfront.net address. Buy a domain before you start — porkbun.com is a good registrar: cheap, no upsell maze, email forwarding, and free WHOIS privacy. Search for a name, check out (a .com is ~$11/yr; quirky endings like .site or .lol are often less). You’ll come back to Porkbun’s DNS records screen in step 6 to wire it up.
Go to aws.amazon.com → Create an AWS account. You’ll need an email and a payment card, but a small personal site fits comfortably in the free tier (S3: 5 GB of storage · CloudFront: 1 TB of transfer per month) — typically $0.
In the AWS console, search for S3, then click Create bucket. Give it a unique name (e.g. my-site-2026), pick global or the region closest to you, and uncheck “Block all public access” Click Create bucket.
After creating your bucket click into it and go to the Properties tab. Scroll down to the very bottom of the page and find the Static Website Hosting pane and click Edit. Switch from Disable to Enable. Under Index document type index.html in the field. Scroll to the bottom and hit Save changes.
Now, still within the bucket, go to the Permissions tab. Scroll to the Bucket policy pane and hit Edit. Copy and paste this over what is already there, replacing YOURBUCKETNAME with the bucket name you chose earlier:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::YOURBUCKETNAME/*"
}
]
} Click Save changes.
Now navigate to the Objects tab in your bucket and click Upload or just drag the files for your site (index.html, vintageos.html, support.js, content.json, and the /vendor, /images, /audio, /music and /games folders) into the pane and click Upload. Your files are now accessible from a browser. If you click into the index.html you will see an Object URL that will take you to your site. The next 2 steps add your custom domain.
In the search bar on the top left of the page search for CloudFront then click Create distribution. Select your plan (either Free or Pay-as-you-go at the bottom). Name your distribution then click Next. In the Origin pane, click Browse S3 and pick your bucket from the list. You will get an alert:
⚠️ "This S3 bucket has static web hosting enabled. If you plan to use this distribution as a website, we recommend using the S3 website endpoint rather than the bucket endpoint."
Click Use website endpoint. Click Next. Then Next again. Then click Create distribution.
Wait for the distribution’s status to say Deployed (~5–10 minutes). Your site is now live at the Distribution domain name — something like d1a2b3c4.cloudfront.net. Open it and you should see your site. Now in that Distributions window you should see Alternate domain names in the middle of the screen, click Add domain. Add yourname.com and www.yourname.com (replace those with the URLs you bought in step 1) and click Next. Check the box for Create a wildcard certificate and click Create certificate. It will load some credentials. Dont close that window.
In a new browser tab/window, navigate to your domain registrar dashboard (Porkbun,etc..) and navigate to the DNS settings. [ For Porkbun, go to Account in the top right, Domain Management, and you will see your domain(s) listed. Under the domain name, hit DNS.] Click Add Record. Change the type to CNAME.
Now go back to your Distributions tab and you will see the new certificate shows a CNAME Name and Value (long strings starting with an underscore). Paste the CNAME Name into the Host field on Porkbun or other DNS registrar. (Porkbun appends “.yourname.com” automatically, so paste only the “_abc123” part). Paste the entire Value string into the Target field (on Porkbun), and click Add.
Navigate back to the Distributions window and click Validate certificate. Amazon Certificate Manager will validate the DNS settings, and then hit Next. Review the changes. If your certificate does not show automatically, select it from the dropdown and hit Save changes. Your site will now be accessible from your custom URL.
CloudFront caches your files, so after you upload new versions of content.json (plus any new images or other edited files) to your S3 bucket, you will have to create an Invalidation. Go to CloudFront, click your Distribution. Click the Invalidations tab and then Create invalidation. Enter /* to refresh everything on your site. Then click Create. It takes about a minute and your site should be updated with the changes.