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

  • Microsoft Retires Outlook Contact Masking Feature March 31, 2026
  • Google Maps Privacy Update: Why Reviews and Ratings Are Now Hidden for Unlogged Users
  • Ubuntu 26.04 New Modular Firmware System: Faster Updates and Reduced System Bloat
  • Ghostty Linux Scrollbars Finally Here: What You Need to Know
  • Why Windows 11 Canary Channel Split into Two Builds? Explained!
  • What is Claude Cowork? And How Claude Cowork Uses Agentic AI
  • PocketBlue and Red Hat Bring Fedora Atomic Linux to Mobile Devices
  • Mozilla Ends Firefox Support for Windows 7, 8, and 8.1: What You Need to Know
  • Cosmic Desktop 1.0.7 Enhances Workspace Management: What’s New?
  • KDE Plasma 6.6 Released: What’s New and How to Upgrade?
  • Nginx Proxy Manager 2.14 Removes ARMv7 Support: What Users Need to Know
  •  KDE Plasma 6.6: A Complete Guide to the Latest Linux Desktop Features
  • Ubuntu 26.04 Resolute: Features, Release Date, and Everything You Need to Know
  • How to Fix Steam File Validation Error: Easy Steps for Beginners
  • 5 Essential PC Maintenance Tips to Keep Your Computer Fast and Healthy
  • What is Logseq? Forget Standard Notes App, Use this to Boosts Real Productivity
  • LibreOffice 25.8.5 Released with 62 Bug Fixes: What’s New?
  • Oracle’s New Plan for MySQL Community Engagement Explained
  • PipeWire 1.6 Brings LDAC Support and 128-Channel Audio: What’s New?
  • How to Fix Roblox Error: Create Support Files to Solve the Problem
  • Why Segmenting Your Home Network with VLANs Is the Upgrade You Didn’t Know You Needed
  • Proxmox 2026 Has The Best Backup and Recovery Feature
  • How to Calibrate Temperature and Humidity Sensors for Maximum Accuracy
  • Top Open-Source Alternatives to Adobe Creative Cloud for Design and Editing in 2026
  • TinyMediaManager: A Plugin to Organize and Manage Jellyfin Media Library
  • Beda BRIVA dan Rekening? Ini Penjelasannya!
  • Pahami Perbedaan Kode SIEX, SIPX, dan SISX dengan Mudah!
  • Arti SPT Sebelumnya Tidak Ada dari BPS yang Perlu Kalian Pahami
  • Kode Error 205 di BCA Mobile: Penyebab dan Solusi Lengkap
  • Solusi Cepat Saat Voucher Axis Tidak Bisa Diproses
  • Prompt AI Menyusun Script Pola Suara Karakter agar Brand Jadi Ikonik
  • Prompt AI untuk Merancang Karakter Brand yang Ikonik
  • 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
  • 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