Proof of work · 1999–today
What I've built
I've been making software products for more than 25 years. Some paid my rent. Some earned enough for a coffee. Some were used by thousands of people. Many failed.
This is the full record.
- 1,800+
- published tutorials
- 20+
- programming books
- 15+
- courses created
- 15+
- Joomla extensions
- 2 dozen
- iPhone and iPad apps
- thousands
- JooCode customers
How it started
I first touched programming on an Amiga. I did not know what to type, and there was no web full of tutorials to tell me.
In 1997 I became a Linux fan. Linux came in four-CD packs because my 33.6K connection could not download it without blocking the phone line for days.
I bought a huge JavaScript book about Netscape 3.0. I learned PHP 3 by printing the entire manual. Then I started putting things on the web.

1999: Linux Hideout
My first public project was an Italian Linux site atlinux.clavis.it. A friend worked at the ISP and got us a subdomain. Hosting and domains were expensive, so this mattered.
The design was inspired by Yahoo. The screenshot shows 5,902 visits. Visitor counters and webrings were the tools of the time.
The programming site that stopped after one bad comment
At university I made an Italian programming site and wrote articles about C, Java, AJAX, and the web. I shared them in a forum. Someone told me they were poorly written, so I stopped.
Years later I built my career by writing programming articles. Early feedback can point you forward, or make you quit too soon.
An automated ebook site and my first WordPress plugin
I was collecting ebooks and experimenting with automation. I made a site that scanned them, combined fragments, and generated pages. It started ranking in search, then a publisher complained about a trademark and I took it down. It was an early lesson in the difference between getting traffic and making something useful.
I also made a free WordPress marketing plugin. Google still exposed the search term that brought someone to a site, so the plugin used it to show that visitor a different message. It was clever and got little traction.
2007: a blog, a Joomla course, and my own course platform
After my computer engineering degree I started my own company. I did client work, wrote an Italian web development blog, and created a paid video course about Joomla.
Course platforms did not really exist, so I built one. It had video, text lessons, quizzes, and student accounts. Then I spent so much energy building the platform that I lost motivation to make more courses.

The JooCode years
JooCode was my first real software product business. I built a portfolio of Joomla extensions and sold them directly to developers and site owners.
The first paid extension fixed one small annoyance: after registering, Joomla made a new user log in again. My plugin logged them in immediately. It took about one hour to build and sold very well.
That result pushed me to build at least 15 extensions. The archive still contains JooCommerce, Map Locations, Tickets, Login Immediately, CSV Export, JSON Export, Mail Collector, Site Analytics, Page Load Times, Emoji, Custom JS, Custom CSS, Custom PHP Settings, and a database query tool.
Thousands of developers bought JooCode products. Some products paid the rent. For periods, software products were my full-time income.
JooCommerce
JooCommerce was the largest one: a simple e-commerce system for Joomla. I wanted a shop extension that normal people could configure without buying a chain of add-ons.

I stopped maintaining it years ago. Another developer later continued it as JooComShop and still credits JooCommerce as the original project. Software can outlive the person who made it.
Map Locations
Map Locations added responsive Google Maps, more than 130 map designs, 700 markers, clustering, categories, and Street View to Joomla sites.
This was not a tutorial demo. It had subscriptions, updates, private support, payments, licensing, documentation, and years of maintenance.

Mobile apps, Mac apps, and a WordPress failure
About two dozen iPhone and iPad apps
I learned Objective-C, Swift, Cocos2D, and Apple platform development. I made a windsurfing session tracker, Naval Battles, a physics game with a squirrel and birds, music apps, utilities, and more.


The apps never took off. Together they paid the Apple developer membership and, from time to time, a coffee. I removed them all from the App Store.
Six Mac utilities before Electron
I used Ember.js and MacGap to build desktop apps with web technology. I made Code Snippet, a notes app, a recipe app, a device database, and My Bills.
They sold a few copies each week for years. None became a meaningful income stream.

CommerceKit
Joomla sales were slowing down, so I rewrote the JooCommerce idea for WordPress. I called it CommerceKit and released it for free.
Almost nobody downloaded it at first. I removed it after a few months.
CommerceKit could have become something like WooCommerce. That was the idea.
But WooCommerce and the other popular shopping cart extensions were already the default choices. Almost nobody was looking for another one. Breaking into that market was basically impossible, and I did not have enough perseverance and grit to make it work.
GravCart and Gitometer
Working on Grav and building GravCart
I worked as a core developer on the Grav CMS as a contractor. I also moved my e-commerce idea to Grav and released it as open source, with commercial payment add-ons.
The shopping cart repository has 321 commits, 22 releases, 54 stars, and 24 forks. The official Grav plugin registry still lists the cart and my Stripe and PayPal add-ons.
Adoption was slower than I hoped. Community contributions did not grow enough to make the project sustainable, so I stopped maintaining it.

Gitometer
Gitometer turned GitHub repository history into timelines and charts. I first wrote it in Laravel, then rewrote it in Go to make it faster.
I asked GitHub users to try it. They were not interested, even for free. It looked good and taught me a lot, but it did not solve an important problem. I stopped before trying to charge for it.

The first Prototyped
In 2020 I tried again. The original Prototyped was an authentication blueprint for developers tired of rebuilding signup, login, password reset, OAuth, and email confirmation.
Before building it, I made a landing page. In two weeks it received 1,935 visits and 130 waiting-list signups. I emailed the list and got 12 detailed replies.
Those were good validation numbers. I still paused the project. I was running courses, and I did not commit to the long maintenance cycle an authentication product deserved.
Years later I reused the name for today's source prototype catalog. Names can come back too.
The products that worked
In 2017 I started writing again. In 2018 I focused the site on JavaScript and web development. I published an ebook, then a course, then another.
This became the first durable product system I built. The tutorials bring people in. The free books help them go deeper. Courses and workshops give them structure, projects, feedback, and a community.
I have now published 1,800+ tutorials, more than 20 programming books, and more than 15 courses. One earlier Solopreneur Masterclass alone had 590 students.
Teaching did not replace building. It gave the building a distribution system, and it forced me to explain what I was learning.
The money, without theater
I do not have exact accounts for every product going back to 2008. I will not invent precise numbers to make this page look impressive.
Here is what I can say from my records:
| Product | Cost | Result |
|---|---|---|
| Login Immediately | About one hour to build | Sold very well. Exceptional return on time. |
| JooCode portfolio | Years of code, support, and maintenance | Thousands of buyers. Some products paid rent; software was my full-time income for periods. |
| iPhone and iPad apps | Countless hours plus Apple's annual membership | Paid the membership and the occasional coffee. |
| Mac utilities | Six products and years in the store | A few sales per week. No meaningful income stream. |
| CommerceKit | A full Joomla-to-WordPress rewrite | A mature market dominated by default extensions. Little traction, and I stopped. |
| GravCart | 321 commits and 22 releases | Real open-source adoption, but not a sustainable business. |
| Gitometer | Two implementations: Laravel, then Go | Could not attract free users. No business. |
| Original Prototyped | Landing page, research, and customer interviews | 1,935 visits, 130 signups, 12 replies. Paused before launch. |
Every project here was bootstrapped. No venture capital. No staff hidden behind a personal brand. The main cost was always time.
What the failures taught me
- Some markets are already locked up. WooCommerce and other extensions were the defaults. Nobody was looking for another shopping cart, and I did not have the perseverance needed to break in.
- A clever product is not the same as a useful one. Gitometer was attractive, but it solved no painful problem.
- The market matters. Joomla shrank. My product quality could not reverse the ecosystem.
- Platforms add risk. Music apps disappeared after copyright complaints. API products depend on someone else's rules.
- Maintenance is part of the product. GravCart needed a community or a business strong enough to support years of work.
- Distribution comes before scale. For years I started with code. Today I start with the customer and how I can reach them.
- Small products can have the best return. The one-hour plugin beat projects that took months.