<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: kristoff</title>
    <description>The latest articles on DEV Community by kristoff (@kristoff_14e0834b680bea04).</description>
    <link>https://dev.to/kristoff_14e0834b680bea04</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3299580%2Fdf0f333a-977e-4ff8-8972-c3053be04fcc.png</url>
      <title>DEV Community: kristoff</title>
      <link>https://dev.to/kristoff_14e0834b680bea04</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kristoff_14e0834b680bea04"/>
    <language>en</language>
    <item>
      <title>I Built an AI Weight Loss Simulator with Claude Code. It Just Crossed Its First $100 — Here's What Actually Moved the Needle</title>
      <dc:creator>kristoff</dc:creator>
      <pubDate>Sun, 20 Sep 2026 15:31:56 +0000</pubDate>
      <link>https://dev.to/kristoff_14e0834b680bea04/i-built-an-ai-weight-loss-simulator-with-claude-code-it-just-crossed-its-first-100-heres-what-1l9i</link>
      <guid>https://dev.to/kristoff_14e0834b680bea04/i-built-an-ai-weight-loss-simulator-with-claude-code-it-just-crossed-its-first-100-heres-what-1l9i</guid>
      <description>&lt;h1&gt;
  
  
  I Built an AI Weight Loss Simulator with Claude Code. It Just Crossed Its First $100 — Here's What Actually Moved the Needle
&lt;/h1&gt;

&lt;p&gt;I'll skip the "tech stack first" opening. The stack is at the bottom; it's not why this made money.&lt;/p&gt;

&lt;p&gt;This is not a success story. $100 is lunch money. But it's $100 from strangers who found a page on Google, uploaded a photo of themselves, saw a result, and decided it was worth paying for — and for a long stretch before that, the number was exactly zero with plenty of people using the site every day. The gap between those two states is the interesting part.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the Product Does
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://weightlosssimulatorai.com" rel="noopener noreferrer"&gt;AI Weight Loss Simulator&lt;/a&gt; does one thing: you upload a photo, pick how many pounds you want to lose (or gain), and get back a photorealistic before-and-after of &lt;em&gt;you&lt;/em&gt; — same face, same clothes, same background, different body.&lt;/p&gt;

&lt;p&gt;That's it. No calorie tracking, no 3D avatar, no "enter your measurements." One photo, one number, one result.&lt;/p&gt;

&lt;p&gt;Underneath there are a few things that turned out to matter a lot more than I expected:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You tell it where you carry your weight (belly, hips and thighs, evenly, face and upper body), so a belly-first person doesn't get slimmer legs and an unchanged stomach.&lt;/li&gt;
&lt;li&gt;For big losses (50+ lbs) it keeps skin realistic instead of painting on a six-pack.&lt;/li&gt;
&lt;li&gt;A "journey" mode splits a goal into four milestones — −10, −20, −30, −40 — and renders each one from the same photo, then stitches them into a single timeline image.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why I Picked This Niche
&lt;/h2&gt;

&lt;p&gt;Weight loss visualization is an old, weird corner of the internet. There have been "see yourself thinner" tools since the 2010s. Most of them were 3D avatars or face-pinching filters, and if you read the App Store reviews of the paid ones, the median rating is one star: "funhouse mirror," "just squeezes my cheeks," "only shows the face," "I want my $2 back."&lt;/p&gt;

&lt;p&gt;So the signals were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Real, durable search demand ("weight loss simulator", "what would I look like if I lost weight") with nobody happy about the existing answers.&lt;/li&gt;
&lt;li&gt;A visual, emotional outcome. People don't want a number; they want to &lt;em&gt;see&lt;/em&gt; it.&lt;/li&gt;
&lt;li&gt;Image-editing models finally good enough to keep a person's identity while changing their body — which is the exact thing the old tools couldn't do.&lt;/li&gt;
&lt;li&gt;A one-off purchase fits the use case. Nobody wants a subscription to look at themselves thinner.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What Claude Code Helped With
&lt;/h2&gt;

&lt;p&gt;Nearly all of the code, honestly. The Next.js app, the API routes, the fal.ai queue integration, the credit ledger with an atomic "debit only if balance ≥ cost" guard, the Dodo Payments checkout and webhook, the server-side image pipeline with sharp, the SEO pages with JSON-LD.&lt;/p&gt;

&lt;p&gt;But the part I want to be precise about: the thing that got the site from $0 to $100 was not code. It was three product decisions, and Claude Code was useful for those too — just in a different way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. It read the reviews so I didn't have to guess.&lt;/strong&gt;&lt;br&gt;
I asked it to go find what people actually complain about in this category. It pulled ~200 App Store reviews across six competitor apps and a handful of MyFitnessPal forum threads and summarized them into seven concrete needs. "Must still look like me." "Full body, not just a face." "Let me try several target weights." "Let me save it as my lock screen." That list became the roadmap.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. It found the leak in my free tier.&lt;/strong&gt;&lt;br&gt;
I had a free first simulation. Sounds generous. What it actually did was hand over the full-resolution result with a faint CSS watermark on top — meaning anyone could screenshot the exact thing I was trying to sell. Lots of usage, zero payments, and I couldn't see why. Claude Code read the code path, pointed at the watermark overlay, and said, more or less, "you're giving away the product." We moved the degradation server-side: free results now come back at 640px with a baked-in watermark, and the HD version plus a downloadable before/after card is what $1 buys.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. It caught the model under-editing.&lt;/strong&gt;&lt;br&gt;
After switching to GPT Image 2.5, I asked it to regenerate the demo images. The first batch came back with −10, −20, −30 and −40 lbs looking almost identical. It turned out the model is a conservative editor: tell it "noticeably slimmer" and it removes about ten pounds no matter what number you wrote. We rewrote the prompt so each magnitude tier has concrete, checkable anchors — "stomach flat under the shirt, no overhang at the waistband, roughly one clothing size down" — plus a blunt line: &lt;em&gt;if this looks like only 10 lbs came off, it is wrong.&lt;/em&gt; The −40 result finally looked like −40. That's the difference between a user who pays and a user who leaves a one-star review.&lt;/p&gt;

&lt;p&gt;AI can write a lot of code. It does not automatically know what should be shipped. But if you point it at real user complaints and your own code at the same time, it's surprisingly good at connecting the two.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Stack Behind It
&lt;/h2&gt;

&lt;p&gt;Kept deliberately boring and cheap:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Next.js 16&lt;/strong&gt; (App Router), React 19, Tailwind v4, shadcn/ui&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Supabase Postgres&lt;/strong&gt; with Drizzle — a credit account table plus an append-only ledger&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;better-auth&lt;/strong&gt; with Google sign-in&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;sharp&lt;/strong&gt; on the server to downscale and watermark free previews and to compose the before/after and journey cards&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dodo Payments&lt;/strong&gt; as merchant of record — one-time credit packs, no subscription, they handle sales tax&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vercel&lt;/strong&gt; for hosting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Monthly fixed cost is close to zero. Each paid simulation costs a few cents in inference against $1 in revenue, so the unit economics work at any scale.&lt;/p&gt;

&lt;h2&gt;
  
  
  The First $100 Was a Signal, Not a Victory
&lt;/h2&gt;

&lt;p&gt;What $100 actually proves:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Google → landing page → upload → free preview → checkout → webhook → credits granted → HD download. The whole loop works, end to end, with real money.&lt;/li&gt;
&lt;li&gt;People will pay $1 in the moment right after they see the preview. The unlock button lives directly under the result, not on a pricing page. Most purchases come from there.&lt;/li&gt;
&lt;li&gt;A meaningful share of buyers pick the $5 pack instead of the $1 unlock, because the four-milestone journey costs 4 credits. Giving people a reason to want more than one image did more for average order value than any pricing-page copy.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What it doesn't prove: that this is a business yet. It's a machine that has started turning.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Usage without revenue is a diagnosis, not a compliment.&lt;/strong&gt; If lots of people use a thing and nobody pays, the free tier is probably delivering the whole value. Look there first.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The moment of desire is the moment to ask.&lt;/strong&gt; A $1 button under the result converts. A four-column pricing table one click away does not.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reviews of your competitors are a free user-research budget.&lt;/strong&gt; Every one-star review is a spec.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prompt the model in verifiable terms.&lt;/strong&gt; "Realistic" and "noticeably" mean nothing to an image model. "Stomach flat under the shirt" means something.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ship the product people describe, not the one you imagined.&lt;/strong&gt; I thought I was building "see your future self." The users told me the real job was "prove to my brain that 20 lbs actually changed something" — which is why the journey mode and the weight-gain filter (add the weight back onto a current photo and compare) both exist now.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What Comes Next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Let free users generate just the final milestone of a journey, with the intermediate steps locked, so they can see what they'd be paying for.&lt;/li&gt;
&lt;li&gt;More SEO pages around the specific questions people ask ("what would I look like 30 pounds lighter").&lt;/li&gt;
&lt;li&gt;A face-similarity check after generation so identity drift gets auto-retried instead of shipped.&lt;/li&gt;
&lt;li&gt;Actually look at the numbers again once it's $1,000, not $100.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The product is at &lt;a href="https://weightlosssimulatorai.com" rel="noopener noreferrer"&gt;weightlosssimulatorai.com&lt;/a&gt;. I'll write up the credit ledger and the free-preview pipeline separately — those were the two pieces of code I'd reuse in any AI SaaS.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>startup</category>
      <category>showdev</category>
      <category>claude</category>
    </item>
    <item>
      <title>🚀 I Built an AI Tools Directory for Indie Developers</title>
      <dc:creator>kristoff</dc:creator>
      <pubDate>Fri, 20 Mar 2026 06:32:33 +0000</pubDate>
      <link>https://dev.to/kristoff_14e0834b680bea04/i-built-an-ai-tools-directory-for-indie-developers-oob</link>
      <guid>https://dev.to/kristoff_14e0834b680bea04/i-built-an-ai-tools-directory-for-indie-developers-oob</guid>
      <description>&lt;h1&gt;
  
  
  🚀 I Built an AI Tools Directory for Indie Developers — Here’s Why (and What I Learned)
&lt;/h1&gt;

&lt;p&gt;If you’ve been building in the AI space recently, you’ve probably noticed one thing:&lt;/p&gt;

&lt;p&gt;👉 New AI tools are launching &lt;em&gt;every single day&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;And yet… most of them go completely unnoticed.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem: Great AI Tools Are Invisible
&lt;/h2&gt;

&lt;p&gt;As an indie developer, I’ve built and launched multiple products.&lt;/p&gt;

&lt;p&gt;And every time, I ran into the same issue:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You ship something useful
&lt;/li&gt;
&lt;li&gt;You post it on X / Reddit / Hacker News
&lt;/li&gt;
&lt;li&gt;Maybe you get a small spike…
&lt;/li&gt;
&lt;li&gt;Then traffic drops to zero
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not because your product is bad — but because &lt;strong&gt;distribution is the hardest part&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Meanwhile, large platforms are crowded, noisy, and dominated by well-funded startups.&lt;/p&gt;

&lt;p&gt;So I started asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Where can indie developers actually get visibility?&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  💡 The Idea: A Directory Built for Indie AI Makers
&lt;/h2&gt;

&lt;p&gt;That’s why I built 👉 &lt;strong&gt;IndieAI Directory&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A curated place to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Discover AI tools built by indie developers
&lt;/li&gt;
&lt;li&gt;Submit your own product
&lt;/li&gt;
&lt;li&gt;Get visibility, traffic, and backlinks
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Unlike generic directories, this one is focused on a single thing:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;AI tools made by indie hackers&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 Why Another Directory?
&lt;/h2&gt;

&lt;p&gt;Good question — there are already tons of directories out there.&lt;/p&gt;

&lt;p&gt;But most of them have problems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Too many low-quality listings
&lt;/li&gt;
&lt;li&gt;No real audience
&lt;/li&gt;
&lt;li&gt;No SEO value
&lt;/li&gt;
&lt;li&gt;No curation
&lt;/li&gt;
&lt;li&gt;Built for quantity, not usefulness
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wanted something different:&lt;/p&gt;

&lt;p&gt;✔ Curated&lt;br&gt;&lt;br&gt;
✔ Niche-focused (AI only)&lt;br&gt;&lt;br&gt;
✔ Useful for both users &lt;em&gt;and&lt;/em&gt; founders  &lt;/p&gt;




&lt;h2&gt;
  
  
  🔍 What You Can Do With It
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Discover Useful AI Tools Faster
&lt;/h3&gt;

&lt;p&gt;Instead of scrolling endlessly, you can explore tools by categories like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI writing
&lt;/li&gt;
&lt;li&gt;Image generation
&lt;/li&gt;
&lt;li&gt;Coding assistants
&lt;/li&gt;
&lt;li&gt;Marketing tools
&lt;/li&gt;
&lt;li&gt;Productivity tools
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each listing is simple and clear — no fluff.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Submit Your Own AI Product
&lt;/h3&gt;

&lt;p&gt;If you're building something, you can submit it in minutes.&lt;/p&gt;

&lt;p&gt;And here's the important part 👇&lt;/p&gt;

&lt;p&gt;👉 You’re not just getting listed — you’re getting &lt;strong&gt;distribution&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📈 Why Listing Matters (Especially for Indie Devs)
&lt;/h2&gt;

&lt;p&gt;When you're early-stage, you need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Traffic
&lt;/li&gt;
&lt;li&gt;Backlinks
&lt;/li&gt;
&lt;li&gt;Users
&lt;/li&gt;
&lt;li&gt;Feedback
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Directories are one of the easiest ways to get all four.&lt;/p&gt;

&lt;p&gt;By submitting your product, you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improve your SEO (through backlinks)
&lt;/li&gt;
&lt;li&gt;Increase your domain authority
&lt;/li&gt;
&lt;li&gt;Get discovered by early adopters
&lt;/li&gt;
&lt;li&gt;Build credibility
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s not magic — but it works.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ What I Learned Building This
&lt;/h2&gt;

&lt;p&gt;Building the directory itself was actually the easy part.&lt;/p&gt;

&lt;p&gt;The hard part?&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Getting Submissions
&lt;/h3&gt;

&lt;p&gt;People don’t submit unless:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;They see value
&lt;/li&gt;
&lt;li&gt;They trust your site
&lt;/li&gt;
&lt;li&gt;Or they’re already getting traffic
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Lesson: You need to &lt;strong&gt;prove value early&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Curation &amp;gt; Quantity
&lt;/h3&gt;

&lt;p&gt;At first, I thought more listings = better.&lt;/p&gt;

&lt;p&gt;Wrong.&lt;/p&gt;

&lt;p&gt;Too many low-quality tools = bad experience.&lt;/p&gt;

&lt;p&gt;👉 Now I focus on &lt;strong&gt;quality over volume&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  3. SEO Is a Long Game
&lt;/h3&gt;

&lt;p&gt;Directories are powerful for SEO, but:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It takes time
&lt;/li&gt;
&lt;li&gt;You need consistent content
&lt;/li&gt;
&lt;li&gt;Internal linking matters
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Still, it’s one of the best long-term strategies.&lt;/p&gt;




&lt;h3&gt;
  
  
  4. Distribution &amp;gt; Building
&lt;/h3&gt;

&lt;p&gt;Classic indie hacker lesson:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Building is easy. Distribution is everything.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This project is actually my way of solving that problem — for myself &lt;em&gt;and&lt;/em&gt; others.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Who This Is For
&lt;/h2&gt;

&lt;p&gt;This directory is especially useful if you are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An indie developer building AI tools
&lt;/li&gt;
&lt;li&gt;A solo founder launching a SaaS
&lt;/li&gt;
&lt;li&gt;A creator experimenting with AI
&lt;/li&gt;
&lt;li&gt;Someone looking for new AI tools
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔗 Try It or Submit Your Product
&lt;/h2&gt;

&lt;p&gt;If you're curious, you can check it out here:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://indieai.directory/" rel="noopener noreferrer"&gt;https://indieai.directory/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And if you're building something:&lt;/p&gt;

&lt;p&gt;👉 Submit your tool and start getting exposure&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;We’re in a moment where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Anyone can build products
&lt;/li&gt;
&lt;li&gt;AI lowers the barrier
&lt;/li&gt;
&lt;li&gt;But distribution is still the bottleneck
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s exactly the gap I’m trying to solve.&lt;/p&gt;

&lt;p&gt;Not with ads.&lt;br&gt;&lt;br&gt;
Not with hacks.&lt;br&gt;&lt;br&gt;
But with a focused platform for discovery.&lt;/p&gt;




&lt;p&gt;If you’re building in public, I’d love to hear what you’re working on 👇  &lt;/p&gt;

</description>
      <category>saas</category>
      <category>buildinpublic</category>
      <category>sideprojects</category>
      <category>startup</category>
    </item>
    <item>
      <title>I built a privacy-focused tool to crop images into circles instantly</title>
      <dc:creator>kristoff</dc:creator>
      <pubDate>Tue, 06 Jan 2026 15:36:47 +0000</pubDate>
      <link>https://dev.to/kristoff_14e0834b680bea04/i-built-a-privacy-focused-tool-to-crop-images-into-circles-instantly-5447</link>
      <guid>https://dev.to/kristoff_14e0834b680bea04/i-built-a-privacy-focused-tool-to-crop-images-into-circles-instantly-5447</guid>
      <description>&lt;p&gt;Hey Dev.to community! 👋&lt;/p&gt;

&lt;p&gt;I often faced a small but annoying problem: I needed a circular version of an image file (actual PNG with transparency), not just a visual circle created by CSS border-radius.&lt;/p&gt;

&lt;p&gt;Opening Photoshop just to crop a profile picture felt like overkill. So, I built a lightweight tool to solve this.&lt;br&gt;
Meet Circle Crop Image.&lt;/p&gt;

&lt;p&gt;🚀 &lt;strong&gt;What it does&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It’s a simple web utility that lets you upload an image, select a circular area, and download it as a transparent PNG.&lt;/p&gt;

&lt;p&gt;💡 &lt;strong&gt;Key Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Client-Side Processing:&lt;/strong&gt; Your images are processed locally in your browser using the Canvas API. Nothing is uploaded to a server. 100% Privacy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instant Export:&lt;/strong&gt; No sign-ups, no watermarks, no ads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Responsive:&lt;/strong&gt; Works great on mobile if you need to create stickers or avatars on the go.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🛠 &lt;strong&gt;Under the hood&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It relies heavily on the HTML5 Canvas API (ctx.arc, ctx.clip). I wanted to keep it dependency-free and fast.&lt;/p&gt;

&lt;p&gt;I'd love for you to try it out and let me know what you think. Is there any feature you'd like to see added?&lt;br&gt;
👉 Try it here: &lt;a href="https://circlecropimage.dev/" rel="noopener noreferrer"&gt;https://circlecropimage.dev/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for checking it out!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>buildinpublic</category>
      <category>startup</category>
    </item>
    <item>
      <title>Need Quick Placeholder Images for Your Project? Meet BlankImage.org</title>
      <dc:creator>kristoff</dc:creator>
      <pubDate>Thu, 28 Aug 2025 01:47:28 +0000</pubDate>
      <link>https://dev.to/kristoff_14e0834b680bea04/need-quick-placeholder-images-for-your-project-meet-blankimageorg-33h9</link>
      <guid>https://dev.to/kristoff_14e0834b680bea04/need-quick-placeholder-images-for-your-project-meet-blankimageorg-33h9</guid>
      <description>&lt;p&gt;As developers, we often run into a simple but frustrating problem:&lt;br&gt;&lt;br&gt;
👉 We just need a &lt;strong&gt;plain image&lt;/strong&gt; — maybe a solid background color, a rectangle for a design mockup, or a placeholder for testing an API response.  &lt;/p&gt;

&lt;p&gt;And yet, generating these images often takes more time than it should. You might:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open Photoshop or Figma just to create a plain red rectangle
&lt;/li&gt;
&lt;li&gt;Write custom CSS backgrounds when you really just want a PNG
&lt;/li&gt;
&lt;li&gt;Search for stock placeholders that don’t quite fit your required dimensions
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What if there was a faster way?  &lt;/p&gt;




&lt;h2&gt;
  
  
  Enter &lt;a href="https://blankimage.org" rel="noopener noreferrer"&gt;BlankImage.org&lt;/a&gt; 🚀
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;BlankImage.org&lt;/strong&gt; is a lightweight tool that lets you instantly generate blank or solid-color images online. No design software. No boilerplate code. Just input what you need, and download your image.  &lt;/p&gt;

&lt;h3&gt;
  
  
  ✨ Features developers will love:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Custom sizes&lt;/strong&gt;: Need a &lt;code&gt;1920x1080&lt;/code&gt; white image or a &lt;code&gt;400x400&lt;/code&gt; black square? Just type it in.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Solid colors&lt;/strong&gt;: Red, green, blue, pink, black, white — all supported out of the box.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instant download&lt;/strong&gt;: Get a PNG or JPEG version without extra steps.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SEO friendly&lt;/strong&gt;: Each image page is optimized for search engines, so you can even use the links as sharable assets.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Use Cases
&lt;/h2&gt;

&lt;p&gt;🔹 &lt;strong&gt;Frontend Development&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Need placeholder assets while building UI layouts? Generate the right size and color instantly.  &lt;/p&gt;

&lt;p&gt;🔹 &lt;strong&gt;Design Mockups&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Drop a solid rectangle into your wireframe or prototype without firing up heavy design software.  &lt;/p&gt;

&lt;p&gt;🔹 &lt;strong&gt;API Testing&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Working on an endpoint that returns images? Use BlankImage to provide consistent placeholder files.  &lt;/p&gt;

&lt;p&gt;🔹 &lt;strong&gt;Content Creation&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Need a quick solid background for social posts, blog headers, or demo slides? Done in seconds.  &lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;p&gt;The beauty of tools like &lt;strong&gt;BlankImage.org&lt;/strong&gt; is that they save you from unnecessary friction. Instead of wasting time on trivial setup tasks, you can &lt;strong&gt;focus on what matters — building your product&lt;/strong&gt;.  &lt;/p&gt;

&lt;p&gt;It’s one of those small tools you don’t realize you need until you try it.  &lt;/p&gt;




&lt;h2&gt;
  
  
  Try It Out
&lt;/h2&gt;

&lt;p&gt;👉 &lt;a href="https://blankimage.org" rel="noopener noreferrer"&gt;Visit BlankImage.org&lt;/a&gt; and generate your first solid-color image in just a few clicks.  &lt;/p&gt;

&lt;p&gt;If you end up using it, I’d love to hear your feedback. What features would make it even more useful for your workflow?&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>startup</category>
      <category>sideprojects</category>
    </item>
    <item>
      <title>How I Built a “Grow a Garden Calculator” (and what I learned along the way)</title>
      <dc:creator>kristoff</dc:creator>
      <pubDate>Sun, 17 Aug 2025 15:32:32 +0000</pubDate>
      <link>https://dev.to/kristoff_14e0834b680bea04/how-i-built-a-grow-a-garden-calculator-and-what-i-learned-along-the-way-4pfh</link>
      <guid>https://dev.to/kristoff_14e0834b680bea04/how-i-built-a-grow-a-garden-calculator-and-what-i-learned-along-the-way-4pfh</guid>
      <description>&lt;p&gt;Hey folks 👋&lt;/p&gt;

&lt;p&gt;I’ve been experimenting with building small side projects to sharpen my skills, and recently I created something fun: a Grow a Garden Calculator.&lt;/p&gt;

&lt;p&gt;It’s a simple tool designed for players of the Grow a Garden game. The idea is to make it easier to:&lt;/p&gt;

&lt;p&gt;calculate crop, pet, and item values,&lt;/p&gt;

&lt;p&gt;compare trade offers,&lt;/p&gt;

&lt;p&gt;and help players make fairer in-game decisions.&lt;/p&gt;

&lt;p&gt;🛠 Tech Stack &amp;amp; Approach&lt;/p&gt;

&lt;p&gt;Frontend: just use html + css + js&lt;/p&gt;

&lt;p&gt;Backend / Data: no backend&lt;/p&gt;

&lt;p&gt;Data Handling: simple structured text → normalized values → trade calculation logic&lt;/p&gt;

&lt;p&gt;Deployment: vercel&lt;/p&gt;

&lt;p&gt;The main challenge was figuring out how to make the calculator logic feel intuitive — I didn’t want it to just spit out numbers, but rather show results in a way that made sense for casual players.&lt;/p&gt;

&lt;p&gt;⚡ What I Learned&lt;/p&gt;

&lt;p&gt;Keeping the UX minimal really matters. Many game players don’t want to read long instructions, so I designed the tool to work with as few clicks as possible.&lt;/p&gt;

&lt;p&gt;Handling edge cases (e.g. very rare items or multiple item types) required me to rethink my data model.&lt;/p&gt;

&lt;p&gt;Deploying small projects quickly helps me iterate much faster — I’ve already updated it a couple of times based on early feedback.&lt;/p&gt;

&lt;p&gt;💡 What’s Next?&lt;/p&gt;

&lt;p&gt;I’m considering:&lt;/p&gt;

&lt;p&gt;Adding more calculators (fruit values, pet XP, etc.)&lt;/p&gt;

&lt;p&gt;Making it mobile-first&lt;/p&gt;

&lt;p&gt;Maybe even letting users share trade comparisons with a link&lt;/p&gt;

&lt;p&gt;👉 If you’d like, you can check it out here: &lt;a href="https://growagardentradecalculator.org/grow-a-garden-calculator" rel="noopener noreferrer"&gt;Grow a Garden Calculator&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’d love any feedback — either on the tech choices or the UX for players.&lt;br&gt;
Do you also build small side projects around games? I’d be super curious to hear about yours!&lt;/p&gt;

&lt;p&gt;Thanks for reading 🙏&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>buildinpublic</category>
      <category>startup</category>
    </item>
    <item>
      <title>I’ve Failed Two Projects — Here’s What I Learned</title>
      <dc:creator>kristoff</dc:creator>
      <pubDate>Thu, 17 Jul 2025 02:54:06 +0000</pubDate>
      <link>https://dev.to/kristoff_14e0834b680bea04/ive-failed-two-projects-heres-what-i-learned-1gfc</link>
      <guid>https://dev.to/kristoff_14e0834b680bea04/ive-failed-two-projects-heres-what-i-learned-1gfc</guid>
      <description>&lt;p&gt;Over the past six months, I’ve launched three side projects — and failed at two of them. But through those failures, I’ve learned some important lessons that are shaping how I work today. Here’s my journey so far.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project 1: DevGameNavigation
&lt;/h2&gt;

&lt;p&gt;I originally planned to build my own indie game. But as a beginner, I had no idea where to find game assets or quality tutorials. After spending a lot of time searching, I managed to gather a collection of useful websites, game assets, and paid tutorials I had bought myself.&lt;/p&gt;

&lt;p&gt;That’s when the idea came to me: maybe others face the same problem. So I built &lt;strong&gt;&lt;a href="https://www.devgamenavigation.com" rel="noopener noreferrer"&gt;DevGameNavigation&lt;/a&gt;&lt;/strong&gt;, a curated directory of game development resources — assets, tutorials, and even some creative indie games for inspiration.&lt;/p&gt;

&lt;p&gt;But after six months online, the traffic was extremely low. Despite the effort I put in, the site didn’t gain traction. I eventually decided to shut it down and move on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project 2: NewsDigestAI
&lt;/h2&gt;

&lt;p&gt;I read the news every day, but most news articles are way too long — I just want the key points and core data. So I built &lt;strong&gt;&lt;a href="https://newsdigestai.com" rel="noopener noreferrer"&gt;NewsDigestAI&lt;/a&gt;&lt;/strong&gt;, a tool that fetches news from various sources and generates concise summaries for quick reading.&lt;/p&gt;

&lt;p&gt;After a month of development, I launched the site and submitted a sitemap to Google. Things looked promising — over 20,000 pages were indexed and traffic started climbing. But soon after, Google penalized the site. All indexed pages were gone, and traffic dropped to zero.&lt;/p&gt;

&lt;p&gt;This was a painful but valuable lesson: don’t flood a new site with auto-generated content, and always prioritize high-quality pages. Quantity alone won’t work — especially with SEO.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project 3: ChartFromText
&lt;/h2&gt;

&lt;p&gt;Sometimes I need to add charts to presentations or documents, but opening Excel or Google Sheets just for a simple chart feels like overkill. So I built &lt;strong&gt;&lt;a href="https://chartfromtext.com" rel="noopener noreferrer"&gt;ChartFromText&lt;/a&gt;&lt;/strong&gt;, a lightweight tool that generates charts from plain text input.&lt;/p&gt;

&lt;p&gt;This time, I did things differently. I spent minimal time on development and focused most of my effort on promotion. I submitted backlinks, shared it in communities, and recently listed it on &lt;strong&gt;&lt;a href="https://www.producthunt.com/products/chartfromtex" rel="noopener noreferrer"&gt;Product Hunt&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For this project, I’ve made a conscious choice to shift my focus: development is important, but promotion is what makes or breaks a project. That’s the biggest takeaway from my previous failures.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>buildinpublic</category>
      <category>sideprojects</category>
    </item>
    <item>
      <title>I built a tool to generate charts from text</title>
      <dc:creator>kristoff</dc:creator>
      <pubDate>Mon, 14 Jul 2025 09:07:52 +0000</pubDate>
      <link>https://dev.to/kristoff_14e0834b680bea04/i-built-a-tool-to-generate-charts-from-text-3a3p</link>
      <guid>https://dev.to/kristoff_14e0834b680bea04/i-built-a-tool-to-generate-charts-from-text-3a3p</guid>
      <description>&lt;p&gt;I built &lt;a href="https://chartfromtext.com" rel="noopener noreferrer"&gt;ChartFromText.com&lt;/a&gt; to solve a simple but recurring annoyance of mine. &lt;/p&gt;

&lt;p&gt;I often need a quick chart for a README file, a Slack message, or a simple presentation, and firing up Google Sheets or Excel always felt like overkill. The goal was to create the absolute fastest path from raw data to a usable chart. &lt;/p&gt;

&lt;p&gt;You just paste text like Apples: 50, Bananas: 80, and the chart appears instantly. What it does: Parses simple key-value text (colons, commas, or newlines). &lt;/p&gt;

&lt;p&gt;Instantly generates Pie, Bar, and Line charts. Renders data labels directly on the chart for readability. Lets you download the chart as a PNG with a clean, white background, ready for use anywhere.&lt;/p&gt;

</description>
      <category>sideprojects</category>
    </item>
  </channel>
</rss>
