This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle
What I Built
A tattoo inquiry usually shows up as a vague DM: "small fox on my forearm, kinda fine line, budget around 400Rs, need it before the 20th." Size, references and exact placement are often missing, and some requests are things the artist simply doesn't do. Answering every one by hand takes time, and so does saying no.
QueueInk is an inquiry desk for solo tattoo artists. The artist sets their own rules once: styles they don't do, placements they avoid, a minimum price, and whether they take cover-ups. Then they paste an inquiry and get:
- Flags from their own rules. These are checked by plain code, not by the AI.
- An editable job card with subject, style, placement, size, colors, references, budget and timing, in the client's own words.
- A draft reply. If a hard rule is hit, it's a polite decline built from the artist's rules, and the AI isn't even called. Otherwise it asks only for what's missing.
- A private queue with statuses (Inquiry, Quoted, Deposit requested, Booked, and so on), notes, JSON backup and a delete-everything button.
The AI never accepts a job, never sets a price and never creates artwork. It only reads text and drafts a message that the artist edits.
Who would pay?
I think solo artists who book through DMs could, since it saves repetitive replies. I haven't tested whether they'd pay.
Demo
Deployed link : https://huggingface.co/spaces/nikisded/queueInk
Sample video: [Link to your video, if you made one]
The sample message on the demo is made up. Please don't paste real client messages into the hosted version (see "Why Does Open Innovation Matter?").
Code
title: queueInk
emoji: /'o-o'
sdk: gradio
sdk_version: 5.50.0
app_file: app.py
pinned: false
How I Built It
- Model: [Qwen2.5-0.5B-Instruct / 1.5B-Instruct], an open-weight model, run with Hugging Face Transformers. I first tried Gemma, but it was too slow on my setup, so I switched to Qwen.
- App: Python and Gradio. Saved commissions and rules live in the browser's localStorage, not on a server.
- Hosting: a Hugging Face Space on ZeroGPU.
The design choice that mattered most: the model has a narrow job. Budget parsing, flags, "what's missing" and the decline decision are ordinary code driven by the artist's settings. The model only extracts a few fields and writes a friendly reply. That keeps decisions predictable, makes declines instant (no model call), and means a small model is enough.
A few details I'm happy with:
- Client text is treated as untrusted. It can't change the model's instructions or the output format.
- If the model returns something unreadable, the app falls back to a basic reply instead of crashing.
- Health or age mentions are flagged as a prompt for the artist to ask the client, and the tool gives no medical advice.
Performance, honestly: my first run on my local space took 90.8s. But after having it hosted on HuggingSpace with ZeroGPU that time came to be 3.7s
What it can't do: the rules use keyword matching, so unusual wording can slip through and some phrases false-alarm. A small model gets fields wrong sometimes, which is why every field is editable. I tested it on 10 inquiries, not at scale.
Why Does Open Innovation Matter?
Tattoo clients send personal details, and sometimes health or age information. Because the model is open-weight, an artist can run QueueInk entirely on their own computer:
pip install -r requirements.txt
python app.py
After the first model download, nothing needs to leave the machine, there's no per-message API bill, and nobody can change the price or switch the model off. Because the weights are open, the model can also be swapped or tuned later for how artists actually write.
I want to be clear about the limits:
- The hosted demo is not private. On the Space, pasted text is processed on Hugging Face's server, so use made-up messages there. Running locally is the private way to use it.
- Saved data isn't encrypted. The queue is stored in the browser, so anyone with access to that browser profile could read it.
- A small model makes mistakes. That's why the rules, not the model, decide, and why the artist reviews every draft.
Prize Categories
Overall
Top comments (0)