<?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: Sam</title>
    <description>The latest articles on DEV Community by Sam (@sam911).</description>
    <link>https://dev.to/sam911</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%2F4058630%2F5cfc54c9-a49b-4581-885f-6a71fc4f27b7.png</url>
      <title>DEV Community: Sam</title>
      <link>https://dev.to/sam911</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sam911"/>
    <language>en</language>
    <item>
      <title>How I Built a Football Formation Builder with Vanilla JavaScript</title>
      <dc:creator>Sam</dc:creator>
      <pubDate>Fri, 11 Sep 2026 00:18:06 +0000</pubDate>
      <link>https://dev.to/sam911/how-i-built-a-football-formation-builder-with-vanilla-javascript-4f1</link>
      <guid>https://dev.to/sam911/how-i-built-a-football-formation-builder-with-vanilla-javascript-4f1</guid>
      <description>&lt;p&gt;Building small web tools has become one of the ways I learn what actually works in the browser.&lt;/p&gt;

&lt;p&gt;Recently, while working on Toolsyte, I built a Football Formation Builder that allows users to create a football lineup visually by choosing a formation and positioning players on a pitch.&lt;/p&gt;

&lt;p&gt;The goal was fairly simple: make something that works directly in the browser, is easy to understand, and doesn't require users to create an account just to build a formation.&lt;/p&gt;

&lt;p&gt;You can try the Football Formation Builder here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://toolsyte.com/tools/sports/football-formation-builder/" rel="noopener noreferrer"&gt;https://toolsyte.com/tools/sports/football-formation-builder/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What I wanted to build&lt;/p&gt;

&lt;p&gt;The basic idea was to give users a football pitch where they could build their own team visually.&lt;/p&gt;

&lt;p&gt;Instead of creating a static page showing diagrams of formations, I wanted the formation itself to be interactive.&lt;/p&gt;

&lt;p&gt;A user should be able to choose a formation, see the players arranged on the pitch, and customize the lineup.&lt;/p&gt;

&lt;p&gt;This also meant thinking beyond just desktop screens. A football formation builder is something people may open on a phone, so the interface needed to remain usable on smaller screens as well.&lt;/p&gt;

&lt;p&gt;Keeping the tool browser-based&lt;/p&gt;

&lt;p&gt;Toolsyte is primarily built around lightweight web tools, so I didn't want this project to require a large framework or complicated infrastructure.&lt;/p&gt;

&lt;p&gt;The formation builder uses the same general approach:&lt;/p&gt;

&lt;p&gt;HTML for the structure&lt;br&gt;
CSS for the interface and football pitch&lt;br&gt;
JavaScript for the interactive behaviour&lt;/p&gt;

&lt;p&gt;Keeping the tool browser-based also means that most of the interaction can happen immediately on the page.&lt;/p&gt;

&lt;p&gt;For this type of utility, that simplicity was important to me.&lt;/p&gt;

&lt;p&gt;The football pitch was the interesting part&lt;/p&gt;

&lt;p&gt;A normal calculator usually follows a straightforward pattern:&lt;/p&gt;

&lt;p&gt;Input → calculation → result&lt;/p&gt;

&lt;p&gt;A formation builder is different.&lt;/p&gt;

&lt;p&gt;The result itself is visual.&lt;/p&gt;

&lt;p&gt;The interface has to represent a football pitch while placing multiple players in positions that make sense for the selected formation.&lt;/p&gt;

&lt;p&gt;For example, changing formations means changing how those player positions are distributed across the pitch.&lt;/p&gt;

&lt;p&gt;That made the project more interesting than simply displaying a predefined image for every formation.&lt;/p&gt;

&lt;p&gt;Making formations reusable&lt;/p&gt;

&lt;p&gt;One thing I wanted to avoid was treating every formation as an entirely separate interface.&lt;/p&gt;

&lt;p&gt;The pitch remains the same.&lt;/p&gt;

&lt;p&gt;What changes is the arrangement of the players.&lt;/p&gt;

&lt;p&gt;That makes it possible for the application to use the selected formation to determine where the players should appear rather than loading a completely different pitch every time.&lt;/p&gt;

&lt;p&gt;It also makes the tool easier to expand as additional formation options are added.&lt;/p&gt;

&lt;p&gt;Responsive design mattered more than I expected&lt;/p&gt;

&lt;p&gt;A football pitch naturally wants a reasonable amount of screen space.&lt;/p&gt;

&lt;p&gt;Desktop gives you plenty of it.&lt;/p&gt;

&lt;p&gt;Mobile doesn't.&lt;/p&gt;

&lt;p&gt;So part of building the tool was making sure that the pitch, players and surrounding controls could still work when the available width became much smaller.&lt;/p&gt;

&lt;p&gt;This is one of the recurring lessons I've had while building web tools: something that looks simple on desktop can require considerably more thought once you test it on a phone.&lt;/p&gt;

&lt;p&gt;Building the tool as part of a larger collection&lt;/p&gt;

&lt;p&gt;The Football Formation Builder isn't a standalone project.&lt;/p&gt;

&lt;p&gt;It's part of Toolsyte, where I've been building different browser-based tools, calculators and interactive utilities.&lt;/p&gt;

&lt;p&gt;That has influenced how I approach new tools.&lt;/p&gt;

&lt;p&gt;Instead of asking only:&lt;/p&gt;

&lt;p&gt;"Can I make this?"&lt;/p&gt;

&lt;p&gt;I've started asking:&lt;/p&gt;

&lt;p&gt;"Can someone understand what this does immediately?"&lt;/p&gt;

&lt;p&gt;and:&lt;/p&gt;

&lt;p&gt;"Can they actually use it comfortably without unnecessary steps?"&lt;/p&gt;

&lt;p&gt;Those questions have become increasingly important as I've built more tools.&lt;/p&gt;

&lt;p&gt;What I learned from this project&lt;/p&gt;

&lt;p&gt;The biggest lesson wasn't really about football.&lt;/p&gt;

&lt;p&gt;It was about building interactive tools around visual information.&lt;/p&gt;

&lt;p&gt;A traditional calculator can hide most of its logic behind a form and show a number at the end.&lt;/p&gt;

&lt;p&gt;With something like a formation builder, the interface is part of the result.&lt;/p&gt;

&lt;p&gt;Player positioning, pitch proportions, controls, responsiveness and usability all have to work together.&lt;/p&gt;

&lt;p&gt;It was a useful reminder that even relatively small web tools can involve interesting UI problems.&lt;/p&gt;

&lt;p&gt;What's next&lt;/p&gt;

&lt;p&gt;I'm continuing to experiment with interactive tools on Toolsyte, including calculators, quizzes and other browser-based utilities.&lt;/p&gt;

&lt;p&gt;For the Football Formation Builder specifically, the aim is to keep it useful without turning a straightforward tool into something unnecessarily complicated.&lt;/p&gt;

&lt;p&gt;If you're interested in trying it, you can find it here:&lt;/p&gt;

&lt;p&gt;Football Formation Builder:&lt;br&gt;
&lt;a href="https://toolsyte.com/tools/sports/football-formation-builder/" rel="noopener noreferrer"&gt;https://toolsyte.com/tools/sports/football-formation-builder/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'd also be interested to hear how other developers would approach a visual tool like this using plain JavaScript.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>html</category>
      <category>css</category>
    </item>
    <item>
      <title>I Built a Free Spin the Wheel Tool That Anyone Can Use (No Sign-Up Required)</title>
      <dc:creator>Sam</dc:creator>
      <pubDate>Sun, 02 Aug 2026 04:11:42 +0000</pubDate>
      <link>https://dev.to/sam911/i-built-a-free-spin-the-wheel-tool-that-anyone-can-use-no-sign-up-required-41po</link>
      <guid>https://dev.to/sam911/i-built-a-free-spin-the-wheel-tool-that-anyone-can-use-no-sign-up-required-41po</guid>
      <description>&lt;p&gt;Sometimes the hardest decisions are the smallest ones.&lt;/p&gt;

&lt;p&gt;Who's going first? Who wins the giveaway? Which task should I work on next? Which restaurant should we visit? Instead of debating, I usually end up saying, "Let's just spin a wheel."&lt;/p&gt;

&lt;p&gt;Surprisingly, many online spin wheel tools I found were cluttered with intrusive ads, required unnecessary sign-ups, or felt outdated. I wanted something that was fast, simple, and worked well on any device.&lt;/p&gt;

&lt;p&gt;So I built one.&lt;/p&gt;

&lt;p&gt;Why I Built It&lt;/p&gt;

&lt;p&gt;I'm currently building Toolsyte, a collection of free online tools designed to solve everyday problems with clean interfaces and a focus on speed and usability.&lt;/p&gt;

&lt;p&gt;The Spin the Wheel was one of the first tools I wanted to create because it's useful in so many situations—from classrooms and meetings to family game nights and giveaways.&lt;/p&gt;

&lt;p&gt;Features&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add your own custom entries&lt;/li&gt;
&lt;li&gt;Customize wheel colors&lt;/li&gt;
&lt;li&gt;Smooth spinning animation&lt;/li&gt;
&lt;li&gt;Mobile-friendly design&lt;/li&gt;
&lt;li&gt;Free to use&lt;/li&gt;
&lt;li&gt;No account or sign-up required
A Few Use Cases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I've already found it useful for:&lt;/p&gt;

&lt;p&gt;Choosing random winners for giveaways&lt;br&gt;
Classroom activities&lt;br&gt;
Team-building sessions&lt;br&gt;
Picking games or challenges&lt;br&gt;
Deciding where to eat&lt;br&gt;
Assigning random tasks&lt;br&gt;
Breaking decision deadlocks with friends&lt;/p&gt;

&lt;p&gt;It's one of those simple tools that ends up being useful more often than you'd expect.&lt;/p&gt;

&lt;p&gt;Building It&lt;/p&gt;

&lt;p&gt;While the interface looks simple, getting the experience right took some work.&lt;/p&gt;

&lt;p&gt;A few things I focused on:&lt;/p&gt;

&lt;p&gt;Keeping the wheel animation smooth&lt;br&gt;
Making the result feel fair and predictable&lt;br&gt;
Ensuring it worked well on both desktop and mobile&lt;br&gt;
Keeping the interface clean without unnecessary distractions&lt;/p&gt;

&lt;p&gt;I wanted the tool to load quickly and let users start spinning immediately.&lt;/p&gt;

&lt;p&gt;Try It&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%2Fpkp974dv8090m3l8wqgu.jpg" 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%2Fpkp974dv8090m3l8wqgu.jpg" alt=" " width="786" height="632"&gt;&lt;/a&gt;&lt;br&gt;
If you'd like to try it yourself:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://toolsyte.com/tools/wheel/spin-the-wheel/" rel="noopener noreferrer"&gt;https://toolsyte.com/tools/wheel/spin-the-wheel/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'd genuinely appreciate any feedback or suggestions for improvements.&lt;/p&gt;

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