explaingit

vanyapr/makaroshki

Analysis updated 2026-05-18

84HTMLAudience · vibe coderComplexity · 1/5LicenseSetup · easy

TLDR

A single-file HTML chat app that stores every message as a git commit, using any repository on GitHub, GitLab, Gitea, or similar as the backend.

Mindmap

mindmap
  root((makaroshki))
    What it does
      Stores chats as git commits
      No server or database
    Tech stack
      HTML
      JavaScript
      Git hosts
    Use cases
      Lightweight team chat
      Chat inside existing repos
    Audience
      Vibe coders

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Add a simple chat to an existing git repository without a server.

USE CASE 2

Try a live demo chat with no account or token required.

USE CASE 3

Store private team messages in a private git repository.

What is it built with?

HTMLJavaScriptGit

How does it compare?

vanyapr/makaroshkielder-plinius/entheaisas1/forever-ai-components
Stars848483
LanguageHTMLHTMLHTML
Setup difficultyeasyeasyeasy
Complexity1/51/52/5
Audiencevibe codergeneralvibe coder

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Requires a personal access token with read/write permission on the connected repository.

Do whatever you want with this software, there are no restrictions at all.

In plain English

Macaroni Messenger is a chat application that lives entirely in a single HTML file and uses git repositories as its storage layer. Instead of a dedicated server or database, every message gets written as a commit to a repository of your choice, hosted on GitHub, GitLab, GitVerse, Gitea, or Forgejo. To use it, you download the one HTML file and open it in Chrome, Chromium, or Edge. From there, you connect a repository by providing your git host, the repository URL, and a personal access token with read/write permission. Once connected, you can send and receive messages in that repository's chat. A live demo is available that shows pre-loaded conversations without needing an account or token. Messages are stored under a .macaroni/ folder inside whichever repository you connect, so the messenger can sit alongside any existing project without interfering with it. The structure organizes chats, members, and individual messages into dated subfolders. Because the storage is just a git repository, the privacy level depends entirely on whether that repository is public or private. The README is honest about the trade-offs. There is no real-time push transport: the app polls for new messages. Tokens are kept in browser localStorage, which is convenient but not a secure store. Large chat histories in a single repository will get slow, and the recommended fix is simply to create another repository. CORS restrictions on self-hosted instances may prevent the browser-side adapters from working, depending on the server configuration. The project has no build step and no backend. It is released under the WTFPL license.

Copy-paste prompts

Prompt 1
Explain how to connect this chat app to my own GitHub repository with a personal access token.
Prompt 2
What are the tradeoffs of storing chat messages as git commits instead of using a database?
Prompt 3
How does this app organize messages inside the .macaroni folder?
Prompt 4
What should I do if my chat repository gets too large and slow?

Frequently asked questions

What is makaroshki?

A single-file HTML chat app that stores every message as a git commit, using any repository on GitHub, GitLab, Gitea, or similar as the backend.

What language is makaroshki written in?

Mainly HTML. The stack also includes HTML, JavaScript, Git.

What license does makaroshki use?

Do whatever you want with this software, there are no restrictions at all.

How hard is makaroshki to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is makaroshki for?

Mainly vibe coder.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.