Skip to content
Tutorial emka
Menu
  • Home
  • Debian Linux
  • Ubuntu Linux
  • Red Hat Linux
Menu
koffan grocery list

Koffan: Self-Hosted App for Shopping List

Posted on January 16, 2026

Have you ever arrived at the grocery store only to realize you left the important shopping list sticking to the refrigerator door at home? It is a very common problem that can lead to frustration and forgotten items. Today, we are going to explore a smart digital solution called Koffan, a self-hosted application that ensures your family’s shopping list is always in your pocket.

To understand why Koffan is such an interesting piece of software, we first need to look at how it was built. Many modern web applications are quite heavy, meaning they use a lot of computer memory to run. The developer of Koffan originally wrote the app using a framework called Next.js, but they realized it was using too many resources. To fix this, they rewrote the entire application using the Go programming language. This change resulted in an incredibly lightweight app that only takes up about 16 megabytes of space and uses very little RAM. For a computer science student, this is a great example of how choosing the right programming language can make software much faster and more efficient. The app uses a technology stack that includes Go for the backend, SQLite for the database, and HTMX with Tailwind for the visual design.

One of the most user-friendly features of Koffan is how it handles logging in. Instead of requiring every member of your family to create their own username and email account, the app uses a single shared password. This means you can simply send the website link and the password to your parents or siblings, and they can start adding items to the list immediately. Once you are logged in, you can create different lists for different needs, such as a weekly grocery run, a hardware store trip, or a list for a specific party. Inside these lists, you can organize items by sections. This is very helpful because grocery stores are organized by aisles, like dairy, produce, or meat. By grouping your items in the app, you do not have to run back and forth across the store.

A very cool technical aspect of this application is how it handles real-time synchronization. Imagine you are at the store and your mom is at home realizing she needs eggs. If she adds eggs to the list on her computer, it will appear on your phone screen instantly without you needing to refresh the page. This works through a technology called WebSockets, which creates a continuous connection between the server and your device. It is similar to how a walkie-talkie works, allowing instant communication. Additionally, if you cannot find an item, there is a feature to mark it as “uncertain,” which flags the item so you can ask for clarification later.

For those of you interested in how software is created, there is an interesting detail about Koffan’s development. The creator used an Artificial Intelligence assistant called Claude AI to help write the code. This is sometimes called “vibe coding.” While AI can be a very helpful tool for programmers, it is important to remember that we should always review the code to make sure it is safe and works correctly. Using AI is a great way to speed up work, but as a student, you should always try to understand what the code is doing rather than blindly trusting the robot.

Features:

  • Ultra-lightweight – ~16 MB on disk, ~2.5 MB RAM
  • Multiple lists – Create separate lists for different stores or purposes, with custom icons
  • PWA – Install on your phone like a native app
  • Offline mode – Add, edit, check/uncheck products without internet (auto-sync when back online)
  • Auto-completion – Fuzzy search suggestions from your history, remembers sections
  • Organize products into sections (e.g., Dairy, Vegetables, Cleaning)
  • Mark products as purchased
  • Mark products as “uncertain” (can’t find it in the store)
  • Real-time synchronization (WebSocket)
  • Responsive interface (mobile-first)
  • Dark mode – Automatic theme based on system preferences
  • Multi-language support (PL, EN, DE, ES, FR, PT, UK, NO, LT, EL)
  • Simple login system
  • Rate limiting protection against brute-force attacks
  • REST API – Programmatic access for integrations and migrations (docs)

Now, let us discuss how to actually get this running on your home server. The application is designed to be installed using Docker. The easiest way to manage this is by using a Docker Compose file. If you find a command that starts with “docker run,” you can use a tool called “Composerize” to turn it into a neat Docker Compose format. This makes it easier to change settings later. To install Koffan, you would write a script that tells the computer to download the image, set the port to 80, and create a volume so your data is saved even if the computer restarts. You will also need to set your custom password in this file.

Here is an example of what that configuration might look like:

version: '3.3'
services:
    koffan:
        container_name: koffan
        image: 'plunkett/koffan:latest'
        ports:
            - '80:8000'
        volumes:
            - '/path/to/data:/app/data'
        environment:
            - PASSWORD=YourSuperSecretPassword
        restart: unless-stopped

Once the application is running on your server, you can access it through your web browser. However, Koffan has another trick up its sleeve called a Progressive Web App, or PWA. This allows you to install the website onto your phone just like a normal app from the App Store. When you visit the site on your mobile browser, you should see an option to “Add to Home Screen.” This gives you a nice icon on your phone and allows the app to work very smoothly, even if your internet connection is a little spotty. It is a modern way to build apps that work on both computers and phones without doing double the work.

By setting up Koffan, you are not just getting a digital shopping list; you are learning about efficient software design, real-time networking, and self-hosting with Docker. It solves a real-world problem by keeping your household organized and ensures that you never have to guess what you need to buy. I highly recommend you try deploying this on your home lab to see how responsive a Go-based application can be. It is a small project that offers a big reward in daily convenience.

Github: https://github.com/PanSalut/Koffan

Recent Posts

  • pGrok: Personal Ngrok Alternative with Dashboard & HTTP Request Inspect
  • Is the Raspberry Pi Still an Affordable SBC? 2026 Update
  • How to Launch Your Own Cloud Hosting Platform with ClawHost
  • Notepad Remote Code Execution CVE-2026-20841 Explained
  • Crossover 26 Released: New Features for Linux Users
  • Cosmic Desktop 1.0.6 Released: What’s New for Linux Users?
  • MOS: A New Open-Source OS for Home Labs and Self-Hosting
  • Windows 11 Dock Test: Linux/MacOS Style via PowerToys
  • Microsoft Ends 3D Viewer in Windows 11, Creators Update Era Over
  • Why Linux Outperforms Windows: 4 Key Reasons Explained
  • Windows 11 26H1 Explained: Why This New Update is Only for the Latest ARM Devices
  • Go 1.26 Adds New Features for Developers
  • The Fake Zoom Meeting Scam: How UNC1069 Uses Deepfakes and AI to Steal Your Cryptocurrency Explained
  • Windows 11 OOBE Now Features Copilot Assistant
  • WhatsApp Web Adds Voice & Video Calls for Linux Users
  • ntfy 2.17 Released: Priority Templating Explained for Linux Users
  • Ubuntu 26.04 Will Removes Software & Updates GUI
  • MPV: The Ultimate Linux Video Player Explained
  • RedAmon Explained: An AI-powered agentic red team framework
  • How to Reset Game Bar Settings on Windows 11/10
  • TVScreener Library Review! Simple Python Library for TradingView Screener
  • Microsoft Edge Replaces Read Aloud with Copilot Vision: What You Need to Know?
  • Microsoft Officially Removes Optional .NET Framework 3.5 in Windows 11
  • Windows 11 Shared Audio Now Available on More Devices
  • How ML Could Improve Linux Kernel Performance
  • Apa Maksud Hukum Dasar yang Dijadikan Pegangan dalam Penyelenggaraan Suatu Negara? Ini Jawabannya
  • Apakah Apk Puskanas Penipuan?
  • Inilah 10 Alternatif Mesin Pencari Selain Yandex yang Anti Blokir dan Aman Digunakan
  • Caranya Supaya WhatsApp Nggak Kena Spam Terus Meski Sudah Ganti Nomor, Ternyata Ini Rahasianya!
  • Jangan Tergiur Harga Murah! Inilah Deretan Risiko Fatal Membeli iPhone Lock iCloud
  • Prompt AI Audit Konten Sesuai Karakter Brand
  • Prompt AI Merubah Postingan LinkedIn Jadi Ladang Diskusi dengan ChatGPT
  • Prompt AI: Paksa Algoritma LinkedIn Promosikan Konten Kalian
  • Inilah Cara Bikin Postingan Viral Menggunakan AI
  • Inilah Cara Buat Conversation Starter di Claude Project Agar Workflow Kalian Lebih Sat-Set
  • Apa itu Spear-Phishing via npm? Ini Pengertian dan Cara Kerjanya yang Makin Licin
  • Apa Itu Predator Spyware? Ini Pengertian dan Kontroversi Penghapusan Sanksinya
  • Mengenal Apa itu TONESHELL: Backdoor Berbahaya dari Kelompok Mustang Panda
  • Siapa itu Kelompok Hacker Silver Fox?
  • Apa itu CVE-2025-52691 SmarterMail? Celah Keamanan Paling Berbahaya Tahun 2025
©2026 Tutorial emka | Design: Newspaperly WordPress Theme