<?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: Hemi Edsel</title>
    <description>The latest articles on DEV Community by Hemi Edsel (@hemi_edsel_001cdb14eff89f).</description>
    <link>https://dev.to/hemi_edsel_001cdb14eff89f</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%2F4197545%2F1e887bc6-3906-4419-b52e-aa485d2eb536.jpg</url>
      <title>DEV Community: Hemi Edsel</title>
      <link>https://dev.to/hemi_edsel_001cdb14eff89f</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hemi_edsel_001cdb14eff89f"/>
    <language>en</language>
    <item>
      <title>I built a gas cost splitter. The formula was the easy part.</title>
      <dc:creator>Hemi Edsel</dc:creator>
      <pubDate>Wed, 21 Oct 2026 06:45:31 +0000</pubDate>
      <link>https://dev.to/hemi_edsel_001cdb14eff89f/i-built-a-gas-cost-splitter-the-formula-was-the-easy-part-po5</link>
      <guid>https://dev.to/hemi_edsel_001cdb14eff89f/i-built-a-gas-cost-splitter-the-formula-was-the-easy-part-po5</guid>
      <description>&lt;p&gt;GasSplit started with a small question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How much gas money should each person pay after a trip?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The calculation seemed straightforward:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Distance ÷ Fuel economy × Fuel price = Fuel cost
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Divide that cost by the number of people, and you have a calculator.&lt;/p&gt;

&lt;p&gt;My background is in digital marketing and SEO, and I’m building with AI assistance. A focused tool like this felt like a manageable project: a clear problem, a few inputs, and a useful result.&lt;/p&gt;

&lt;p&gt;Then I started looking more closely at the decisions hidden inside those inputs.&lt;/p&gt;

&lt;p&gt;Does “distance” mean one way or the entire trip? Does the driver pay an equal share? What if someone knows their car model but has no idea what MPG means? And once you have the answer, how do you explain it to your friends?&lt;/p&gt;

&lt;p&gt;Those questions shaped &lt;a href="https://gassplit.com/" rel="noopener noreferrer"&gt;GasSplit&lt;/a&gt; more than the formula did.&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%2F91csp077d2tlsiolzuzt.png" 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%2F91csp077d2tlsiolzuzt.png" alt="GasSplit launch illustration showing distance, fuel economy, fuel price, and a four-person split of a 48-dollar trip" width="800" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;An illustrative trip: 300 miles, 30 MPG, and $3.60 per US gallon, plus tolls and parking. Four people share the $48 total.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A correct calculation can still produce the wrong answer
&lt;/h2&gt;

&lt;p&gt;One of the most useful changes came from the distance input.&lt;/p&gt;

&lt;p&gt;An earlier version asked users to choose how the distance should be interpreted before entering a number. The options made sense when I thought about the calculation. Looking at the actual page, the sequence felt backwards.&lt;/p&gt;

&lt;p&gt;I wanted to type the distance I knew first.&lt;/p&gt;

&lt;p&gt;We changed the flow to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Distance
[ 150                         mi ]

☐ Include return trip (distance ×2)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When the return option is selected, the interface shows the interpretation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;150 mi each way · 300 mi total
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That last line matters. Someone could enter the total distance of a round trip and then accidentally double it. The arithmetic would still be correct for the values passed into it.&lt;/p&gt;

&lt;p&gt;The interface needs to make that mistake easier to notice.&lt;/p&gt;

&lt;p&gt;GasSplit also accepts odometer readings from before and after a trip. That difference already represents the distance driven, so the return-trip option does not belong in that mode.&lt;/p&gt;

&lt;p&gt;This became a recurring lesson: every input needs a clear meaning, and the result should make that meaning visible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Small layout decisions were part of the explanation
&lt;/h2&gt;

&lt;p&gt;I spent more time than expected on the “Car &amp;amp; fuel” section.&lt;/p&gt;

&lt;p&gt;There was a “Find my car” action for looking up fuel economy. My first concern was alignment, but the more important question was where it belonged.&lt;/p&gt;

&lt;p&gt;It helps answer the fuel-economy field. Placing it at the level of the entire section made that relationship less clear.&lt;/p&gt;

&lt;p&gt;Other details kept surfacing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A save action and its browser-storage explanation occupied more vertical space than they needed.&lt;/li&gt;
&lt;li&gt;Dropdown arrows sat too close to their borders.&lt;/li&gt;
&lt;li&gt;A currency control appeared to offer only USD when opened.&lt;/li&gt;
&lt;li&gt;Moving a unit selector fixed one layout and left a square-looking control in another mode.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Individually, these were small issues. Together, they made a short form feel more complicated.&lt;/p&gt;

&lt;p&gt;I began treating layout as part of the instructions. Putting a unit beside its number, placing help beside the field it supports, and keeping secondary explanations visually quieter all reduce what someone has to work out.&lt;/p&gt;

&lt;h2&gt;
  
  
  “Fair” needed a choice
&lt;/h2&gt;

&lt;p&gt;Splitting a bill equally sounds simple until you ask whether the driver should contribute.&lt;/p&gt;

&lt;p&gt;For some groups, everyone pays. For others, the passengers cover the fuel because the driver is providing the car and doing the driving.&lt;/p&gt;

&lt;p&gt;I didn’t want the calculator to silently choose one arrangement and call it fair. GasSplit lets people choose whether everyone pays or only passengers pay.&lt;/p&gt;

&lt;p&gt;Even a small example exposes details worth explaining. If a $35 cost is shared by three passengers, displaying $11.67 for each person totals $35.01. A breakdown of $11.67, $11.67, and $11.66 preserves the original total.&lt;/p&gt;

&lt;p&gt;These details affect whether someone can look at a bill and understand it without another conversation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sharing the bill and sharing the product are different jobs
&lt;/h2&gt;

&lt;p&gt;I initially found myself questioning whether “Copy bill,” an image export, and “Share” were redundant.&lt;/p&gt;

&lt;p&gt;Thinking about what the user was trying to do made the distinction clearer.&lt;/p&gt;

&lt;p&gt;Copying a bill helps someone paste the calculation into a group chat. Saving an image gives them a visual summary they can send. Sharing GasSplit recommends the tool to another person.&lt;/p&gt;

&lt;p&gt;Those actions deserve different emphasis.&lt;/p&gt;

&lt;p&gt;The result should first help someone communicate what each person owes. A smaller invitation to share the product can come afterward.&lt;/p&gt;

&lt;p&gt;That also changed how I thought about the output. The useful result is more than a large number. It needs enough context for the people receiving it to understand where that number came from.&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%2F5osp3c9i5ere3x3k4gdw.png" 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%2F5osp3c9i5ere3x3k4gdw.png" alt="GasSplit launch illustration of a shareable bill: 36 dollars of fuel, 8 dollars in tolls, 4 dollars in parking, and 12 dollars per person" width="800" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The same illustrative trip, presented as a breakdown the group can understand. Everyone pays, including the driver.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  SEO research helped me ask better questions
&lt;/h2&gt;

&lt;p&gt;Because of my background, I looked at competing calculators and the searches they appeared for.&lt;/p&gt;

&lt;p&gt;Phrases such as “gas money” and “gas cost splitting among friends” helped me see the language around the problem. People may be looking for a calculation, but they may also be unsure how to split the cost or what is reasonable to ask a friend to pay.&lt;/p&gt;

&lt;p&gt;That gave me a direction for explanations and guides alongside the tool.&lt;/p&gt;

&lt;p&gt;It also tempted me to keep changing headings and adding more keywords.&lt;/p&gt;

&lt;p&gt;I decided to be more cautious. A competitor’s ranking is useful evidence that a topic has demand; it does not tell me which sentence caused that ranking. I’ve kept some title changes as future experiments rather than treating every wording suggestion as an improvement.&lt;/p&gt;

&lt;p&gt;For now, I want the content to explain the assumptions, show worked examples, and help people use the calculator correctly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Working with AI made verification more important
&lt;/h2&gt;

&lt;p&gt;AI helped me build and iterate, but several changes took more than one pass.&lt;/p&gt;

&lt;p&gt;A proposed interaction was missed. A control behaved differently from what its code suggested. A styling change looked fine in one mode and awkward in another.&lt;/p&gt;

&lt;p&gt;Automated calculation tests were useful. They could not tell me whether a dropdown felt cramped or whether the order of the fields made sense.&lt;/p&gt;

&lt;p&gt;I now want every change to be checked at three levels:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Does the calculation still work?&lt;/li&gt;
&lt;li&gt;Does the interaction make sense in the browser, including on a narrow screen?&lt;/li&gt;
&lt;li&gt;Is the intended version actually live?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;As a non-programmer, I’m learning that giving clearer instructions helps, but so does being specific about what counts as finished.&lt;/p&gt;

&lt;p&gt;GasSplit is still early. I don’t have evidence yet that these changes improve conversion or retention. What I do have is a more explicit interface, fewer hidden assumptions, and a better way to review the next change.&lt;/p&gt;

&lt;p&gt;I started by trying to answer “How much does each person owe?”&lt;/p&gt;

&lt;p&gt;Building the tool has made me pay just as much attention to a second question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can someone understand and trust how we arrived at that amount?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you’ve built a calculator or another small utility, what input looked obvious to you but turned out to need more explanation?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: I used AI assistance to develop GasSplit and to help draft this post. The examples describe decisions and revisions from the project.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>buildinpublic</category>
      <category>showdev</category>
      <category>design</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
