
HabitGraph
Track habits with a tweet.
I missed a few days posting here, so sharing a few of the updates I made on X the last few days:
More improvements to the habit carousel when multiple habits are logged in a day. Controls moved above the tweet view.
Misc. improvements to updates and syncing.
Links in bio are now expanded properly.
Improvements to streak stats.
Fixed Playwright (E2E) tests.
Improvements to how we handle time boundaries.
Improvements to the habit grid.
Improved how modal works on mobile.
Fixed issues with habit consistency.
Other updates:
I'm wicked impressed by Stripe Atlas. We finally pulled the trigger on incorporating our new app.
I submitted to Stripe Atlas on Friday and then already got the incorporation confirmation Monday morning and the EIN Tuesday morning π€―
The funny thing is I spent most of Friday morning looking for ways to do it better/faster/cheaper. E.g. they only do Delaware (LLC or C Corp) and DE no longer allows the Registered Agent and physical address to be the same, which is a pain. So I looked at Wyoming and Nevada, both of which still do.
There were other reasons as well, but after you factor in the simplicity, time savings, legal templates and startup perks (e.g. $5K in AWS credits among other things), it makes sense to just use Atlas, take the W and get back to building π
Build in public day 37/100: We launched the React rewrite and still have some things to polish up. But wanted to share a cool new feature: You can now add check-ins for past days or use it to make check-ins for things you don't tweet (demo below).
This is useful if you happen to log an update past midnight that you need to count for the previous day, or maybe you were away and need to log updates for multiple days.
We tried using AI for this and it's decent but just not consistent enough yet, especially when you work so hard for those streaks π₯
Along with the rewrite we fixed a ton of stuff along the way and also setup full E2E testing (Playwright, etc.) to be able to deploy faster and with more confidence.
Demo in tweet below since it's too large to upload here.
π οΈ Build in public day 37/100: We launched the React rewrite yesterday and still have some things to polish up. But wanted to share a cool new feature: You can now add check-ins for past days or use it to make check-ins for things you don't tweet.
This is useful if you happen toβ¦ pic.twitter.com/tYb6RCgMBFβ Gabe Mays (@gabemays) April 3, 2025
1 Like
Comment
Build in public day 33/100: I'm building taxonomies for habits so we have relationships and users can easily discover new ones.
I started working on a scraper, but when I noticed there weren't any high quality sources I realized AI could probably do a better job since it has access to research papers, etc.
That made me realize 1) it's been a few years since I needed to do something like this and 2) the 'ChatGPT moment' was only just over 2 years ago π€― The equivalent might be 1995 (2 years after the "internet" moment) or 2009 (2 years after the iPhone) for past secular trends. We're still just at the beginning, but wild how far it has come.
Anyway, I'm excited about the taxonomies, I think they'll do a good job in helping new users start strong along with some solid onboarding flows.
1 Like
Comment
Build in public day 32/100: Good progress, but we're wrestling with getting env var decryption working in DEV on Laravel Vapor, reached out to their team.
This hiccup aside, the Laravel ecosystem is insanely good to build on, especially since the Laravel team acquired and started maintaining Inertia.
Livewire is still decent for a fast/simple MVP, but Inertia + React/Vue is great since it keeps you from needing whole API as your app evolves.
1 Like
Comment
Build in public day 30/100: So I hit day 30 of my 30 day challenge and decided to extend it to 100 π
For this update I wanted to share something from our other app (a quiz app for Shopify). I use ChatGPT daily, but for some reason never thought to use it to summarize bugs and create issues.
A customer had an issue, so we discussed it in Slack. The unusual condition was a customer uninstalled the app then re-installed it. This is pretty rare since typically once they have a quiz that drives conversion they keep it and often create more.
I dropped the slack discussion in and it wrote a surprisingly good, concise story (screenshot below). I was pretty impressed, particularly because it included more detail than I usually would.
The GitHub integration for Slack adds a 'Create an Issue' option in the 3 dot, but it would be nice if AI automatically generated the description based the context of a thread like this.
Assuming you have a relatively simple and and E2E testing setup (e.g. Playwright, etc.) I think we're pretty close to having something that can autonomously test and fix things to ensure the core user flow is bug-free. Once that's all setup the velocity will be much higher, especially for such a tiny team.

2 Likes
Comment
Build in public day 29/30: Today focused on Playwright tests and fixed bugs as we went along. Hope to have full coverage tomorrow, then take another pass at controller and components to simplify and declutter with the new tests passing. Then we'll be in a good spot to deploy the React rewrite (initially wrote it in Laravel Livewire).

1 Like
Comment
Build in public day 28/30: I changed my opinion on vibe coding today. It can help you move extremely fast under certain conditions. Will show a couple things off later this week.
The requirements today seem to be having relatively small codebase with well-documented frameworks/libraries (e.g. Laravel and React) and solid guardrails (E2E tests, plenty of examples, etc.). This will change as models improve.
That takes expertise up front to plan/architect things right and the ability to dig in and fix things when they go off the rails, under the right conditions you can really move 10X as fast.
Vibe coding will continue to get a bad rap as novice users get in over their heads, but over time a few things will happen:
1. New boilerplate kits will emerge with the right setup/examples/foundations/prompts to better keep AI on the rails.
2. Services built specifically to help fix/undo vibe coding issues and make it more fault tolerant (like an intelligent version control e.g. w/smart branching).
3. The AI will continue to improve and raise both the ceiling and the floor.
As AI improves today's coding will feel like writing assembly in a few years. Why? Because technology moves ever upwards towards higher levels of abstraction. It always has and always will.
It'll still take a while for it to be good enough for the enterprise broadly since large companies have so many undocumented frameworks/libraries, multiple versions, complex codebases, etc. But that'll also get solved in time, especially as 'enterprise software' as we know it goes away.
1 Like
Comment
Build in public day 27/30: I forgot to post last night, so this update is for yesterday and hopefully saves you a bunch of time researching incorporation/formation.
One of the best things we did early was incorporate with Stripe Atlas since it minimized what we had to change later. Atlas makes formation (DE LLC or C Corp), EIN, basic documents and templates, as well as getting a bank account and registered agent setup extremely easy. The templates were useful later and saved us a ton in legal expenses.
On top of that, Stripe Atlas includes a number of discounts for other services once you're setup. You can also get a discount on Atlas itself if you do YC's free online Startup School program, which also includes perks like $5K in AWS credits and others. It's $500 full price, but we paid only $250 with the discount from YC's free Startup School program (which I assume they still have).
The downside is that I wish you could incorporate in other states like WY or NV, but I get that they need to streamline it with one state.
One other thing I'd say is if your company is growing well and you have confidence in it long-term, then incorporate in your product's name (as C Corp if you plan to fundraise). But if you're uncertain, incorporate as a more generic 'holding company' name so you can pivot, launch different products, and experiment as much as you like without the hangover of an old product name.
C Corp or LLC? An LLC is much simpler to manage than a C Corp, which has more complex taxes, filing requirements, management, etc. and is only worth it if you need what a C Corp uniquely offers (e.g. better for fundraising or other situations you can ask your favorite LLM ).
Lastly, why use something standardized like Atlas, what if you want to do something different with your structure? Short answer: don't. Innovate on your product, tech, distribution, etc. but don't innovate on corporate structure or anything like that. Unless it's a core competency of your business, it's more trouble than it's worth and can create big issues long-term.
Relevant links:
Stripe Atlas: https://stripe.com/atlas
YC's free Startup School online course: https://www.startupschool.org/
1 Like
Comment
Build in public day 25/30: Finding it's really hard to consistently have the AI distinguish a habit check-in from today vs. yesterday in πtreeks, especially with the tiny context of a tweet.
It's just not a big enough problem to solve right now, so we'll probably just add the UI to adjust the date of a check-in if needed and circle back to doing it with the AI later. In the meantime, the AI will only get smarter π
2 Likes
Comment
Build in public day 24/30: Porting from Livewire to Intertia + React ended up more time consuming than expected. We tried Claude Code with it and wow. It did it for $8.82 and did a pretty good job.
We still have to do some tweaking/testing to make sure we have full parity, but I'm impressed π€―
It even took some creative liberties, like it got rid of the tweet oEmbed hover and made them appear elegantly below the grid, so weβll see if we want to keep that.
Every time I think Iβm impressed with AI, I just get more impressed. The future is insanely bright π₯
2 Likes
Comment
About
Confession: I'm obsessed with habits. Over the last decade I've had multiple 1,000+ day streaks and used dozens of habits, but they all felt short. So I built the habit app I always wanted: I tweet and it logs my habits.

Comment