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 Add Password Protection to GRUB
  • Linux Kernel Hardening: Command-line Lockdown
  • Make Linux Kernel More Safe and Hardening with Sysctl Easy Way
  • How to Lockdown Root & Wheel Group in Linux
  • How to Secure Sudo in Linux (Secure Sudo Logging & Timeout)
  • Make Fedora Login Safe with Authselect and Faillock
  • How Measure Linux Security Use OpenSCAP Lynis and Systemd
  • SELinux Make Nginx Break and How to Fix It Easy
  • How See Hidden SELinux Errors When Your Server Is Broken
  • How Fix SELinux Port Denied Error With Sealert Easy Guide
  • Read SELinux AVC Denial Log Simple Guide for Noob
  • How Check and Fix SELinux Block Things in Fedora Linux
  • How Actually SELinux is Work?
  • How to Install Elementary OS 8 Easy and Make It Good
  • How to Install UniFi OS Server on Ubuntu Linux Without Cloud Key
  • Top DNF5 Tips to Make Your Fedora Linux Super Fast
  • Run Local AI on Fedora 44 CPU Without Expensive GPU
  • Google Gemini Live Redesign: Works with more ‘Connected Apps’ on Android
  • A new LILYGO T3S3 ESP32-S3 with LoRA, WiFi & Bluetooth is Released only $16
  • New ESP32 Project: OpenTrafficMap ESP32-C5 C-ITS With 802.11p V2X communication
  • How to Unlock the Hidden Potential of Your Kindle with Amazing Community Plugins
  • How to Use Waze with Android Auto for the Ultimate Driving Experience
  • How to Transform Your GNOME Desktop with GNOME Prism
  • Why Your Google Maps Wear OS Navigation Fails While Using Android Auto
  • Packagist Attacked! How to Detect Hidden Malware Like This?
  • Cara Atasi USB Error dengan Update USB Root Hub dan Chipset Driver
  • Inilah Cara Mengatasi Unknown USB Device Descriptor Request Failed yang Paling Ampuh
  • Inilah 20 Kampus Swasta Terbaik di Bandung Versi EduRank 2026 untuk Referensi Kuliah Kalian
  • Inilah Syarat dan Cara Daftar Sekolah Kedinasan STPN 2026, Kuota Terbatas!
  • Inilah Cara Daftar PPKB UI 2026 Lengkap dengan Rincian Uang Pangkal Semua Jurusan S1
  • 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
RSS Error: WP HTTP Error: A valid URL was not provided.
©2026 Tutorial emka | Design: Newspaperly WordPress Theme