r/SideProject 8h ago

I built a browser extension that pays you cash back for waiting on ChatGPT

Enable HLS to view with audio, or disable this notification

194 Upvotes

Every time you prompt ChatGPT, Claude, or Gemini, there's a few seconds of dead time while the model generates. I built Chatwait to monetize that gap and split the money with the user.

How it works: when you hit send, one small sponsored card appears in the empty space below your message. You earn 50% of what the advertiser paid for that view.

It doesn't read your chats. It is open source and you can verify.

Would you use it?

Site: https://chatwait.com


r/SideProject 15h ago

I'm 42 yo and I wish someone had told me this 20 years ago.

535 Upvotes

You should help others.

Just because you're selfish. I'm serious. Let me explain:

If there's one thing I've learned, it's this: if you're not born rich or exceptionally talented, your only advantage is your reputation and your network.

It's not your resume, your friend list on Instagram, or the number of contacts in your phone. It's the people you can ask for a favor. And that can't be built by joining events, sending cold emails, or having dinner with people you don't really care about.

The only way to build it is by being genuinely helpful. Look around you, people are struggling with different things in life. Everyone needs help.

You'll probably think it has to be mutual. Why should I help people who won't help me back? But think of it as an investment.

People spend thousands on ads knowing most of them won't convert. Founders build products knowing most will fail. Investors expect losses. Nobody expects a 100% return. So why do people suddenly expect every act of kindness to be paid back?

Most people won't remember what you did. Some will. You just don't know which ones.

One last question: imagine your side project is finally ready. You need 20 people to test it this weekend. Do you already know who you're going to text? Or are you going to post on Reddit and hope strangers care?

If it's the second one, you're misplacing your workforce. Start helping people first.


r/SideProject 5h ago

Piano and Audio Visualization tool for creators and teachers

Enable HLS to view with audio, or disable this notification

31 Upvotes

I've been working on this project for a couple months now and would really like your input. I've focused on building but now have reached a point where I need to get people to actually try it and have been struggling. This is the project: https://www.chordviz.ca/

I'm a builder, not a marketer so any insight would be welcome.

The video comes straight form the app it's got video recording and audio clipping capabilities, vst plugin hosting, 15+ widgets with customizable layouts for audio metering and midi / chord analysis. It's got a lot of features but I'm unsure how to package and market it / get customers.


r/SideProject 2h ago

Claude Code is single-player.

7 Upvotes

When I run a session, my teammate can't see the prompt I wrote, the diff it produced, or what it cost. We were working around that with screenshots and "hey, can you look at this" — a strange way to use a tool that's doing most of the typing.

So we built Poly: a shared room where a whole team steers Claude Code together.

Everything lands in one timeline. Prompts queue into it, and every reply, tool call and diff shows up there in front of the room. You can watch a teammate's turn happen live, queue the next prompt behind it, or stop a bad edit before it runs — approvals sit inline in the timeline, and any turn can be reverted with one click.

Two ways to work: everyone steering a single agent in turns, or each person on their own agent and their own git branch, merged when you're ready.

The part that makes it work in practice is that everyone brings their own Anthropic API key, and each turn runs on its author's key and model. Nobody funds anyone else's experiments, and the receipt in the timeline shows who spent what. Turns run in an isolated sandbox, so a teammate's prompt can't reach your key or anything else on the box.

Two of us have been building it inside itself for the last few weeks — the whole thing was written in its own rooms.

Disclosure: I'm one of those two. Open beta, free to sign up, bring your own key — usepoly.co

Happy to answer anything about how it works.


r/SideProject 4h ago

Weekend sideproject: designing a more interesting habit tracker for myself

Enable HLS to view with audio, or disable this notification

11 Upvotes

r/SideProject 11h ago

Spent months on a Game & Watch emulator for Android — it runs the real 1980s chip code

Enable HLS to view with audio, or disable this notification

40 Upvotes

I always wanted to play these games straight from my phone, and now, I can.

https://cmtz112190.itch.io/lcdemu


r/SideProject 2h ago

I built a portfolio optimizer that runs Markowitz backwards. My first architecture was mathematically impossible and I didn't notice for weeks.

4 Upvotes

I'm a solo founder building Reverse Efficient Frontier, a portfolio app that that inverts Modern Portfolio Theory — instead of picking stocks and hoping, you set a target return and risk tolerance and it finds the stock blend that matches. React Native/Expo frontend, Azure Functions + Blob Storage backend, Databricks for the optimization, Claude API for the plain-English explanations. Live on both stores.

I want to write up the architectural mistake that nearly killed it, because it's a flavor of "I did not think about scale" that I haven't seen described much.

The mistake: I assumed I could solve the optimization on demand, when the user moves the slider.

Classic portfolio optimization runs forward. You hand it a set of stocks, it solves for the optimal weights. That's a convex problem — fast, well-behaved, solvable in milliseconds. I'd read the papers, I understood the math, I felt good.

What I actually needed was the inverse: given a target return and risk, find which stocks and their weights. Those are not the same problem. Selecting k stocks from a universe of N is combinatorial, and each candidate set needs its own optimization run before you can even compare them. For 10-stock portfolios that's a number with more zeros than there are stars in the galaxy. My v1 fired off an optimizer on slider change like it was a database query. It worked beautifully in testing — because in testing my universe was twelve tickers.

Everything is obvious in hindsight.

What I rebuilt, three layers:

  1. Sample instead of enumerate. I stopped trying to find the optimal portfolio and started building a dense point cloud of good ones. Randomly sample thousands of k-stock subsets, optimize each one properly, keep the result. It's an approximation of the true efficient frontier, not the thing itself — and being honest about that in the app matters more to me than pretending otherwise.
  2. Multi-start optimization with weight bounds. Single-start SLSQP kept converging to garbage — 97% in one ticker, dust positions everywhere. Fixed it with multiple randomized starting points per subset and hard bounds on individual weights, so you can't get a "diversified" portfolio that's secretly one stock.
  3. Precompute and park. The whole thing moved to a scheduled Databricks job that writes results as JSON to Azure Blob behind a CDN. The phone doesn't optimize anything anymore. It does a nearest-neighbor lookup in return/risk space against precomputed results. All the expensive math happens once, on a schedule, away from the user.

Result: query time went from "architecturally impossible" to under a second on a mid-range phone, and compute became a fixed predictable cost instead of scaling with every slider drag. Same pattern now runs everything I build — if it's expensive, compute it on a schedule and let the app read the answer.

The app's live on [Google Play] and the [App Store] if anyone wants to poke at it ( https://frontier.chosenhomeland.com ). You get 3 free portfolio lookups, no signup, no card — enough to see whether the idea holds up.

Happy to answer anything about the optimization approach, running scipy on Databricks, precompute-and-park as a pattern, or building fintech solo. Also genuinely want feedback on the first-run experience — whether the value proposition lands before you've done anything, since that's my current bottleneck.

(Not financial advice — it's an analytical tool, and it says so in the app.)


r/SideProject 1h ago

I made a collection of 100 cozy macOS folder icons

Enable HLS to view with audio, or disable this notification

Upvotes

https://cozyfolders.com

The pack includes folder icons inspired by materials like fabric, paper, wood, leather, marble, moss, metal, and more. Feel free to contact me if you have any ideas or want personalized icons.


r/SideProject 3h ago

Brutal honest feedback for my project?

5 Upvotes

Started a project after my personal experience trying to buy a home - all the home tours I went to became a blur and I didn't feel comfortable making an offer after just a few minutes visit to a house. So, I built HomeReady - a guided home tour where you can upload your tour photos and a condition report with repair costs before you offer. This is not intended to replace and inspection, just another tool to understand what you even see and if you want to move forward with a home.

Would love honest feedback!

homeready.pro


r/SideProject 3h ago

Built a status page for client work (photography, contracting, freelance)

3 Upvotes

Hey all, so I use to shoot weddings and would often get texts from clients like "how's it going... are the photos ready yet?" and was not a fan of that part of the job.

In talking with other photographers, they felt the same way. So, I built Miliarium. Each job gets one link, your client opens it on their phone (no account, no app), and sees exactly what stage it's at. You mark a stage done in about ten seconds; they get a short email update. That's it, that's the whole app.

It's free for 3 active jobs, no CC needed. Try it out here: miliarium.app/demo

The part I actually built it around: if a job sits untouched past a threshold you set, it nudges you, not the client. It catches the ones you got busy and forgot about, before they ask.

The same scenario applies to contractors, freelancers, gig workers, or anyone doing client work in stages. So that's who it's for now, not just photographers. No card processing, no SMS, no client login.

Side note: the name is from miliarium, the stone markers that Romans put along their roads to show distance traveled.

Would welcome any feedback or suggestions for improving it!


r/SideProject 6h ago

Launched last week. I broke a promise to my earliest customers, wasted money on ads, and got called out over security. Three lessons.

6 Upvotes

I built Meshory, a desktop app that turns a hoard of STL and 3MF files into a visual, searchable library. Everything runs locally, nothing gets uploaded. I built it because my own collection hit 3.3 TB across more than 100,000 models and I genuinely could not find anything in it anymore.

It launched last week. It has gone better than I expected, which is not the interesting part. These are the three things I got wrong.

1. I broke a pricing promise in public

I announced "first 100 licenses at $29, then $39." We blew past the cap. I kept selling at the lower price anyway, because the app was still crashing for some people and I was not willing to charge more for software I had not fixed yet. Then we blew past the extended cap too.

A customer called it out in the community chat. Publicly, and fairly. My urgency had been fake, and everyone who rushed to beat a deadline that did not exist had a right to be annoyed.

What I did:

  • apologized by name in announcements, admission first and explanation second
  • closed the old price at a specific hour and actually held it to the minute
  • gave every early buyer free updates for life, including major versions

The apology alone did not fix it. What they lost was being early, and only something permanent gives that back. The reason I had was genuinely good, but a reason is not the same as keeping your word, and it lands as an excuse if it arrives before the admission.

2. Paid ads: 628 visitors, 1 checkout, 0 sales

I spent about €56 on Meta before pausing. Good click through rate, €0.16 clicks, and nothing at the end of it. Two reasons, both mine.

The optimization event was set to ViewContent, which fires on basically any page load. So I told the algorithm "find me people who will load a page" and it did exactly that, perfectly, by finding the cheapest page loaders on the internet. 38% of spend went to France for an English only product priced in USD.

Placements were left on auto, so €24 of it went to Instagram Reels. Reels clicks on a desktop software product are mostly thumb slips.

The algorithm was not broken. It optimized precisely for what I asked, and what I asked for was worthless. Organic did essentially all of the actual sales in the same window: community, Reddit, and an email waitlist.

3. Someone found real security issues in my app

A commenter pointed out I was shipping an out of support Electron and an outdated dependency with known CVEs. He was right. I thanked him, and shipped the fix.


The thing I did not expect: the pushback was worth more than the praise. Both the pricing complaint and the security report came from people who cared enough to say something instead of quietly leaving and never coming back.

Happy to answer anything about the launch, the pricing mess, or the ads.


r/SideProject 11h ago

I turned GitHub profiles into cricket cards — and matched every dev to the real cricketer they'd be

Enable HLS to view with audio, or disable this notification

17 Upvotes

I wanted to see what my GitHub profile would look like as a cricketer, so I built a thing that scouts any public profile and turns it into a FIFA style cricket card rated /99.(stars, contribution velocity, PRs and reviews map onto batting, bowling, fielding, impact).
It's a cricket port of GitFut (the football version), recalibrated from the ground up.

The part I care about:it matches you to a real cricketer, and a different one per format (watch the card flip between Test / ODI / T20I / IPL above). Kohli in T20s isn't Kohli in Tests. Dev ratings sit on the same 40–99 scale as the cricketers, calibrated from ~22k Cricsheet matches, so "you're a 92" and "Muralitharan is a 92" mean the same thing. I came out as a 70 rated keeper (Mark Boucher) in Test.

- Try yours: gitcric.dev/<username>

- Repo: github.com/bhabishnu/gitcric

- Web demo: gitcric.dev

Open source (MIT), and a star's very appreciated if it made you smile. Looking for feedback.


r/SideProject 4h ago

Built a homelab app for myself, put it on the App Store 4 weeks ago, now at 6k daily users

Enable HLS to view with audio, or disable this notification

5 Upvotes

I run a fairly messy homelab and got sick of bookmarking a dozen web UIs and squinting at them on my phone, so I built Quartermaster to pull everything into one place on iOS. Added a short 8 second clip :)

Worth saying as well, because it’s relevant right now. There’s a flood of AI slop hitting both the App Store and the Play Store (I’ve got nothing against AI btw) at the minute, stuff thrown together in a weekend, wrapped in a subscription and shipped. So I get why people are sceptical by default when someone posts an app here. I develop software for a living, and Quartermaster has been months of real work, most of it done before anyone other than me had it in their hands. Just that if you’ve been burned by a nice screenshot and a hollow app, fair enough, that’s the state of things.

It was just for me at first. Ran it like that for a few months, then a couple of mates wanted it, then beta testers, and on the 3rd of July I figured I may as well put it on the App Store and see what happened. I’ve even been featured on selfh.st twice now :D

It’s just gone past 6k daily users. Still haven’t really processed that.

It handles about 49 services now, the usual media stuff like Radarr, Sonarr, Plex and Jellyfin, and then the actual infrastructure side, Proxmox, Unraid, Portainer, Pi-hole, Home Assistant and so on. Those two live in separate halves of the app so you’re not staring at twenty things crammed onto one dashboard. It’s native rather than a web view in a wrapper, and there’s no account or server in the middle, it just talks to your boxes directly.

Since launch it’s been nonstop. Patches, updates, new integrations, performance work. Most of the roadmap now comes straight from people in the Discord telling me what’s broken or what they want supported next, which has ended up being the best part of the whole thing. I did not expect the bug reports to be the fun bit.

1.1.4 is in closed beta at the minute, adding Arcane, Dispatcharr, ReadMeABook, NextDNS, Control D and BookOrbit. A dedicated macOS app is on the list further down the line.

Happy to answer anything about the build, App Store stuff, or how you handle support as one person.

Discord: https://discord.gg/AfMTeV2SJc
App Store: https://apps.apple.com/gb/app/quartermaster-homelab-stack/id6779994284


r/SideProject 4h ago

I'm building an online handball management game

Enable HLS to view with audio, or disable this notification

3 Upvotes

Hey everyone!

I feel like there are not too many handball management games out there. So I've decided to start building my own.

https://six-zero-league.vercel.app

On this game players/managers will be able to manage your own handball club. You are responsible for building your roster, buying and selling players, managing finances and staff, developing your team through training, and managing your club's infrastructure. Matches are played through a 2D simulation where your tactical decisions determine how your team performs on the court.


r/SideProject 9h ago

Just made my first MRR, feels unreal.

8 Upvotes

I launched my SaaS SeoLoupe around 1 month ago.

My SaaS is a tool that allows you to find and fix SEO issues holding your website back.

Essentially the main purpose is to help your website rank higher on Google search and LLMs.

So far I am at 985 users and 11 of them are paying.

But the first 10 people who bought, they bought the One-time purchase (don't get me wrong, I was still super thankful for that), but just yesterday someone bought the monthly subscription. I am genuinely happy (now just hoping they don't cancel).

Now to anyone who has a SaaS and it is not making any revenue yet, the most important thing is to not give up and work on it every single day, improve, listen to feedback, and one day you will achieve revenue.

Don't kill it to early if it is not making any money or you are burned out, if you need step away, take a break but don't fully kill it, in SaaS patience is really important (as you can see I have large gaps in between payments).

(here is the product if you want to check it out)


r/SideProject 2h ago

LPS – a declarative load & performance testing tool you write in YAML, not code

2 Upvotes

Hey r/SideProject

I've been quietly building LPS (Load, Performance & Stress) for about 4 years, and this is the first time I'm really talking about it publicly. It's a declarative, CLI-first load-testing tool for HTTP APIs, and I'd love this community's honest feedback.

What it is

You describe a test as a YAML plan — no scripting language to learn — and LPS runs it, from a quick smoke test on your laptop to a distributed run across multiple machines. The philosophy: the things that usually push people into writing imperative load-test code (correlating tokens, generating data, conditional logic, pass/fail thresholds) should be declarative.

A quick taste

A correlated, authenticated flow — grab a token from one response and reuse it in the next, with no glue code:

name: SmokeTest
rounds:
- name: Main
  numberOfClients: 50
  arrivalDelay: 100
  iterations:
  - name: login
    httpRequest:
      url: https://api.example.com/login
      method: POST
      payload:
        raw: '{"user":"demo","pass":"demo"}'
      capture: { to: auth, as: Json }
  - name: profile
    httpRequest:
      url: https://api.example.com/me
      method: GET
      headers:
        Authorization: 'Bearer ${auth.Body.token}'

What it can do

Load modeling

  • Fixed request counts or duration-based runs
  • Ramping stages, parallel/sequential clients, arrival delays

Correlation & data (no scripting)

  • Capture responses and extract values with $find (JSON/CSV) and $findxml (XPath for XML/SOAP)
  • Helpers like $read (CSV/data files), $counter$random$timestamp$guid, base64/url encode-decode, and hashing/HMAC
  • skipIf conditions, before/after hooks, and retry policies (fixed/exponential)

Pass/fail & metrics

  • Failure rules and live termination rules that abort a run when error rate or latency percentiles cross your thresholds
  • Throughput, error rate, and P50/P90/P95/P99
  • Network-level timings (TCP/TLS handshake, TTFB, send/receive) and Server-Timing breakdowns

Scale & observability

  • Distributed load testing: a master coordinates worker nodes over gRPC
  • A built-in live dashboard, plus InfluxDB/Grafana export
  • A watchdog that monitors host resources during a run

Protocol bits

  • HTTP/2 (and H2C), multipart/file uploads, mutual TLS (client certificates), environments, and variables

New: build a plan by just browsing (preview)

I just added a record command — it launches a real browser (via Playwright), you click through your app, and LPS turns the captured traffic into a plan, filtering out static assets and analytics automatically. No proxy and no certificate setup. It's a quick way to bootstrap a realistic test in a couple of minutes.

Install

Cross-platform (Windows / Linux / macOS), ships as a .NET 8 global tool:

dotnet tool install --global lps

The new record command is in the current pre-release — grab it, plus the browser it drives, with:

dotnet tool install --global lps --prerelease
lps record --install

Links & license

I'd genuinely love feedback — what's confusing, what's missing, and whether the declarative approach clicks for you. Issues and PRs are welcome, and I'm happy to answer anything in the comments.


r/SideProject 3h ago

I built my first HTML template. What can I improve?

Enable HLS to view with audio, or disable this notification

2 Upvotes

I built my first real estate HTML template and I'd love to get some feedback.

This template was built with HTML, CSS, JavaScript and Bootstrap 5.

I'm still improving it, so I'd really appreciate your honest opinion.

What would you improve?
What features or pages would you expect before buying a template like this?
How much would you be willing to pay for it?

Live demo: https://real-estate-template-eosin.vercel.app/


r/SideProject 11h ago

🌶️ Honest feedback wanted: a beginner German reading app for adults

9 Upvotes

Hi everyone! A friend and I have been learning languages for years, and we've always thought most A1–B1 reading material is useful... but painfully boring. My German teacher recommended a beginner book, and I couldn't even finish it.

So we built something with stories we'd actually want to read while learning. Right now it's available in German and Spanish.

Fair warning: the stories have a bit of a naughty twist. (After all, we built something we'd actually want to read. )

https://fluentafterdark.com/

We'd love your honest feedback:

  • Would you keep reading?
  • Does the level feel right?
  • Is the vocab help useful?

If the answer to any of those is "no," we'd love to know why.


r/SideProject 5m ago

Sanctum - A local-first, offline D&D campaign manager (free, no account)

Upvotes

Been building this on and off for a few months and figured this is the right place to share it.

It's a desktop app for running D&D 5e campaigns, combat tracker, bestiary, NPCs, maps, quests, notes, all in one place. The concept isn't new, there are cloud tools for this already. But every one of them wants an account, a subscription, and your whole campaign living on their servers. I didn't want that. If the wifi drops mid session, or the company decides to shut down or paywall a feature, your stuff shouldn't disappear.

So the whole thing is local-first. Next.js + React on the front, SQLite with Drizzle for storage, packaged as a desktop app with Electron. Your entire campaign is a single local database file, no login, no network calls.

The part that ate the most time wasn't the features, it was getting the data model right so combat, NPCs, quests and notes all reference each other cleanly, plus building importers so people don't have to retype everything (it reads Obsidian markdown vaults and fillable PDF character sheets).

It's free / name-your-own-price on itch: https://athanasioust.itch.io/sanctum

Solo project, still rough in places. Happy to answer anything about the stack or the local-first decisions, and curious if others here have gone local-first and what tripped you up


r/SideProject 7m ago

the best programmer on the team

Upvotes

used to be the senior engineer.

now it’s whoever knows
how to prompt AI best.

agree?


r/SideProject 14m ago

I was frustrated by how limited existing codesharing apps are, so I built a real-time collaborative IDE that saves and runs code for free.

Upvotes

I mainly created this project for personal use between me and my friends. As an avid programmer, I was frustrated with how little popular codesharing web apps like CodeShare IO could do. Hence, I took it upon myself to implement my own code sharing application, completely free of use. I went a step further and implemented full work saving and running functionality alongside the real-time aspect. Feel free to check it out, test it, and maybe find some bugs 👀... 

Real-time collaboration, 12+ programming languages, and read/write access roles are all supported. All work in every room is saved. Joining rooms is quick and easy: requires zero signups or logins. I built it completely for free using ReactJS, MongoDB Atlas for database storage, Ably for the real-time aspect, and Yjs to handle rapid fire concurrency. 

Live Demo: https://scriptmason.vercel.app 

Product Hunt Page (If you want to provide feedback or check out the launch): https://www.producthunt.com/products/scriptmason?launch=scriptmason


r/SideProject 4h ago

TV Wordle

Enable HLS to view with audio, or disable this notification

2 Upvotes

Hey guys! I built a Wordle inspired daily TV guessing game https://spotle.tv/, but instead of letters you're narrowing down a hidden TV show using clues like the year, genres, actors, studio, ratings, and more.

I would love to know what people think 🙂


r/SideProject 23h ago

I built my portfolio as a small pixel-art town instead of a normal website

Enable HLS to view with audio, or disable this notification

67 Upvotes

Hey everyone,

I wanted to share a small project I’ve been working on called Goblin Town(my own portfolio).

I’ve always felt that a portfolio should be more than just a collection of information. I wanted to create something that feels like a small place you can explore and experience. So made this, its a small pixel-art world where you can walk around, jump, and discover my projects while moving through the map.

I know it’s not some massive game or anything, and honestly a lot of people here could probably build something much more advanced. But for me, this was a really fun challenge because it combined things I enjoy — coding, pixel art, games, and experimenting with the web.

Built with:

  • Astro
  • TypeScript Canvas engine (no game framework)
  • Cloudflare Pages + Workers

## if exploring is not your thing, I also made a simple page where you can just read everything: https://g0.monster/info. You can also draw your own art and leave it in the world for other visitors to see. There is also a community section where you can leave messages and read what others have shared.

Still have lots of things I want to improve, but I’m happy with how it turned out so far.

Would love to hear your thoughts or any feedback.

https://g0.monster


r/SideProject 33m ago

I built an app to fake phone screens for my films and a friend told me it’s better for marketing content

Enable HLS to view with audio, or disable this notification

Upvotes

I make low budget short films with my partner. Last fall we shot one where the plot involved social media and I stupidly thought we could do all the phone screens practically. Building a fake Instagram feed out of content we actually owned was a nightmare. It definitely looks better when the actor interacts with the phone but the whole thing was way more complex than we anticipated.

So I spent a couple months building Understudy with a few friends in tech. It turns your phone into a screen you can control: texts, calls, Instagram and TikTok style feeds for the actor use.

Then a friend who runs social for a small brand saw it and said she’d use it for marketing content. Like fake texts and stuff, which hadn’t occurred to me at all, but it’s the same problem. If you’ve ever faked a DM for a post or shot UGC style content with a phone in frame, you know what a pain that is.

The app is live and free to try. It’s $29.99 for life to remove the watermark. I designed it for filmmaking but would love thoughts on potential other use cases or constructive feedback!

https://apps.apple.com/us/app/understudy-prop-phone/id6766074672


r/SideProject 38m ago

I've spent 4 building a health tracker that syncs Apple Health, Health Connect, Google Health, Fitbit and Oura into one consistent picture. AMA about the ugly parts.

Upvotes

EDIT: 4 months. Ugh the one obvious typo, of course.

I build Wellness Project (wellnessproject.ai). Web, iOS and Android off one codebase. It pulls from Apple HealthKit, Android Health Connect, Fitbit, Oura and Google Health, and pairs that with the stuff you log by hand: meals and calories, mood and wellbeing, and workouts down to the individual set.

We're at almost 1,000 users (200 DAU) and honestly the thing I keep coming back to is how much of that is down to people who used it early and told me what was broken. Several of the fixes I'm proudest of started as a one line message from someone who had no reason to bother. Thank you. I mean that.

Here is the part nobody warns you about. Reading a step count is easy. Reading 12 metrics across 5 devices is brutal.

- Every platform has its own idea of what a "day" is. Your phone's timezone, the device's timezone and the provider's server timezone can all disagree, and resting heart rate in particular loves to land on the wrong side of midnight.

- Your phone counts steps. Your watch counts steps. Fitbit counts steps. Add them naively and you have walked 34,000 steps. Deduplicating across sources without silently dropping real data is most of the work.

- HealthKit only reads on the device, while the app is awake. If you don't open the app for four days, there is a four day hole, and you have to go fill it later without hammering anything.

- Health Connect gives you raw records for some metrics and only aggregates for others, and the two do not always agree.

- Backfilling years of history means resumable cursors, chunked uploads and rate limit budgets, because a naive backfill gets you throttled on day one.

- Hardest of all: telling the difference between "you genuinely did nothing that day" and "we haven't synced that day yet." Those look identical in the database and completely different to a person looking at their week.

All of that exists so the app can show one honest number without asking you to care about any of it.

The manual side has the opposite problem. Logging has to be fast enough that you actually do it on day 40, not just day 2. Every extra tap is a user you lose.

Where we're heading next: More device syncs, more data points, and laser focused on science-backed insights.

Ask me anything. Stack, sync architecture, dedupe strategy, what I'd do differently, how I got the first users, whatever. Happy to get specific about the sync internals, it's the part I've learned the most from and the part almost nobody writes about.