Tukuk-OS Academy
Zero to Hero: one free curriculum from your first terminal command to running, defending and growing your own search engine.
Follow the stages in order — each lesson assumes only what came before it. Stuck at any point? Start at Stage 0 and keep the full archive within reach.
Zero — Start From Nothing
Machine basics, your first page, and the mindset that keeps you going.
- What Is Tukuk-OS? What This Search Engine Actually DoesA full overview of Tukuk-OS: what it does, how it differs from other search engines, and why it is built on a free, open source stack.
- Learn Programming by Building: The Zero-to-Hero Method That Actually WorksTutorials feel like progress and evaporate like water — a real project that must stay online is the only curriculum that never lets you quit halfway.
- From a Broken Laptop to My First Try: Where It All BeganThe true story of how a broken laptop forced me to learn from a phone, borrow a computer, and eventually write my first lines of code.
- Learning Ubuntu From Scratch: The Terminal That Scared MeMy journey installing Ubuntu for the first time, fearing the black screen, and finally becoming comfortable directing an operating system purely with text.
- 10 Terminal Commands I Memorised and Still Use Every DayThe real commands I use daily to manage the Tukuk-OS server, from basic navigation to searching logs and controlling services.
- My First HTML and CSS Page: From a Blank Screen to a Living PageBuilding a first web page with no template: understanding document structure, colour choices, and the disbelief when the browser displays your work.
- My First JavaScript: When the Page Started Talking BackLearning JavaScript: from an embarrassing alert() to understanding events, the DOM, and how JavaScript turns a static page into an application.
Build — Foundations of the Web
Servers, HTTP, version control, testing, and debugging like a professional.
- Node.js and My First Web Server: Hello From the TerminalInstalling Node.js, writing a ten-line web server, and discovering why using one language for browser and server changed how I build software.
- Why I Chose Node.js and Express for Tukuk-OSAn honest comparison of backend stacks: why Node.js/Express beat Python, PHP and heavy frameworks for a personal search engine project.
- HTTP and APIs: The First Language My Server SpokeUnderstanding status codes, request methods, and API design from the perspective of someone sending data across a network for the first time.
- HTTP Status Codes and When to Use Each OneStatus codes are a contract with clients, caches, and crawlers — picking the right one decides whether your API is usable and your SEO is clean.
- Git and GitHub for Solo Projects: A Workflow You Will Actually KeepVersion control is not teamwork bureaucracy — it is the undo button for your whole project, and a solo developer needs it more than anyone.
- Testing Your Node.js App Without CeremonyYou do not need a testing framework religion to know whether your code works — start with a script, a few assertions, and one command you run before every deploy.
- Logging and Debugging in Production When You Cannot Attach a DebuggerOnce code runs on a server you cannot step through, logs become your only eyes — structured messages, right levels, and a habit of printing context, not feelings.
- Browser DevTools for Backend People: Ten Panels That Pay RentYou built the API but never opened the Network tab — that is why you argue with your own frontend. DevTools is not a frontend-only tool.
- Git Bisect: Finding the Exact Commit That Broke Your CodeWhen a bug appeared "somewhere in the last hundred commits", binary search with git bisect finds the guilty change in ten steps instead of an afternoon of guessing.
- Race Conditions in Node.js: The Bugs That Only Happen Under LoadYour code works in testing and fails in production because two requests arrived 40 milliseconds apart — here are the async patterns that cause it and how to close the windows.
- Off-by-One and the Nine Other Logic Bugs You Will Write This YearThe most expensive bugs are rarely exotic — they are fences, loops, boundaries, and boolean mistakes that pass every happy-path test ever written.
- Famous Software Bugs That Changed Engineering ForeverAriane 5 exploded, Therac-25 killed, and a decimal point cost a bank $330M — the canonical bug stories are not gossip, they are the curriculum nobody teaches formally.
Search — Inside the Engine
Crawling, inverted indexes, ranking, and the search index that powers it all.
- My First Crawler: The Spider That Collected the WorldBuilding a web crawler of my own: from blindly following links to respecting robots.txt, handling heavy pages, and avoiding becoming a burden to others.
- Building an Inverted Index by Hand: My First Search Engine CodeBefore using an off-the-shelf engine I built my own inverted index in JavaScript — and understood why that structure changes everything.
- Meilisearch: From a Hand-Built Index to a Fast Production EngineWhy I chose Meilisearch for Tukuk-OS, how I tuned it, and lessons from running an index live in production.
- BM25: The Relevance Formula Behind Almost Every Search BoxBefore embeddings and neural rerankers, there was a formula that still decides most rankings — term frequency, saturation, and a penalty for documents that repeat themselves.
- Image and Video Search in Tukuk-OS: How It Actually WorksInside the mechanics of the Images and Videos tabs: sources, request flow, extraction, error handling, and the pagination strategy.
Ship — Deploy, Protect, Stay Reachable
Domains, HTTPS, caching, abuse protection — and staying online when someone tries to stop you.
- Cloudflare Tunnel and a Free Domain: Tukuk-OS Goes LiveHow a server at home finally became reachable at tukuk.org without opening ports, without a static IP, and without a big monthly hosting bill.
- Caching Strategy and Circuit Breakers: Keeping Tukuk-OS Fast and StableTwo techniques that turned Tukuk-OS from a frequently slow site into a fast one even when external services fail: query-keyed caching and circuit breakers.
- Service Worker Caching: The Night Cache-First Served the Wrong PageA service worker that cached every navigation served users stale — and sometimes wrong — HTML for hours; network-first for navigations fixed it without giving up speed.
- Rate Limiting and Basic Abuse Protection for Small Web AppsOne `express-rate-limit` rule and a couple of sensible timeouts stand between your hobby server and a script that bills you for bandwidth you never used.
- Cloudflare Anycast and What It Means for Global AvailabilityAnycast puts your site in hundreds of cities behind one IP — it is the cheapest layer of "many doors" you can buy, and it is not the same thing as being unblockable.
- Why No Website Can Be 100% Unblockable (And What to Do About It)Any government can filter a domain, an IP, or a TLS fingerprint — the realistic goal is not invulnerability but redundancy: several independent doors to the same content.
- Tor Onion Services for Websites: Hiding Your Server in Plain SightAn onion service lets visitors reach your website through the Tor network without your server exposing any IP address — a practical alternative when domains get blocked.
- The Onion-Location Header: How Websites Invite Tor Users AutomaticallyOnion-Location is a single HTTP response header that tells Tor Browser your site has an onion mirror — one line of server config that bridges the clearnet and Tor worlds.
- DNS over HTTPS (DoH): When Your Resolver Starts LyingDNS over HTTPS encrypts domain lookups inside a normal HTTPS connection, which makes DNS poisoning and filtering far harder for anyone sitting between you and the truth.
Grow — Traffic, Content, Money
SEO, indexing pipelines, analytics without cookies, and keeping the lights funded.
- SEO for New Blogs: 10 Practical Steps I Implemented on Tukuk-OSA real SEO checklist for a brand-new blog — from sitemaps, canonicals, and JSON-LD to Search Console registration and low-competition keyword choices.
- IndexNow: Submitting URLs to Bing (and Friends) the Moment They PublishIndexNow is a push-based protocol — your site tells search engines what changed instead of waiting for a crawl — and it takes about twenty lines of script to set up.
- RSS Feeds Are Still the Best Way to Build a News TabBefore ranking news, you have to ingest it — and plain RSS over HTTPS remains the fastest, most honest pipeline from publisher to search results.
- Inline Video Player Embeds: Keeping Visitors on Your SiteClicking a video should open a modal on your own domain, not a new tab on someone else's — here is the small amount of JavaScript that makes that work.
- The Tukuk-OS Blogging System: How Content Is Written, Stored and ServedNot just an article list — the story behind Tukuk-OS’s simple blog system: JSON storage, a Markdown parser, a dynamic sitemap, and steady content standards.
- AdSense for Small Blogs: An Honest Guide From Real ExperienceReal experience installing Google AdSense on a small blog: what gets reviewed, where ad slots go, actual earnings, and when monetising makes sense.
- The Tukuk-OS Contact Form: From Click to Your InboxBuilding a contact form that actually sends email: from API keys, validation, and rate limits to Cloudflare Email Routing and how to avoid spam.
- Tukuk-OS Automation: Backups, Watchdogs and Self-MonitoringHow Tukuk-OS stays alive without me staring at a screen: scheduled backups to R2, a watchdog that restarts services, and logs that tell what happened.
- Monitoring Uptime for Free: Health Checks, Timers, and Honest AlertsYour site being down is fine as long as you are the first to know — a health endpoint, an external checker, and a watchdog timer cover almost every small-project need.
- The Launch Checklist for a Side Project You Want to Stay UpLaunching is not the demo — it is the moment strangers, crawlers, and bad actors arrive at once. A checklist beats adrenaline.
- The Real Cost of Running Tukuk-OS: What Is Free and What Is NotAn honest breakdown of Tukuk-OS operating costs: domain, cloud storage, open source, and hours — and why a free stack does not mean zero cost.
Master — Privacy, AI, Philosophy
The ideas layer: data ownership, honest AI answers, and the story of Tukuk-OS itself.
- Privacy in Tukuk-OS: Why There Are No Tracking CookiesWhy Tukuk-OS was designed without user tracking: what is not collected, what is stored, and how we keep search quality without profiling anyone.
- Extractive vs Abstractive AI Answers: Why We Chose the Sentence That ExistsAn extractive engine quotes the best passages it actually found; an abstractive LLM writes new prose. For a search engine that must never invent facts, the first option wins by default.
- Parsing Bing Results: How Market Parameters Decide Your LanguageThe same query can return English gold or decorative junk depending on locale parameters — validating result relevance is part of parsing, not an optional extra.
- Tukuk-OS Complete Feature Tour: From Web Search to Space DataA detailed list of every Tukuk-OS feature: search, filters, autocomplete, image and video results, daily NASA data, and the blog — and how they connect.
- Tukuk-OS Is Alive: Reflections From Broken Laptop to Working Search EngineAn honest reflection after Tukuk-OS started working: what was hardest, what I would do differently, and what keeps me writing code.
- Tukuk-OS Bug Retrospective: Four Real Bugs and What They CostA merge script that copied zero documents, a service worker serving yesterday's site, Bing returning decoy results, and a video player nobody could open — four real bugs from this project, written up while the scars are fresh.