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

  • How to build a high-performance private photo cloud with Immich and TrueNAS SCALE
  • How to Build an Endgame Local AI Agent Setup Using an 8-Node NVIDIA Cluster with 1TB Memory
  • How to Master Windows Event Logs to Level Up Your Cybersecurity Investigations and SOC Career
  • How to Build Ultra-Resilient Databases with Amazon Aurora Global Database and RDS Proxy for Maximum Uptime and Performance
  • How to Build Real-Time Personalization Systems Using AWS Agentic AI to Make Every User Feel Special
  • How to Transform Your Windows 11 Interface into a Sleek and Modern Aesthetic Masterpiece
  • How to Understand Google’s New TPU 8 Series for Massive AI Training and Inference
  • How to Level Up Your PC Gaming Experience with the New Valve Steam Controller and Its Advanced Features
  • Is it Time to Replace Nano? Discover Fresh, the Terminal Text Editor You Actually Want to Use
  • How to Design a Services Like Google Ads
  • How to Fix 0x800ccc0b Outlook Error: Step-by-Step Guide for Beginners
  • How to Fix NVIDIA App Error on Windows 11: Simple Guide
  • How to Fix Excel Formula Errors: Quick Fixes for #NAME
  • How to Clear Copilot Memory in Windows 11 Step by Step
  • How to Show Battery Percentage on Windows 11
  • How to Fix VMSp Service Failed to Start on Windows 10/11
  • How to Fix Taskbar Icon Order in Windows 11/10
  • How to Disable Personalized Ads in Copilot on Windows 11
  • What is the Microsoft Teams Error “We Couldn’t Connect the Call” Error?
  • Why Does the VirtualBox System Service Terminate Unexpectedly? Here is the Full Definition
  • Why is Your Laptop Touchpad Overheating? Here are the Causes and Fixes
  • How to Disable All AI Features in Chrome Using Windows 11 Registry
  • How to Avoid Problematic Windows Updates: A Guide to System Stability
  • What is Microsoft Visual C++ Redistributable and How to Fix Common Errors?
  • What is the 99% Deletion Bug? Understanding and Fixing Windows 11 File Errors
  • Inilah Jadwal Pelaksanaan SPMB SD Jakarta 2026
  • Tanggal Penerbitan KK & SKD untuk Pendaftaran SPMB 2026 Dimana?
  • Inilah Lima HP Xiaomi Rp1 Jutaan Sudah Punya NFC
  • Apa itu Jabatan Panitera Muda Mahkamah Agung, Berapa Gaji & Tunjangannya 2026?
  • Inilah Kenapa Bisa Ada Sensasi Mencekam di Bangunan Tua
  • How to Automate Your Entire SEO Strategy Using a Swarm of 100 Free AI Agents Working in Parallel
  • How to create professional presentations easily using NotebookLM’s AI power for school projects and beyond
  • How to Master SEO Automation with Google Gemini 3.1 Flash-Lite in Google AI Studio
  • How to create viral AI video ads and complete brand assets using the Claude and Higgsfield MCP integration
  • How to Transform Your Mac Into a Supercharged AI Assistant with Perplexity Personal Computer
  • 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