Friday Updates: Prepping TimelineGPT for Launch, Viva la EmergentMind


This week consisted of Milan (Preceden’s designer) and I getting TimelineGPT (the AI content generator we’re working on) from 80% ready to ship to 98%. Lots of small, boring tasks like:

  • Figuring out the UX after users click the “Add to Timeline” button in the suggestions dialog. Do we close the dialog? Keep it open? If we keep it open, do we uncheck the suggestions they just added? Hide them completely?
  • Sometimes GPT returns 1 suggestion for a topic, other times 30. When it returns just 1, should Preceden automatically try again to generate more? But then when you combine the results, there can be duplicate suggestions, but not exactly identical, so how do you figure out how to make the final list unique?
  • Adding lots of unit tests to ensure everything works as intended and edge cases are handled.
  • Integrating into OpenAI’s moderation endpoint so users can’t try generating timelines for inappropriate topics.
  • Setting up attribution so I can tell which new customers upgraded after using the suggestions tool (which will be important since using the GPT API will cost money, and I’ll need to carefully monitor the ROI of this tool).
  • Debugging a weird bug that stemmed from using Ruby’s AASM gem with Delayed Job.

Hopefully can launch the v1 early next week, rolling it out to 25% of users and then monitoring costs and usage before ramping it up to 100% within a week or two.

Plus normal support and maintenance like fixing this lovely bug that has probably lost me a bit of money over the years:

LearnGPT EmergentMind

I renamed LearnGPT to EmergentMind for reasons outlined in this post. Feels like the right move long term.

Other things:

  • Last week Andrej Karpathy, one of the leading AI educators in the world, demoed LearnGPT in the first 2 minutes of his recent intro to GPT lecture on YouTube. That explains the traffic spike 📈.
  • Milan and I are working on a big redesign to the site which should ship late next week or early the following week. You’ll get to see the difference between what I can do as a developer who is adequate at design and what a talented designer is capable of 🌈.
  • I started an EmergentMind Discord which is up to 13 people. I definitely feel like an old man though figuring out how to use Discord. At the moment, I’m just sharing product updates in there. TBD what it winds up being long term.
  • Various updates to EmergentMind: adding an account page so users can manage their account, including deleting it if they choose, as well as changing their password and email (for users that signed up via email and password and not Google OAuth). Also added an “About” field there which is displayed on new profile pages for EmergentMind users. Here’s mine. Not a bad v1 profile page, but looking forward to Milan redesigning it in the future.
  • Spent some time exploring the prompt engineering space, which is the tentative direction I’m taking the site. There are already a lot of tools like EveryPrompt and some educational sites like that EmergentMind may or may not wind up competing with. We will see.

Thanks for following along! 🙇‍♂️

LearnGPT is now EmergentMind

Naming things is hard.

Shortly after ChatGPT launched at the end of November, I decided to build a site to share ChatGPT examples and eventually be the home to educational content to help people learn more about GPT.

To my surprise, there were a lot of relevant available .com domain names related to GPT, so I registered a bunch and asked for suggestions on Twitter for which to use for the site:

And so I chose LearnGPT and for the last month and a half that’s been the name of the site.

On its surface, it’s a great name for a site focused on teaching people about GPT.

But, it has some issues:

  • People kept referring to the site as “Learn” in conversation because saying “Learn GPT” is clunky. “How’s ‘learn’ doing?” (looking at you Dave…)
  • In two years will we still be talking about GPT or one of the many other Large Language Models (LLM) coming out? Incorporating content on the site about them would be awkward if the name of the site referenced GPT.
  • And most importantly, the name “Learn GPT” meant that the site would forever be constrained to being an educational site about GPT. That likely meant monetizing it down the road via an info product which wasn’t interesting to me at all, so much so that it almost led me to shut the site down.

The hunt for a new name

I wrote a little Ruby script to search for available .ai domain names, hoping to find one to rename LearnGPT to:

… but unregistered quality .ai domains are few and far between, so that approach didn’t lead to any good candidates for a new site name.

Then it occurred to me… I already own a great domain I can use for the site.


Around 2014 I got very interested in the concept of emergence and created a site called Emergent Mind to build little projects to explore the space more. In the end I wound up creating 10 interactive visualizations: Boids, Game of Life, Cellular Automata, Tree Growing, Biomorophs, The Evolution of Color, Animorphs, Forming a Planet, The Perceptron, and Neural Network.

You can still play around with them if you’d like courtesy of

EmergentMind archive

It dawned on me recently that the name “Emergent Mind” was a great description for the end result of these Large Language Models like GPT: a mind of sorts that emerges from the machine learning process.

I didn’t own the Twitter handle @EmergentMind but thankfully its owner was kind of enough to give it to me for free which solidified my decision to use it as the new name for LearnGPT.

What’s next for EmergentMind?

In the course of integrating GPT into Preceden recently, I realized just how difficult prompt engineering can be. You might have some task in mind for GPT or another LLM, but what’s the best way to ask the question to get a great answer? It’s as much of an art as a science, and I think there’s an opportunity to build a community around this nascent skill.

So, instead of focusing on GPT, I’ve decided to focus on building a site for people interested in prompt engineering. Imagine educational content, tools, and a Stack Overflow-like community all built from the ground up, infused with AI, to help people learn to communicate with these new AI technologies more effectively.

And the name is flexible enough that if that prompt engineering direction doesn’t make sense long term (will prompt engineering still be a thing in a few years?), it’s easy enough to pivot without another name change.

Here we go 🚀.

Turning Down $7k for a Side Project I Announced Two Weeks Ago I was Shutting Down

That’s a lot of flip flops 🤣 (#)

About two weeks ago I announced I was shutting down LearnGPT. After the announcement, I received a lot of interest from people interested in taking it over, so I decided to try to sell it instead of shutting it down. I wound up receiving two offers, one for $6.5k and one for $7k, and the person who made the lower offer later said they’d be willing to offer more, so figure I might have gotten $8k-$9k after some negotiation. But, after a lot of deliberation, I turned down both offers.

The problem with LearnGPT

At the beginning of the year I finally went full time on my SaaS business, Preceden. I also had recently launched LearnGPT, a site for browsing, sharing, and discussing interesting ChatGPT prompts. But after a few weeks of working on it, I found myself not interested in working on it anymore for a variety of reasons:

  • I had 2 contractors working on it (one adding content to the site, one marketing it) and their combined burn rate was several thousand dollars a month. Not the end of the world, but…
  • The clearest path to making money from LearnGPT was to create and sell an info product, something I had zero interest in writing or hiring someone to write
  • LearnGPT was consuming a lot of headspace and time, and I was losing a lot of sleep trying to figure out what to do with it
  • I wasn’t terribly excited about my short term plans for it (adding a News and Apps section), which would wind up making it very similar to /r/ChatGPT.
  • I have a lot of plans for Preceden, and every minute I spent working on LearnGPT would take me away from that, the thing that’s actually making money and supporting my family right now.
  • It started to feel like a job and I started to resent it for that reason (remember, I just left my contracting job).

I also just had a friend who sold his SaaS business and he estimated it took him about 150 hours to go through the whole process. I didn’t want to spend a bunch of time trying to sell a pre-revenue site, which is why I elected to just shut it down, but after the acquisition interest started coming in, I decided to try to sell it quickly and then switch back to focusing on Preceden.

But, in the end, I decided not to sell, despite the two decent offers.

Why not sell?

One path I hadn’t fully considered was the possibility of pivoting LearnGPT into something that would excite me enough to continue working on. I was so stuck on this idea of needing to create an info product to monetize the site that I didn’t consider my other options. The reality is I had (and have) a lot of options:

  • What if I lowered its burn rate? It might mean less marketing efforts, but it would reduce the pressure on me to monetize the site, allowing me to work on it for fun instead of treating it as a new business that I had to monetize.
  • What if I just worked on it when it excited me enough to work on it (vs blocking time off on my calendar to devote to it)?
  • Is there a path to building a product here (which is what I really enjoy doing)?
  • Can I change to the focus away from ChatGPT examples toward something that’s going to be interesting and motivating for me to work on long term?

Thankfully, after a lot of brainstorming and mulling over my options, I’ve arrived at a tentative vision for the site that does excite me, but it’s going to require a lot of changes.

Later today I’m going to make the first of those changes: changing LearnGPT’s name.

More on that in my next post :).

Indie Hacking Week 2 Recap – TimelineGPT Progress, LearnGPT Decision Time

For Martin Luther King weekend my family and I headed to Boone, North Carolina and stayed in a cabin for a few days. We went snow tubing at Beech Mountain while we were there, one of the many ski resorts in the area.

As is common on vacations, I spent way too much time thinking about work. But on the bright side, at least now I’m thinking solely about my own projects and not contract work as well 😅.

TimelineGPT Progress

TimelineGPT – the name of the AI content generation feature I’m working on for Preceden – is coming along well:

My tasks this week included:

  • Moving the actual content generation to a delayed job because it can often take 20+ seconds and I don’t want to tie up Heroku dynos or have the request timeout while the user is waiting
  • Lots more work to parse the myriad of date formats that GPT returns
  • UI work with Milan, Preceden’s designer, including figuring out where the place the buttons, managing their states (like disabling them when appropriate), etc
  • Giving users a way to bulk delete all AI suggestions they’ve previously added to their timeline
  • Handling the UX for users on the free plan who are limited to 10 events per timeline

Lots more to to do though including:

  • Rate limits (per user, and overall) to avoid bad actors racking up excessive OpenAI fees for me
  • Better duplicate identification so if the user already has the same event on their timeline, this tool doesn’t recommend they add it again
  • Giving users a way to choose which layer they want the suggestions added to

Coming along well, but probably another week or two of work before it’s live.

LearnGPT Decision Time

Earlier this week I announced that LearnGPT was for sale. I’ve received 2 offers so far and the deadline to get an offer in is the end of today. At that point I’ll have some big decisions to make: sell it or keep it, and if I decide to keep it, what does its future look like? We will see.

I would not recommend entrepreneurship to anyone who doesn’t want to face a never-ending series of hard decisions.

Adios for now 👋.