A router can do many things and is usually only good at one thing. You can build your own but it is tough to get something as good as a low cost router. I know from experience. Here are the details.
A really cheap router has the lowest cost components everywhere and is practically useless, For just a sight jump up in price, there is a wide range of routers with excellent WiFi. At any one time, at least one of the better routers is on sale at a price close to the cheap junk. There is no need to buy the useless rubbish. Look at what you get for just a few dollars more.
The router contains
The router contains a processor, CPU, memory, flash storage, an Ethernet switch, a WiFi module, a USB port, a display, and a power supply. They are all almost the same except for the WiFi and antenna array. You end up choosing something based on your WiFi requirements. How do the components compare to something you can build yourself?
Start with the power supply. They are all wall plugs. In Australia, you can buy the plugs from AU$8 up to $17. The cheapest ones are under powered to the point where you can never expand, just like the router. The $17 end is decorative for people indoctrinated into the Apple white-is-best fashion. $15 gets you the power to build a router with more than one disk, a reason you might want to build your own.
Routers rarely tell you the power output from their power supply or the power used by the router, making it impossible to work out the power available through the USB socket for an external disk. A test a few years ago showed one router only supplied enough power to the USB disk if the Ethernet ports were not in use.
The display? Routers have almost useless displays. You have to connect a computer to see anything informative. If you built your own with something like a Raspberry Pi, you could have an expensive case with an even more expensive touch screen. The Pi and other build your own alternatives have a socket for a monitor, letting you recycle an ancient monitor as a screen for a real display. A recycled laptop with a 14" is almost ideal for this part of a router and cheaper than a Pi if you already have a spare laptop.
On one router I no longer use, you have to interpret errors from a blinking light that is difficult to see until you switch off the room light. You then have to work out if the light is blinking fast or slow. There were combinations where some of the lights were blinking but they should not blink, according to the user manual. A real display is so much more useful in a frequently changing network.
Low cost routers have a USB port to connect in a modem or a disk for storage but not both. If you build your own with a Raspberry Pi 3B or up, you get four USB ports for connecting anything. Four USB ports lets you leave a spare keyboard and mouse plugged in during development and configuration. Add a spare monitor to use the router for anything including looking at the data stored in the disks. Your router can then be used as a file server, for running backups, and a few other things.
My low cost router from a couple of years ago has USB 2. Some low cost routers have USB 3 to run modern 2.5" disks but they do not have the processor speed required to use USB 3 speeds. Looking at the review of an AU$90 router, the fastest USB 3 disk transfer speed is slower than the fastest speed you would get from USB 2.
If you use a Pi, you need at least a Pi 4 to get USB 3. Most notebooks less than ten years old have one USB 3 port and a processor capable of handling files at that speed. To get ahead of the low cost router, you need at least 2 USB 3 ports which means a Pi 4 or a notebook less than 5 years old.
For my use, the two USB 3 ports on the Pi 4 is enough and the one USB 3 port on my old notebook is not enough. If my old machine was a laptop, it might have room for one or two 2.5" disks which would remove the need for more than one USB 3 port.
The only real change in routers is WiFi. You use 2.4 GHz for a good range at the cost of interference. 5 GHz has less interference but less range. The new 60 GHz option, WiFi6, is almost useless with no usable range, strictly for a group of gamers sitting around the router. Anyway, the slow processors in low cost routers could not handle the combined speed of all the ranges.
Routers under $100 have problems handling the slow 2.4 GHz. 5 GHz should be twice as fast but is often less. Due to the slow processors in use, you have to pay a big premium to get something as fast as my spare old laptop.
If you build your own, you can replace the WiFi component any time you want. The Raspberry Pi 4 has built in WiFi that is better, at close range, than my oldest router. My slightly new router has advanced MIMO with excellent antenna for a cost similar to buying a fast non MIMO WiFi adaptor for a Pi. Most of the WiFi options for DIY are good in the same room but start to fail at distance and through walls containing metal pipes, metal reinforcement, or metal panelling. MIMO is the minimum for whole house coverage.
A low cost router is a good way to get excellent WiFi even if you switch off other features. Looking at one excellent option, currently from AU$150 to AU$290, or on sale at AU$99 if you are lucky, the WiFi is at the top of the range for connections to current notebooks and the router can run close to the fastest 5 GHz speeds. File transfers are still stuck down around USB 2 speeds.
The best alternatives appear to be PCI cards for desktop computers. Good USB add-ons for something like the Pi are hard to find. There are USB 3 MIMO adaptors that do not have the antenna required for real MIMO.
I looked for the lowest cost router with WiFi equivalent to my faster router plus the lowest cost USB equivalent. The USB adaptor cost several dollars more than the whole router. The difference is the huge production runs for routers compared to the adaptors. I expect the adaptors in that range to drop in price compared to routers as the routers are already at mass produced prices while the new MIMO adaptors with multiple antennas will catch up.
Gigabit wired Ethernet is everywhere in notebooks and laptops plus the Raspberry Pi 4. The lower cost Raspberry Pi models run at just 0.1 Gb. In the middle is a Pi 3B+ featuring Gb Ethernet connected in a way that limits speed to 0.2 Gb. Only the Pi 4 can handle full Gb speed and the cheapest Pi 4 does not cost much more than a 3B. Then you have to add a switch, blowing out the cost. The low cost router option kills a Pi based alternative if you are only using wired Ethernet or you need a few wired connections with good WiFi.
Recycling an old notebook and old switch make better sense as they could be thrown out otherwise. An old switch added to a Pi 4 could work if the built in Pi WiFi has enough range for your use. The Pi WiFi range is not enough to reach across my house, working only across one room. I have one small workspace where the Pi 4 range is sufficient but my main workspace, across several rooms, is too big for the Pi 4 WiFi.
If I put a Pi 4 together with my unused eight port switch, the cost would be significantly less than the cost of the few routers with eight wired ports.
The low cost routers have a tiny bit of flash memory for settings. Sometimes you find the limit after you buy the device. Think of a small office where people from the field drop in once per week to use the WiFi. You add each one to the router until you hit a limit to the number of defined guests because the router does not have the storage for a longer list.
An example. My newer router had a firmware upgrade where they jiggled the code around to decrease flash memory usage in one area and expand a settings list to use the new spare space. The authorised guest list expanded to 64 entries. That is still a useless number for many offices, libraries, and anyone else with a wide range of regular visitors.
The Raspberry Pi option uses microSD cards for that type of storage. You can get microSD cards up to 1 TeraByte enough for millions of guest entries. Old notebooks with USB 3 usually have mSATA SSDs at a minimum size of 128 GB, far more than you need for router settings. Another reason to build your own.
The Pi 4 is available with 2 GB, 4 GB, or 8 GB. Old notebook computers have 4 GB. Cheap routers have 0.2 GB. Reasonable low cost routers have 0.5 GB. That 0.5 GB means they have to cut corners in their programming. The 0.2 GB machines require more extreme measures to make their squished up software. Some of the 0.5 GB models have the 0.2 GB trash with just some fancy graphics added, not useful functionality.
A BYO, Build Your Own, device can have as much memory as you want for whatever interface you choose and you can add multiple interfaces with one for local use, another for use across the network, then you can expand by adding file servers and automated backups. My tests on an old notebook with 4 GB of memory shows the machine rarely reaching 2 GB. The Pi 4 with 8 GB is overkill for a router. Any notebook or laptop with USB 3 will have at least 4 GB and possibly the option to expand. You would never be limited by memory.
Cheap routers have pathetic Marvell processors dragging you back to the dark ages before Gigabit Ethernet and modern WiFi. They are just too slow. Slightly more expensive routers have Broadcom chips like the cheapest Raspberry Pi. Still way to slow if you put any value on your time.
One of my routers is bang in the middle of the low price range and is as slow as a Raspberry Pi Zero. Slow. Slow. I would not recommend a Zero for any network related project. A Pi 3B is several times faster and beats many high price routers. For DIY, Do It Yourself, recycle a 3B if you have one spare or start with the cheapest Pi 4.
Development on a 3B is too slow for me. Buy a Pi 4, develop on the Pi 4, then move projects to a 3B if you have a spare 3B going to waste and do not need Gigabit Ethernet.
Currently in our local shops, the lowest cost Pi 4, the 2 GB model, is the same price as the latest 3B, the 3B+. At that price, there is no reason to use less than the Pi 4 2 GB for this type of project. Note that you can buy a whole router on sale for a price similar to the Pi 4, a reason people end up with junk routers.
Routers usually provide excellent DHCP with a Web interface. I worked on setting up a DHCP server based on a Raspberry Pi or an old notebook. Both were painful. The actual DHCP part was easy but Linux distributions are going through changes making network configuration difficult to understand and difficult to configure either though their user interface or by direct editing of configuration files.
The actual DHCP part should be easy for simple networks as the software is unchanged over many years. There are way too many options as proved by the advice posts directing me to a wide range of settings with most misunderstood by the person mentioning the setting. OK, they might understand the use of the settings for something they did but the advice never worked in the combinations I needed. The simple basics work. The complications are rarely needed.
I would not bother replacing any of the router DHCP options I have used over the last few years. BYO DHCP would only occur if I had built my router for a different reason. By then I would have won the battle against network settings. If Linux fixed their networking components to match routers, the DHCP part would be easy.
I discussed Linux network configuration problems in forums and almost every bit of advice worked only on a different distribution of Linux or a different version of the same distribution. I worked with two major distributions, both had different software packages for configuration, both had out of date documentation, and neither had an example of the simple configuration I needed to replace a router.
One distribution uses a new package with "one configuration file to rule them all". Unfortunately it does not yet allow the basic setting I need.
The other distribution uses the old system of multiple packages and configuration files but with some changed in ways that appear to be not understood by anyone using that distribution.
You can replace the software in routers with OpenWRT but it does not make a useful difference. OpenWRT can also be installed on a Pi or an old computer. Comparing OpenWRT to my newer router, the router software is way better.
OpenWRT lets you plug in add-on packages and one of those add-ons might make OpenWRT a better choice for you. I did not find any add-ons that would make me change to OpenWRT. If I used OpenWRT and was going to do something fancy, file server, Web server, I would build them on a separate server with a conventional Linux OS.
Some routers can run a file server from a USB port if the USB port is not used for Internet access. Tests of router file servers show they are very slow.
Building a file server is one of the easier options provided the network settings are for one simple wired Ethernet connection. I have an old desktop computer I can fill with disks and connect via wired Ethernet. You just add Samba for SMB support then some directory shares with access permissions. I use the old desktop as my file server because it is fast, as fast as the network can handle, faster than the file server in an affordable router.
If you are working on a file server, you would know the basics of installing a package, defining a directory, and setting permissions. Samba adds parallel permissions. Everything else is the same. After adjusting to the idea of separate set of permissions, Samba works.
You should get the same result if you replace Ethernet with WiFi.
You might run into difficulty if you try to use WiFi and Ethernet together and try to have different shares or permissions. In Linux, using wired and wireless connections together only works easily for a small range of well documented combinations on old versions of Linux. In some of my machines, I have to switch off the wired connection before I can access the Internet through the WiFi connection and no one in any support forum has ever provided an explanation of why you are limited to such a crude option.
The same question is asked by a range of people across different distributions and different releases of popular distributions. I have not found a working explanation.
Some user interfaces for Linux networking do provide a setting that is supposed to fix the problem but it switches off other useful settings. It should be independent. I think the developers were confused and tried to set two unrelated settings with one switch.
I have excellent Gigabit Ethernet switches from many years ago with both still working reliably. One has 5 ports and the other 8. At the time, both switches were way lower in cost when compared to routers with that many ports. Then the brand was swallowed up by a big company, the quality reduced to pathetic, and the price bumped up to unbelievable. Comparing their original cost to modern low cost routers, they are still the better choice. I wait for the day when someone clones that old solid reliability.
I recently purchased the leading brand of plastic cased switches and the thing broke a few days after the guarantee ran out. Junk. The device was not stressed in any way. No heat. No voltage spikes. It was not switched on most of the time. It just broke because the leading brand was only interested in cutting costs to increase profits. Many low cost routers look the same.
In a work environment where machines are plugged in and out, I would use a separate switch of good quality. The plastic Ethernet bits of plastic routers are ok for something static, like a file server, but not for frequently plugging in notebooks. Use the WiFi for short term connections, the only way to avoid plastic failure.
You can extend the range of a router with a wired device or a WiFi repeater. WiFi repeaters cut transmission speed in half because they share the incoming and outgoing traffic on the same WiFi. Wired is better.
If you cannot set up a wired extension, you could use something like a Raspberry Pi with two WiFi adaptors. Put them on long USB cables with the incoming antenna towards the main WiFi and the outgoing antenna in the room where you want the WiFi repeated. That should reduce interference. You could also map out different ranges, say 2.4 GHz for the connection between routers and 5 GHz for the shorter range traffic local to each router.
A build your own repeater could also cache video and similar traffic on a local disk. The device could also have a local file server for backups. The two connected devices could sync backups during off peak times, giving you two mirrored backups in case one disk breaks.
In my case, I have two routers and a nice wire from one end of my house to the other. I can use the newer faster WiFi router in my main work area and the older device at the other end of the wire. WiFi repeating does not work because of a metal wall blocking the wireless signal. In the long term, I will upgrade our notebooks and need to replace the routers to get matching faster WiFi. A Pi 4 looks like a better long term investment where I can just change the WiFi adaptor.
Shop around for a good router on sale at a price similar to the cheap options. Read the reviews to get real speed measurements for the WiFi. You will get better speed although not as good as the top build your own device. Or if you do get the same speed, you will not be able to upgrade the speed when WiFi improves. What you should get is excellent MIMO at a level difficult to reproduce with USB adaptors.
If you have old hardware to reuse, a desktop or a decent laptop, use the spare hardware for a file server. Leave WiFi and DHCP to the router.
Moving DHCP off the router onto something else is easy but managing DHCP changes is not as easy. The router DHCP is ok and not worth the effort of replacement unless you have some other need for a separate always on server with easy access, perhaps a screen and keyboard or VNC style remote access.
Using your own switch is useful when you need more than four Ethernet connections or you frequently plug/unplug test devices. There is no reason to break your wonderful MIMO router device by breaking the Ethernet part.