I’m Steve, the creator of ProductDeck.
I’ve been building websites for clients for over 20 years. For most of that time, I’ve searched for a simple lightweight inventory system that didn't require a degree in database management to operate. I used them all, and most were bloated, over-engineered, and frustrated my clients more than they helped them.
So, I decided to build the tool I actually wanted to use.
Am I a coder? No. I’m a builder. That is where AI came in. I supplied two decades of "real world" client requirements and user experience logic; the AI handled the syntax. The result is a system built strictly for utility, not to show off clever code.
Below is the timeline of that development. You won’t find fancy jargon here. I speak user, not geek.
16:42 But, having more products did show up a major weakness in pagination. If you have 20 pages, and you're on page 18, who wants to click back 18 times to get to the first? No one! New buttons added to pagination: First page and last page.
13:55 Today was the day to test this thing to breaking point. 1000 products were created and added to the flatfile folder. Clicked refresh on the main grid page... Would it take long to load? Astonished to discover... No, it loaded as fast with 1000 products as it did with 10! Even with 64 products displayed on the main page, it still loaded super fast. And the search function? Didn't even flinch! Major win, and proof we've built one helluva system!
10:00 Just finished adding some "logic classes" to the front end. It is a small tweak but super powerful. Basically, if you turn the cart off, you can slap a specific class on a header to say "Order by Phone". If you turn the cart on, that text hides and "Checkout Online" appears instead. Simple toggle, huge difference for the user.
09:30 Also completely rebuilt the backend today. To be honest, it was working fine, but the code had grown organically (read: it was a mess). Streamlined everything so now it really is just a case of FTPing files and adding a couple of snippets. It feels lean now.
This was the big one. I hate losing data, so I decided to fix it once and for all.
2026_1_30 15:04:46 Ha! Fixed! Added a really cool feature that will stop you losing data if the admin page times out. Now, a popup yells at you, saves your work in the background, and lets you log back in without losing a single keystroke. Why don't all CMSs do this?
2026_1_30 13:36:25 Oh FFS! Admin page timed out after spending ages adding a product description. I lost the whole lot. Absolute rage. Need to stop that happening immediately.
15:00 Having just one header image per item is fine, I guess, but how about we have the facility to add lots to the the body content? Ya, done. And, how about we display all those body images at top, and have them work like a gallery? Ya, done too. Check it out here. It's bloody awesome!
14:00 Staring at a blank screen regarding Licence Management. I need the app to "phone home" to check if the domain is authorised. This is a biggie. I don't really know where to start with this level of security validation, so I am going to have to lean heavily on AI to help me build the licence verification script logic. This might take a while.
16:45 Okay, I lied. I said I wasn't going to make it a store yet, but the first client I showed it to demanded a cart. I didn't have the brainpower to write a full cart system from scratch (too much maths), so I cheated. I integrated Snipcart. Added a toggle in the admin to "Enable Ecommerce". When you flip the switch, the variants appear on the grid, and the buy buttons activate. It just works.
11:00
Realised a massive flaw in my URL structure. I was using # to append product details (e.g. product-page#red-shoes). Great for Javascript, terrible for Google. Social embeds were ignoring the specific product and just showing the main page.
Spent the day rewriting the routing to use ? queries instead. Much better. Also had a massive fight with RapidWeaver trying to override page meta-data, but finally found a workaround. Google now sees exactly what I want it to see.
09:00 Made a decision today: The Blog project is dead. Technically it worked, but I am still using other solutions on my different sites and they work fine. No point reinventing the wheel just for the sake of it. Focusing 100% on the Catalogue/Store aspect now.
14:30 Big UI shift. I have ripped the controls (Search, Categories, Sort) out of the main grid and put them into their own separate widget. This is way better. Now you can have a sidebar layout on desktop (classic Amazon style) or stack them on top. On mobile, I have tucked them into a neat accordion so they don't eat up the screen space. It finally looks like a "Pro" tool.
10:49 This is the feature I am most proud of this month. Image handling. I wanted it to be stupidly easy. Now, you just drag an image into the product description. The system grabs it, resizes it (so you don't upload 10MB monsters), renames it for SEO based on the product slug, and appends a random ID so we don't get duplicates. If you drop two images next to each other? Boom - automatically creates a grid. No coding required.
16:00 Finally password-protected the admin. Added a hashing system so we aren't storing bare passwords (I'm not an idiot). Distinct levels: Admins and Users. Admins can nuke users; Users can just change their own passwords. Basic, but secure.
09:00 Started work on "ProductDeck" (working title). The goal: A flat-file product catalogue. No databases. No PHP Jabber nonsense. Just simple Markdown files for products and folders for images. I want to be able to drop this into RapidWeaver, Blocs, or even raw HTML. Everyone told me I should build a plugin, but I have zero interest in maintaining a plugin. I am building an engine.
Subscribe for early access and updates. We'll send a confirmation email to verify you're human.
Made and maintained by
Caffeine Injection
10c 72b Dunmore Road
Ballynahinch
Co. Down
N' Ireland
BT24 8PR
€59 per domain (+ tax)
Buy once: Use forever.
Secure payments processed via Lemon Squeezy.