Lessons From Launching Our First Web App (with Python)

Communer Markhound Lite Screenshot
One of the two interfaces for our new Markhound Lite trademark appraisal tool.

Share This Post

A long time ago, in middle school, I used to make games on my TI-83+ graphing calculator. They were just text-based RPGs, but they were pretty fun, and by making them in the TI-Basic programming language, I learned a lot of the fundamentals of software development. 

I continued on this path by taking computer programming classes throughout high school and designing computer game levels in Valve Hammer Editor. Then for some reason I majored in political science, became a lawyer, and didn’t write another line of code until my thirties, unless you count HTML and CSS.

Communer is a great project for me in a number of ways. It’s my best chance right now of making the “f-you” money that most founders dream about — enough money to never worry about making a living again — and it sends a lot of clients to my law firm while being profitable on its own, making it a vastly superior alternative to running Google Ads.

But beyond money and clients, Communer is also giving me something I’ve needed for the past 20 years: the motivation and opportunity to write and deploy software, becoming a better software engineer in the process.

My first coding projects at Communer involved automating tasks I was doing manually. That included appraising trademarks, verifying the ownership of trademark sellers, and posting trademark listings.

One of the most time-intensive tasks I originally had to do regularly was writing the marketing copy for each trademark, which my Python app now drafts using OpenAI’s GPT API. In my experience, OpenAI’s GPT is bad for drafting emails and blog posts, but it’s very good for writing marketing copy for product listings.

A while ago, the day-to-day work of Communer was piling up to such an extent that I brought my wife Stephanie on to help me with it. But a few months ago I finished writing the software to handle most of the things she was helping with, allowing her to go back to focusing on her art practice.

Once I had automated a good chunk of the work involved in running Communer, I decided it was time to start making free web tools that people would find useful. This would hopefully bring more attention and users to Communer and also raise awareness about the idea that you can sell trademarks online.

Here are some of the decisions I had to grapple with when releasing my free web tool. They are universal problems that anyone may encounter when releasing a free promotional tool online. 

1. Should a Web App Require an Email Address?

Originally when I deployed Markhound Lite, I decided to make the tool more “altruistic” by not having an email address field. Requiring an email address creates friction and makes the tool less appealing. I wanted it to be as easy as possible to use, with no strings attached, so curious trademark owners would be more likely to try it. I also thought blogs would be more willing to write about it if there was no email address required. 

After a few weeks, I started regretting that people were using my app, but never signing up for my newsletter about branding and growth, even though some users of the tool might be interested. I also thought users might want to get their results by email so they could save them and use them later. Still, I resisted adding an email field.

The last straw came when I saw that somebody had used the app and gotten an appraisal for their trademark, but the appraisal price was lower than it should have been. Seeing the low outcome for this trademark led me to change several parts of the appraisal algorithm to give more accurate values. 

In this user’s case, they had gotten an appraisal of about $6,000 for a dietary supplements trademark, when I had very recently sold three dietary supplements  trademarks for about $9,000 each. For whatever reason, trademarks for dietary supplements are worth about two to three times a typical trademark, making them a massive outlier, and I had not yet updated the Markhound algorithm to adequately adjust for that. 

I wanted to reach out to this user and tell them that my updated appraisal for them was more like $9,000. Unfortunately, they did not go on to submit their trademark for sale, and I had no way to reach them. Their federal trademark registration had an attorney of record on file, so the actual owner’s email address was not visible.

I would just have to chalk this up as a lost user and a lesson learned. But I wasn’t going to let it happen again. Not only did I improve the algorithm for that specific scenario, but I added a mandatory email field to the form so I would always be able to reach the user if I had something to tell them. I don’t use the emails for general marketing purposes though.

Now I know I can always reach out to somebody if I believe Markhound gave them a bad appraisal. I also no longer feel the sting of missing out on newsletter signups by interested users. About 20% of Markhound Lite users sign up for my newsletter, which is a rate I’m very happy with.

2. How Much Information To Give Users

Screenshot of Markhound Lite appraisal results for Marvelous Essentials trademark and matching domain. Click image to expand.

There are several ways a marketplace startup can create moats to prevent competitors from catching up. The most important moat for a marketplace is a high volume of buyers and sellers. Once a marketplace has been established as the default place for buyers and sellers to go, it’s extremely hard for competitors to catch up without a huge pile of money for marketing and subsidized pricing. 

Another differentiator can be proprietary data and internal processes. Communer is the only entity in the U.S. that can accurately appraise a trademark registration because Communer is the only entity in the U.S. that has any reliable sales data for registered trademarks. Using this data, I’ve developed methods for appraising trademarks that I’ve incorporated into Markhound’s calculations. 

When releasing the web-based, public-facing version of my appraisal engine, I had to make a judgment call about how much information to give users. I didn’t want to give away too much of Communer’s secret sauce, but I also wanted to give users an idea of why we gave their trademark that appraisal.

As a compromise, I decided to give users several qualitative details about their valuation that I call “Mark Insights.” Rather than telling you that being in a certain class reduces your listing’s value by X% or that having a matching .com domain name with 6 characters increases the value by 2.5X, Markhound uses non-numeric language like “reduces your listing’s value a little bit” or “greatly increases the value of your listing.”

This makes it harder for competitors to reverse engineer our formulas while still giving a lot of valuable information to people who want to know what their trademarks and domains are worth. When combined with the daily usage limit described in the next section, this makes it extremely difficult for another party to figure out exactly how each factor affects the value of a listing. 

Separate from Mark Insights, I also give users a Markhound Brand Score and accompanying Brand Analysis. I know it recently became extremely trendy for startups to tout their use of generative AI, but in Communer’s case I have found OpenAI’s API to be really useful for evaluating the marketability of a brand name based on specific metrics I give it.

Finally, to remind users that these appraisals are based on real life sales data, Markhound Lite gives the user examples of two or three trademarks for similar goods/services that have recently sold on Communer, along with the purchase price and the number of days it took Communer to sell it.

3. Avoiding Spam and DDoS Attacks

Any free web tool needs to be designed in a way that prevents people or bots from submitting it so many times that your web server crashes or your compute costs stack up. 

Right now I pay a tiny fraction of a cent for each Markhound Appraisal. My entire bill for OpenAI API last month was $0.04 USD. But if somebody figured out a way to spam the form hundreds of thousands of times, I’d be in trouble. 

Worse than that, because the form now asks for an email address, a spammer could get me blacklisted from all the major email providers by forcing my software to send thousands of spam emails in a short time. I use a secondary domain to send Markhound’s appraisal emails to users, so communer.com itself probably wouldn’t be blacklisted, but it would still be a bad situation.

To combat this, and to ward off reverse engineering attempts, Markhound Lite only allows each user to submit the form eight times a day. That’s enough uses that somebody with a handful of trademarks could evaluate each one, but not so many uses that somebody could abuse the software in some way. For security reasons, I won’t go into detail about the specific Python script I wrote to limit the number of uses.

Run, Markhound, Run!

Markhound Mascot
I drew this logo for Markhound back in 2017 as a brand element for JPG Legal, long before I founded Communer.

I had a lot of fun developing Markhound Lite. I’m still having a lot of fun improving it. It’s been very gratifying to see hundreds of people use a free tool I made. All these submissions have also given me a ton of ideas for improvement that I’ve incorporated into our internal appraisal tool, which has increased the overall value of Communer.

I hope at some point I’ll be able to spend most of my time developing technology like this rather than filing trademarks, but I’m very happy that Communer is already popular enough to compensate me for the time I’m putting into it. Even though we stopped all paid ad spend in December 2023, we doubled our sales in 2024, ending the year at $166,000. 

For my next app, I think I’ll create a free Brand Name Evaluator tool, expanding on the Mark Insights and Brand Analysis features of Markhound. That way, somebody who’s trying to come up with a brand name can harness both my knowledge as a branding attorney and Communer’s sales data. 

After that, who knows? Maybe a baby name evaluator? Is that something people would want, or do I just have dad brain?

Share This Post

More To Explore