This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle
What I Built
I built ShopScribe AI, an AI-powered product content generator designed for small retailers, starting with cosmetics and skincare shops.
Small business owners often need to write product descriptions, Instagram captions, and WhatsApp promotional messages. Creating this content manually takes time, while hiring someone to handle marketing may not be practical for a small shop.
ShopScribe AI turns basic product information into a ready-to-edit marketing content pack.
Users can provide a product name, brand, category, verified features, selling price, target audience, and preferred tone. The application generates:
- Instagram captions for product promotion.
- WhatsApp promotional messages for customers.
- Product descriptions for online catalogues and listings.
It also includes price validation, checks for potentially unsupported product claims, and local history storage.
The target customers are independent retailers who want to create marketing content without needing dedicated marketing staff.
The business model I want to explore is a free trial followed by an affordable monthly subscription for regular use. This is an initial hypothesis that needs validation with actual retailers.
Demo
Live demo: https://shopscribe-ai.streamlit.app/
The demo allows users to enter product details, generate a content pack, edit the results, and copy or export the generated content.
The AI integration can use a locally running model through Ollama or a hosted open-weight model through the Groq API.
Code
GitHub repository: https://github.com/ShamikDas-Dev/shopscribe-ai
The project is built with Python and Streamlit, with separate modules for prompt construction, model inference, data validation, pricing calculations, and local history.
The repository includes setup instructions and tests for key application logic.
How I Built It
I built ShopScribe AI with Python, Streamlit, Ollama, and open-weight language models.
The application supports two inference approaches:
1. Local inference with Ollama
The application can run an open-weight model such as Qwen3 4B locally on the user's computer. Once the model and dependencies are downloaded, generation can work without an internet connection.
This is useful for retailers who prefer to keep their product information on their own computer.
2. Hosted inference with Groq
The application can also use the Groq API to access an available open-weight model, such as openai/gpt-oss-20b.
This option makes the application easier to demonstrate through a publicly hosted Streamlit interface without requiring every visitor to download and run a model locally.
The other technologies include:
- Streamlit: User interface and content-generation workflow.
- Pydantic: Structured data validation.
- SQLite: Local content history.
- Python validation logic: Discount calculations and checks for suspicious claims or inconsistent prices.
- pytest: Automated tests for core functionality.
I focused on prompt engineering, structured output, and validation rather than fine-tuning a model. For a small-business tool, generating usable content consistently is more important than adding unnecessary model complexity.
Why Does Open Innovation Matter?
A closed AI API could generate marketing copy, but I wanted ShopScribe AI to offer more control over how inference happens.
Open-weight models make that flexibility possible.
With local inference, the user can generate content without sending product information to a remote AI inference provider. After downloading the model, the workflow can also operate offline.
Running the model locally avoids a per-request fee from a proprietary inference API, although the user still needs suitable hardware and must account for electricity and setup costs.
The hosted option makes the application more accessible to people who do not want to install a model themselves. It also lets me experiment with different available open-weight models without redesigning the entire application.
The choice between local and hosted inference is deliberate:
- Local mode: More control over data and offline use after setup.
- Hosted mode: Simpler access, with usage subject to the provider's limits and policies.
- Model flexibility: The generation layer can be adapted to different models as requirements change.
Open innovation is not automatically better in every situation. Local models require hardware, smaller models can produce weaker results, and hosted inference introduces a dependency on an external provider. The benefit is having the ability to choose and change the approach rather than building the product around one proprietary API.
Top comments (0)