<?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: Dingoygl</title>
    <description>The latest articles on DEV Community by Dingoygl (@dingoygl).</description>
    <link>https://dev.to/dingoygl</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%2F4223503%2F95d2ed72-5553-4728-a09b-6c9fcd8deb9a.jpg</url>
      <title>DEV Community: Dingoygl</title>
      <link>https://dev.to/dingoygl</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dingoygl"/>
    <language>en</language>
    <item>
      <title>A meal planner has more state than its calendar suggests</title>
      <dc:creator>Dingoygl</dc:creator>
      <pubDate>Tue, 03 Nov 2026 06:30:16 +0000</pubDate>
      <link>https://dev.to/dingoygl/a-meal-planner-has-more-state-than-its-calendar-suggests-17f7</link>
      <guid>https://dev.to/dingoygl/a-meal-planner-has-more-state-than-its-calendar-suggests-17f7</guid>
      <description>&lt;p&gt;Moving a dinner from Tuesday to Thursday looks like a small UI action. The interesting question is what moves with it: the serving count, ingredient choices, recipe instructions and shopping quantities.&lt;/p&gt;

&lt;p&gt;I looked through &lt;a href="https://usemealmuse.com" rel="noopener noreferrer"&gt;MealMuse&lt;/a&gt;, a free dinner-planning web app, with that question in mind. These are observations about the visible workflow, not its source code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fygqwjf2uv4mokh50hyra.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fygqwjf2uv4mokh50hyra.jpeg" alt="MealMuse homepage with dinner planning and grocery list entry points" width="800" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;MealMuse brings dinner planning and the grocery list into one workflow.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A recipe is not the same thing as a planned dinner
&lt;/h2&gt;

&lt;p&gt;A recipe describes a dish. A planned dinner also needs a date, a serving count and any supported ingredient choices. MealMuse offers household portions of one, two, four or six, along with per-dinner controls. Moving the dinner should preserve those choices rather than quietly reset them.&lt;/p&gt;

&lt;p&gt;That distinction is a useful starting point for a data model. The calendar item is an instance of a recipe, not just a recipe ID in a date column.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi7vaji1ynh3pvu929wzg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi7vaji1ynh3pvu929wzg.jpeg" alt="MealMuse five-night dinner plan for two" width="799" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The ready-made two-person plan is a starting point, not a locked schedule.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A substitution reaches beyond the ingredients panel
&lt;/h2&gt;

&lt;p&gt;The site supports selected ingredient alternatives. Its homepage gives paneer-to-tofu as an example: the method and grocery list follow the chosen alternative. That is more meaningful than replacing one word in an ingredient label.&lt;/p&gt;

&lt;p&gt;This creates an interesting interaction chain: ingredient choices, portions and the calendar all contribute to the same dinner. Keeping those choices connected makes the resulting grocery list easier to follow.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4rkqlncylnr70uxq71mw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4rkqlncylnr70uxq71mw.jpeg" alt="MealMuse recipe page with portions and ingredient quantities" width="800" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Grocery totals are not supermarket pack sizes
&lt;/h2&gt;

&lt;p&gt;The two-person plan explicitly says its list contains recipe quantities, not automatically rounded shopping packages. That is an important boundary. A recipe requiring part of a package does not mean the shop sells that exact amount.&lt;/p&gt;

&lt;p&gt;Keeping this visible is better than letting a precise-looking list imply a promise about waste or cost that it cannot keep.&lt;/p&gt;

&lt;h2&gt;
  
  
  No account changes the persistence contract
&lt;/h2&gt;

&lt;p&gt;MealMuse keeps plans in the current browser. It does not currently sync them between devices. Clearing browser data can remove access to a plan, so copying the list or downloading a PDF matters.&lt;/p&gt;

&lt;p&gt;For a browser-local tool, I would treat exports and clear storage explanations as part of the main workflow. “No signup” is useful only if people also understand where their work lives.&lt;/p&gt;

&lt;p&gt;You can explore the workflow at &lt;a href="https://usemealmuse.com" rel="noopener noreferrer"&gt;usemealmuse.com&lt;/a&gt;: choose a few dinners, adjust the portions and bring the ingredients together in one grocery list.&lt;/p&gt;

</description>
      <category>webdev</category>
    </item>
    <item>
      <title>A small calculator UX problem: whose numbers are you showing?</title>
      <dc:creator>Dingoygl</dc:creator>
      <pubDate>Tue, 03 Nov 2026 05:52:29 +0000</pubDate>
      <link>https://dev.to/dingoygl/a-small-calculator-ux-problem-whose-numbers-are-you-showing-2e92</link>
      <guid>https://dev.to/dingoygl/a-small-calculator-ux-problem-whose-numbers-are-you-showing-2e92</guid>
      <description>&lt;p&gt;A calculator can get every multiplication right and still give someone a misleading answer. The awkward part is often the meaning of the inputs.&lt;/p&gt;

&lt;p&gt;A residential cleaning estimate is a useful example. There are at least three things on the screen that look like “the price”: the business’s costs, the selling price, and the profit left after costs. Mixing them up makes a tidy interface much less useful.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hours need a unit
&lt;/h2&gt;

&lt;p&gt;Imagine two cleaners spending two hours at a property. A field labelled &lt;code&gt;Hours&lt;/code&gt; could mean two hours or four. Both answers sound reasonable until you ask what the calculation expects.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Total labor hours&lt;/code&gt; is clearer. A short example next to the field is even better: &lt;code&gt;2 cleaners × 2 hours = 4 labor hours&lt;/code&gt;. You should not need a help article to discover the unit.&lt;/p&gt;

&lt;p&gt;Room counts have a similar problem. If someone adds three bedrooms, does the app estimate the cleaning time, or just record the scope? Either approach can work. The interface needs to say which one it uses.&lt;/p&gt;

&lt;h2&gt;
  
  
  Margin is not markup
&lt;/h2&gt;

&lt;p&gt;For a cost C and target margin m, expressed as a decimal, the selling price is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;price = C / (1 - m)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is different from multiplying costs by &lt;code&gt;1 + m&lt;/code&gt;, which calculates a markup. With $100 in costs and a 20% target margin, the selling price is $125. A $120 selling price leaves a margin of about 16.7%. These are example inputs, not recommended service prices.&lt;/p&gt;

&lt;p&gt;A field called &lt;code&gt;Profit %&lt;/code&gt; makes the user guess which calculation is happening. A precise label and a visible explanation are more useful than an extra decimal place.&lt;/p&gt;

&lt;h2&gt;
  
  
  The PDF has a different audience
&lt;/h2&gt;

&lt;p&gt;The person preparing the estimate needs cost and margin details. Their customer needs the agreed services, exclusions and selling price. Exporting the whole workspace gives both audiences the wrong document.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://quotewise.online" rel="noopener noreferrer"&gt;Quotewise&lt;/a&gt; is the concrete example I’m sharing here: a free house-cleaning estimate tool with PDF export and no signup. It uses entered labor hours, costs and a target margin, and keeps internal costs and private notes out of customer exports.&lt;/p&gt;

&lt;p&gt;For anyone working on a small business calculator, these are useful review questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does each quantity say what it measures?&lt;/li&gt;
&lt;li&gt;Can users tell an assumption from a value they entered?&lt;/li&gt;
&lt;li&gt;Are margin and markup named correctly?&lt;/li&gt;
&lt;li&gt;Does the export contain only what its reader needs?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of this requires a complicated interface. It does require deciding what each number means before polishing how it looks.&lt;/p&gt;

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