NewsGo |

How NewsGo is built

A plain-English explanation of the servers, the software, and the real performance numbers — written for people who don't write code for a living.

What is a VPS?

A VPS (Virtual Private Server) is a rented computer in a data centre that runs 24/7 and serves the website to anyone who visits. Think of it as a dedicated employee who answers every visitor's request around the clock. The three specs that matter most are CPU, RAM, and storage.

Server comparison

Spec VPS 1 — Old VPS 2 — Current
CPU cores 1 core 2 cores
RAM 2 GB 8 GB
SSD Storage 25 GB NVMe 100 GB NVMe
Web server App only App + Nginx

CPU — the number of chefs in the kitchen

1 CPU core

One chef in the kitchen. Every order is prepared one at a time. When traffic spikes, a queue builds up — earlier customers wait while the chef finishes the current dish.

2 CPU cores

Two chefs working in parallel. When 200 people arrive at once, both cores handle requests simultaneously, halving the time customers spend waiting.

RAM — the kitchen counter space

2 GB RAM

A small counter. The chef can only keep a few ingredients out at once — room for the app, the database connections, and not much else. Adding features risks running out of space.

8 GB RAM

A large counter. The app, the AI semantic search engine (Ollama), nginx, and the database can all run simultaneously without competing for space. Comfortable headroom for growth.

NVMe SSD — the pantry

25 GB

A small pantry. Fits the operating system, the app, and an early-stage database. Once the article archive grows, there is no room to expand without migrating everything.

100 GB

A spacious pantry. Years of articles, uploaded images, AI model files (Ollama), and database backups fit comfortably. NVMe means reads and writes are extremely fast — no spinning hard drive delays.

Nginx — the front-door receptionist

Nginx is a piece of software that sits in front of the Go application and manages every incoming visitor before the app ever sees them.

SSL termination

Nginx handles the HTTPS padlock encryption so the Go app doesn't have to. Every visitor's connection is encrypted without the app lifting a finger.

Static file serving

CSS, JavaScript, and image files are served directly by Nginx from disk — without the Go app being involved at all. Faster for the visitor, less work for the application.

Connection buffering

When 200 visitors arrive at once, Nginx accepts all their connections instantly and queues requests to the app in an orderly way — preventing the app from being overwhelmed.

Gzip compression

Nginx compresses responses before sending them to the browser, reducing how much data travels over the network. Pages load faster on slower connections.

Real numbers — stress test results

These numbers are from a live load test: 200 simultaneous users, each making 50 requests as fast as possible — 10,000 total requests per run. Like sending the entire audience of a medium-sized concert to the website at the exact same moment.

Metric VPS 1 — no nginx VPS 2 — before nginx VPS 2 — with nginx
Requests/second 251 452 466
Avg. response time 756 ms 207 ms 147 ms
Slowest response 1,013 ms 2,447 ms 652 ms
99th percentile 925 ms 392 ms 273 ms
Failed requests 0 49 timeouts 66 timeouts
Test duration 41 s 17 s 15 s
How to read this: "99th percentile 273 ms" means 99 out of every 100 visitors got a response in under 273 milliseconds — less than a third of a second. The timeout failures occur because the test pushes beyond what a single server is tuned for under a synthetic burst; real-world traffic arrives more gradually and does not trigger them.

What this means in practice

faster average response time compared to the old single-core server (147 ms vs 756 ms).

85%

reduction in worst-case response time (652 ms vs 2,447 ms before nginx was configured).

466

requests handled per second — equivalent to serving over 1.6 million page views per hour from a single mid-range server.

Full technology stack

Language Go — fast, low memory footprint, compiles to a single binary
Database PostgreSQL — stores all articles, users, and organisations
Web server Nginx — reverse proxy, SSL, compression, static files
AI search Ollama (local LLM) — semantic article search without sending data to third parties
API REST + RSS 2.0 — public, documented, rate-limited
Hosting Single VPS — no cloud vendor lock-in, no per-request billing
See the live feed API documentation About NewsGo