Moiwak portalOne portal that runs a whole store
An operations portal for a startup with a web shop and a physical outdoor and clothing store. It sits on top of Shopify and the ERP system, and handles images, products, suppliers, stock and numbers in one place.
- For
- Moiwak, a startup
- Year
- 2026 – now
- Status
- Live, growing
Problem
Running a physical store and a web shop meant the same work in several systems. Images, product data, supplier files and stock counts were all handled by hand.
What I built
A portal made of modules that each solve one job. They share one database and one set of rules. The team, the MCP server and the assistant all go through the same code, so people and agents get the same checks.
Result
Live and used by the store team. About 2,000 commits so far, and it keeps growing one module at a time.
Stack
- Next.js 16
- TypeScript
- Supabase
- MCP
- Vercel AI SDK
- OpenRouter
- Shopify GraphQL
- Specter ERP
- Firecrawl
- fal.ai
- Railway
- Vitest
- Playwright
11 modulesOne system
Each module works as a solution of its own. They also share data and talk to each other. Hover a module to see its connections.
Media assets
Talks to Products, MCP server
A private library for every image that is not a product photo.
- –AI suggests file names, alt text in two languages and tags on upload
- –Send an image to Shopify with one click
- –AI upscaling, compared side by side before you swap
- –Shows where each image is used, and blocks deleting images in use
Products
Talks to Suppliers, Phone app, Translations, Issue scanner
Search and edit the whole catalogue, kept close to live with Shopify webhooks.
- –Product editor with prices, barcodes and variants
- –Automatic enrichment fills in missing data, photos and descriptions
- –A price guard takes products with a wrong price offline
- –Every change to the shop is logged
Translations
Talks to Products
Every shop text in Swedish and English, in one place.
- –Read, edit and review side by side
- –AI translation that follows the shop's voice rules
Suppliers
Talks to Products
One page per supplier, with photo sources and product facts.
- –Reads supplier portals and price files
- –Matching photos go straight onto the product
- –Second-hand consignment intake
Phone app
Talks to Products, Issue scanner
A web app for the shop floor, installed on the phone's home screen.
- –Scan barcodes with the camera to look up any item
- –Receive deliveries and send stock changes to the ERP
- –Count stock one brand at a time
- –Unknown barcodes can become a new product or variant on the spot
KPI dashboard
Talks to Products, Shopify, Specter, Fortnox
The store's key numbers, worked out by tested code.
- –Stock figures read from Shopify every day
- –AI writes short readings, but never does the maths
Issue scanner
Talks to Products, Phone app
One place for everything that has failed or needs a look.
- –Finds duplicate and broken catalogue data
- –Alerts for webhooks, ERP follow-ups and AI credits
MCP server
Talks to Media assets, Products, Assistant
Lets the team use their own AI tools on the portal.
- –Personal keys that follow the owner's role and permissions
- –Read-only by default, with write tools per permission
- –Holds no logic of its own, so it follows the same rules as the portal
Assistant
Talks to MCP server
A help chat inside the portal.
- –Reads live data through the same tools as the MCP server
- –Learns the rules from the portal's own docs, which update with every deploy
- –A test fails if its screen guide no longer matches the interface
SEO and AEO agent
Talks to Marketing agent, KPI dashboard
In progress. An agent that audits the shop's site and tracks how it is found.
- –Checks technical SEO, page content, structured data and accessibility
- –Tracks rankings, competitors and whether AI answers cite the shop
- –Measures before and after every fix
Marketing agent
Talks to SEO and AEO agent, Media assets
In progress. An agent that plans and drafts the shop's content.
- –Blog posts, page updates, social posts and newsletters, written for search and AI answers
- –A posting schedule, competitor and trend checks, and post stats