<?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: Ancer</title>
    <description>The latest articles on DEV Community by Ancer (@ancer).</description>
    <link>https://dev.to/ancer</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%2F3965198%2F9b8a4f0e-f78d-4238-89e1-0b08c446259e.png</url>
      <title>DEV Community: Ancer</title>
      <link>https://dev.to/ancer</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ancer"/>
    <language>en</language>
    <item>
      <title>GUI or CLI? Why We Built Both</title>
      <dc:creator>Ancer</dc:creator>
      <pubDate>Sat, 27 Jun 2026 09:00:00 +0000</pubDate>
      <link>https://dev.to/ancer/gui-or-cli-why-we-built-both-5mn</link>
      <guid>https://dev.to/ancer/gui-or-cli-why-we-built-both-5mn</guid>
      <description>&lt;p&gt;Software developers love debating interfaces.&lt;/p&gt;

&lt;p&gt;Some people will always prefer a graphical interface, while others feel most productive inside a terminal window. The interesting part is that both groups are usually trying to solve exactly the same problem—they just have different workflows.&lt;/p&gt;

&lt;p&gt;While building Convertim, we quickly realized that choosing one approach over the other would unnecessarily limit the tool.&lt;/p&gt;

&lt;p&gt;For many users, drag and drop is simply the fastest way to work. Open the application, select a folder, choose the output format and click a button. No commands to remember, no documentation to read, and no setup required.&lt;/p&gt;

&lt;p&gt;But developers and power users often have completely different needs.&lt;/p&gt;

&lt;p&gt;They want to integrate image conversion into scripts, CI pipelines, automation tasks or batch jobs that run without human interaction. For them, opening a graphical application would only slow things down.&lt;/p&gt;

&lt;p&gt;Instead of deciding which audience was "right", we decided to support both.&lt;/p&gt;

&lt;p&gt;The graphical interface focuses on simplicity and discoverability, making common tasks accessible with just a few clicks. The command-line interface, on the other hand, exposes the same processing engine in a way that can be scripted and automated.&lt;/p&gt;

&lt;p&gt;Neither interface is better than the other.&lt;/p&gt;

&lt;p&gt;They simply solve different problems.&lt;/p&gt;

&lt;p&gt;Good software should adapt to the user's workflow instead of forcing the user to adapt to the software. Whether someone prefers clicking buttons or writing commands shouldn't change the capabilities they have available.&lt;/p&gt;

&lt;p&gt;In the end, both interfaces share the same goal: making image conversion as simple as possible while staying fast, local and predictable.&lt;/p&gt;

&lt;p&gt;Sometimes the best engineering decision isn't choosing between GUI and CLI.&lt;/p&gt;

&lt;p&gt;It's refusing to make users choose.&lt;/p&gt;

&lt;p&gt;What about you? When a tool offers both options, which one do you reach for first: the GUI or the terminal?&lt;/p&gt;

</description>
      <category>cli</category>
      <category>productivity</category>
      <category>softwareengineering</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>Building Convertim: The Engineering Decisions Behind It</title>
      <dc:creator>Ancer</dc:creator>
      <pubDate>Wed, 24 Jun 2026 09:00:00 +0000</pubDate>
      <link>https://dev.to/ancer/building-convertim-the-engineering-decisions-behind-it-589d</link>
      <guid>https://dev.to/ancer/building-convertim-the-engineering-decisions-behind-it-589d</guid>
      <description>&lt;p&gt;When we use a piece of software, we usually focus on what we can see: the interface, the available features, or how quickly it gets the job done. In reality, much of a product's quality depends on everything the user never notices.&lt;/p&gt;

&lt;p&gt;The chosen architecture, the way the code is organized, the dependencies that are included, the way errors are handled, or even the decision not to implement a certain feature often have a much greater impact than visible changes to the interface.&lt;/p&gt;

&lt;p&gt;While building Convertim, we've made hundreds of small engineering decisions. None of them are particularly impressive on their own, but together they define the final experience of the product.&lt;/p&gt;

&lt;p&gt;One of the earliest decisions was to keep all image processing local. From a technical perspective, it would have been easier to rely on remote services or external APIs for some conversions. But that would have required sending user files to a server. We preferred taking on additional engineering complexity to ensure that images never leave the user's computer.&lt;/p&gt;

&lt;p&gt;We also wanted to avoid unnecessary installation steps. Many applications require setup wizards, administrator permissions, or additional components before users can even get started. Convertim follows a different approach: a single portable executable that can be launched and used immediately. Achieving that level of simplicity required considerable work behind the scenes, but it creates a much smoother experience for the user.&lt;/p&gt;

&lt;p&gt;Another important decision was designing the application around batch processing from the very beginning. In real-world workflows, people rarely convert a single image. More often, they work with entire folders, photo collections, or website assets. That's why a large part of the internal architecture is built around job queues, concurrent processing, and scalable workflows without making the interface more complicated.&lt;/p&gt;

&lt;p&gt;We also invested significant time in aspects that rarely appear in screenshots: project structure, separation of responsibilities, and long-term maintainability. It's invisible work, but probably one of the most valuable investments any software project can make. Features evolve over time; a solid architecture remains.&lt;/p&gt;

&lt;p&gt;The same applies to automated testing. No user chooses an application because it has hundreds of tests, but those tests allow the product to evolve with confidence, catch regressions before release, and reduce the risk of unexpected bugs. They are an investment in the future, even if users never notice them.&lt;/p&gt;

&lt;p&gt;Software engineering is often associated with using the latest technologies or following the newest industry trends. Our experience has been almost the opposite. The best decisions usually involve removing complexity, reducing unnecessary dependencies, and choosing solutions that will still be easy to understand and maintain years from now.&lt;/p&gt;

&lt;p&gt;In the end, building useful software isn't just about adding features. It's about making hundreds of small decisions that make the product faster, simpler, more maintainable, and more respectful of the people who use it.&lt;/p&gt;

&lt;p&gt;And interestingly enough, when those decisions are the right ones, users rarely notice them. They simply feel that the software works exactly as it should.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>buildinpublic</category>
      <category>softwareengineering</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Why Useful Software Removes Friction</title>
      <dc:creator>Ancer</dc:creator>
      <pubDate>Sat, 20 Jun 2026 09:00:00 +0000</pubDate>
      <link>https://dev.to/ancer/why-useful-software-removes-friction-2eeo</link>
      <guid>https://dev.to/ancer/why-useful-software-removes-friction-2eeo</guid>
      <description>&lt;p&gt;When we think about improving software, our first instinct is usually to add something new. A feature, an integration or another configuration option often feels like progress.&lt;/p&gt;

&lt;p&gt;But after building different products, I've come to believe that the best software improves by removing things instead of adding them.&lt;/p&gt;

&lt;p&gt;Every unnecessary click interrupts a workflow. Every extra screen, mandatory account or confirmation dialog adds a little more friction to the user's experience. None of these decisions seems important on its own, but together they make a tool feel heavier than it should.&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.amazonaws.com%2Fuploads%2Farticles%2F0508rlq33vfcfxzm7036.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.amazonaws.com%2Fuploads%2Farticles%2F0508rlq33vfcfxzm7036.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The applications I enjoy using the most are the ones that stay out of the way. They let me focus on my work instead of forcing me to think about the software itself. That kind of simplicity is rarely accidental—it comes from understanding the real problem and having the discipline to avoid unnecessary complexity.&lt;/p&gt;

&lt;p&gt;As developers, it's easy to measure progress by the number of features we ship. But maybe a better measure is how much complexity we've managed to remove for the people who use our products.&lt;/p&gt;

&lt;p&gt;In the end, the most useful software isn't always the one that does the most. It's the one that solves a problem so naturally that you almost forget it's there.&lt;/p&gt;

&lt;p&gt;What's a piece of software you admire because of its simplicity rather than its number of features?&lt;/p&gt;

</description>
      <category>ux</category>
      <category>uidesign</category>
      <category>architecture</category>
      <category>programming</category>
    </item>
    <item>
      <title>Why I Started Building Convertim</title>
      <dc:creator>Ancer</dc:creator>
      <pubDate>Wed, 17 Jun 2026 09:00:00 +0000</pubDate>
      <link>https://dev.to/ancer/why-i-started-building-convertim-4jje</link>
      <guid>https://dev.to/ancer/why-i-started-building-convertim-4jje</guid>
      <description>&lt;p&gt;Over the years, I've used dozens of image converters.&lt;/p&gt;

&lt;p&gt;Some were fast. Others supported an impressive number of formats. Many were free, at least to a certain point. But almost all of them shared one thing that never really made sense to me: converting a local file meant uploading it to someone else's server.&lt;/p&gt;

&lt;p&gt;That might seem perfectly normal today. We've become used to doing almost everything through the browser. But the more I thought about it, the less logical it seemed.&lt;/p&gt;

&lt;p&gt;Why should something as simple as changing an image format require sending that file across the internet?&lt;/p&gt;

&lt;p&gt;Most of the time I just wanted to convert a PNG into WebP, optimize a few screenshots or prepare images for a website. Nothing particularly complex. Yet the workflow was always the same: open a website, accept the cookie banner, wait for the upload, wait for the processing, and finally download the result again.&lt;/p&gt;

&lt;p&gt;It wasn't only about privacy.&lt;/p&gt;

&lt;p&gt;It was about friction.&lt;/p&gt;

&lt;p&gt;Every extra step makes a tool a little bit worse.&lt;/p&gt;

&lt;p&gt;That simple observation eventually became the starting point for Convertim.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem was never image conversion
&lt;/h2&gt;

&lt;p&gt;Building another image converter didn't sound particularly exciting. There are already hundreds of applications capable of converting files in a matter of seconds. The interesting part wasn't the conversion itself, but the unnecessary complexity that had slowly grown around such a simple task.&lt;/p&gt;

&lt;p&gt;We've accepted as normal the idea of opening a website, uploading personal files, trusting that they'll be deleted afterwards and downloading them again a few seconds later. All of this for an operation that any modern computer can perform locally almost instantly.&lt;/p&gt;

&lt;p&gt;What's surprising is that very little of that complexity actually benefits the user. It's simply the way these tools have evolved over the years. We assume that an internet connection is always available, that sending private files to external servers is acceptable or that creating an account is just another small inconvenience we have to live with.&lt;/p&gt;

&lt;p&gt;The more I looked at that workflow, the more obvious it became that image conversion wasn't the real problem. The real problem was all the friction surrounding it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The philosophy behind the project
&lt;/h2&gt;

&lt;p&gt;When I started building Convertim, I wasn't trying to compete with large online services or create the converter with the longest feature list. My goal was much simpler: to build the tool I wanted to use every day.&lt;/p&gt;

&lt;p&gt;I wanted to launch an executable, drag a few images into it, choose the output format and continue with my work. No accounts. No ads. No popups. And most importantly, without my files ever leaving my own computer.&lt;/p&gt;

&lt;p&gt;A tool that simply does its job and gets out of the way.&lt;/p&gt;

&lt;p&gt;I believe that's one of the defining characteristics of well-designed software. The best tools aren't the ones with the most features. They're the ones you barely notice because they remove work instead of creating more of it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fewer features. Less friction.
&lt;/h2&gt;

&lt;p&gt;Software development often revolves around adding new functionality. Every release introduces more options, more settings and more configuration screens, as if a product's value could be measured by the number of buttons in its interface.&lt;/p&gt;

&lt;p&gt;But we rarely ask the opposite question: what could we remove?&lt;/p&gt;

&lt;p&gt;Every unnecessary click, every avoidable wait and every external dependency adds a small amount of friction to the user's workflow. Reducing that complexity is usually much harder than adding another feature, but the impact on the overall experience is often far greater.&lt;/p&gt;

&lt;p&gt;That's the principle I tried to follow while building Convertim: simplify the workflow until only the essential remains.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building the kind of software I want to use
&lt;/h2&gt;

&lt;p&gt;Convertim exists because I needed a tool like this myself. It wasn't born from market research or a business opportunity. It came from repeatedly facing the same small annoyance during everyday work.&lt;/p&gt;

&lt;p&gt;That doesn't guarantee it will become a successful product. But it does mean that every design decision, every feature and every improvement is trying to solve a real problem that I've experienced firsthand.&lt;/p&gt;

&lt;p&gt;In the end, that's also the philosophy I try to apply to every project I build. Not creating software to impress people with endless features, but building tools that respect the user's time and remove unnecessary friction.&lt;/p&gt;

&lt;p&gt;Because the best software isn't the one that gets your attention.&lt;/p&gt;

&lt;p&gt;It's the one you forget is even there while you're getting your work done.&lt;/p&gt;

</description>
      <category>buildinpublic</category>
      <category>privacy</category>
      <category>softwaredesig</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Why ancer exists</title>
      <dc:creator>Ancer</dc:creator>
      <pubDate>Thu, 11 Jun 2026 09:00:00 +0000</pubDate>
      <link>https://dev.to/ancer/why-ancer-exists-1oa9</link>
      <guid>https://dev.to/ancer/why-ancer-exists-1oa9</guid>
      <description>&lt;p&gt;We live in a time when building software has never been easier.&lt;/p&gt;

&lt;p&gt;Every week there’s a new framework, a new library, or a new trend promising to change the way we develop applications. Technology evolves at an incredible pace, and too often it feels like the priority is following the latest trend instead of solving a real problem.&lt;/p&gt;

&lt;p&gt;But most businesses don’t need the latest trend.&lt;/p&gt;

&lt;p&gt;They need tools that work.&lt;/p&gt;

&lt;p&gt;They need systems that are reliable, maintainable, and capable of supporting their growth for years to come.&lt;/p&gt;

&lt;p&gt;That idea is what led to the creation of ancer.&lt;/p&gt;

&lt;p&gt;Not as a traditional agency or a factory of quick projects, but as a software studio where engineering and product thinking come before noise.&lt;/p&gt;

&lt;p&gt;Software Should Solve Problems&lt;/p&gt;

&lt;p&gt;The best software is rarely the most impressive.&lt;/p&gt;

&lt;p&gt;It’s not the one with the fanciest animations or the one everyone talks about on social media.&lt;/p&gt;

&lt;p&gt;It’s the one that quietly becomes part of everyday work.&lt;/p&gt;

&lt;p&gt;The one that automates repetitive tasks.&lt;/p&gt;

&lt;p&gt;The one that prevents mistakes.&lt;/p&gt;

&lt;p&gt;The one that saves time without demanding attention.&lt;/p&gt;

&lt;p&gt;When a tool achieves that, it stops being just an application and becomes part of the workflow.&lt;/p&gt;

&lt;p&gt;And that’s exactly the kind of software we want to build.&lt;/p&gt;

&lt;p&gt;Architecture Matters from Day One&lt;/p&gt;

&lt;p&gt;There’s a simple idea that reflects a common reality in software development:&lt;/p&gt;

&lt;p&gt;The easiest software to build is often the hardest to maintain.&lt;/p&gt;

&lt;p&gt;Many projects are created with only one goal in mind: shipping as quickly as possible. Everything works—until new requirements, new customers, or new processes arrive.&lt;/p&gt;

&lt;p&gt;That’s when the problems begin.&lt;/p&gt;

&lt;p&gt;Every change breaks something else.&lt;/p&gt;

&lt;p&gt;Every new feature takes longer than expected.&lt;/p&gt;

&lt;p&gt;Maintaining the product becomes increasingly expensive.&lt;/p&gt;

&lt;p&gt;At ancer, we believe good architecture isn’t about making a project more complex.&lt;/p&gt;

&lt;p&gt;It’s about making decisions today that will allow the product to keep evolving five years from now.&lt;/p&gt;

&lt;p&gt;Choosing Technology for Stability, Not Popularity&lt;/p&gt;

&lt;p&gt;We don’t chase every new technology trend.&lt;/p&gt;

&lt;p&gt;We prefer mature, stable, and well-supported tools.&lt;/p&gt;

&lt;p&gt;Technology is a means, not an end.&lt;/p&gt;

&lt;p&gt;Choosing a framework simply because it’s popular is rarely the right decision for software that is meant to last.&lt;/p&gt;

&lt;p&gt;We’d rather build on solid foundations than on short-lived trends.&lt;/p&gt;

&lt;p&gt;Because maintaining a system for years is far more important than impressing people for a week.&lt;/p&gt;

&lt;p&gt;Thinking in Products, Not Projects&lt;/p&gt;

&lt;p&gt;Software development is often treated as a checklist.&lt;/p&gt;

&lt;p&gt;Features get implemented, the project gets delivered, and everyone moves on to the next one.&lt;/p&gt;

&lt;p&gt;We prefer to think in terms of products.&lt;/p&gt;

&lt;p&gt;How they’re used.&lt;/p&gt;

&lt;p&gt;How they evolve.&lt;/p&gt;

&lt;p&gt;How they can continue creating value years from now without being rebuilt from scratch.&lt;/p&gt;

&lt;p&gt;That means investing time in architecture, performance, user experience, and maintainability.&lt;/p&gt;

&lt;p&gt;Things that rarely stand out in a demo but make all the difference once a product is in production.&lt;/p&gt;

&lt;p&gt;This Is ancer&lt;/p&gt;

&lt;p&gt;ancer was created around a simple idea:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Build useful software.&lt;/li&gt;
&lt;li&gt;Web applications.&lt;/li&gt;
&lt;li&gt;Internal business tools.&lt;/li&gt;
&lt;li&gt;Automation.&lt;/li&gt;
&lt;li&gt;Desktop applications.&lt;/li&gt;
&lt;li&gt;System integrations.&lt;/li&gt;
&lt;li&gt;Software designed to solve real problems and remain useful over time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We’re not trying to build dozens of products.&lt;/p&gt;

&lt;p&gt;We’d rather build a few and build them well.&lt;/p&gt;

&lt;p&gt;The Beginning&lt;/p&gt;

&lt;p&gt;This is only the first step.&lt;/p&gt;

&lt;p&gt;Over the coming weeks, we’ll be sharing projects, technical decisions, lessons learned, and part of the development process behind them.&lt;/p&gt;

&lt;p&gt;Because we believe good software doesn’t need to exaggerate what it does.&lt;/p&gt;

&lt;p&gt;It simply needs to do its job well.&lt;/p&gt;

&lt;p&gt;And that’s exactly what we want ancer to represent.&lt;/p&gt;

</description>
      <category>softwareengineering</category>
      <category>architecture</category>
      <category>programming</category>
      <category>buildinpublic</category>
    </item>
  </channel>
</rss>
