Alternatives to React for website development

Since leaving my last job in March 2025, I have avoided using React for website development. I am using vanilla JavaScript, CSS, and HTML with some third party libraries and a small framework I developed called places.js. These are the main website projects I am working on:

  • createthirdplaces.org/: The goals of this website is to promote accessible public spaces where people interact in person. It uses Kelp for styling. There is some use of places.js or highlight.js with it’s own styling for code examples. Most pages on the site run with no Javascript aside from code for blocking bot scraping.
  • dmvboardgames.com. This site is designed to support the mission of createthirdplaces.org by supporting public board game events in the DC area. It uses Kelp for styling and places.js for interactive parts of the website.
  • This website, which uses WordPress. I set up WordPress for this site more than 10 years ago, and I haven’t seen a strong reason to move towards another tool.

Source code for createthirdplaces.org and dmvboardgames.com can be seen here.

From looking through job postings and source code from open source projects, React is still widely used. Recent https://w3techs.com/technologies/overview/javascript_library from multiple sources confirms that it is one of the most popular JavaScript libraries. Despite this popularity, I think React is a flawed tool and that there are better choices out there.

Most sites are designed to render static content, and adding React is unnecessary complexity. For sites where interactivity is needed, I think React has problems that lead to an overly complex code base with UI performance issues.

1. Gaps in functionality around efficient cross-component state management, page routing, and API data fetching

Finding dependencies to address functionality gaps in React can be a time-consuming process. Due to the way React works, simply applying vanilla JavaScript patterns is probably not going to be a viable option. For example, I was once tasked with evaluating state management options for a React application, and the evaluation took two weeks.

First of all, there were a variety of state management tools available including MobX, Jotai, Redux Toolkit, and Zustand. Improved state management with more efficient uses of the useContext, useReducer, and useState hooks was also considered.

The project also had other dependencies used to address gaps in functionality, and it was using an old version of React. This version was not compatible with the latest version of some state management libraries. When I tried upgrading to the latest version of React, I ran into errors with some of the dependencies that required version upgrades and some code changes. Also,one of the dependencies was incompatible with the latest version of React, and adding a replacement was gong to take a while.

2. Quality of official documentation

As of June 2026, the official documentation recommends using React with a full-stack framework. Not every website requires custom server-side code, and adding it will likely lead to unnecessary complexity. While the documentation mentions that a full-stack framework can be configured to only support client-side rendering, the configuration is still added complexity.

There are better ways of implementing the functionality provided by a full stack framework. If the goal is to fetch data and render web pages on the server, I think PHP is a better choice due to the ease of getting started and quality of documentation. Otherwise, I think it’s better to run a separate server in the language of your choice. This ensures that complexity on the frontend and backend is isolated, which improves long-term maintainability of a codebase.

The documentation recommends one of three frameworks, Next.js, React Router, and Expo. I don’t think any of these frameworks are worth using.

Next.js is the top recommendation. It has features designed to rely on server-side logic, and they do not work with client side rendering.

The next recommendation, React Router suggests configuring a website as a single page application(SPA). I don’t think a website should be created as a SPA. Using a SPA can make the user experience slightly better due to faster loading speed after the initial page load. However, creating a high quality SPA will add a significant amount of complexity and time needed to maintain code. Complexity will come from the code necessary to implement SPA functionality in addition to the fact that complexity on one area of the website is less likely to be isolated.

It doesn’t appear that client side rendering is a limitation for Remix, which is the third recommendation. However, the documentation includes functionality that is unnecessary for a website.

The documentation is also hard to follow in some pages. One example is the fact that the https://react.dev/reference/react lists sections for server APIs and static APIs. Both of the them are used to render React components to HTML and include text saying “Most of your components don’t need to import or use them”. Meanwhile, these sections are also a distraction from documentation on hooks and built-in components that are more relevant.

3. API complexity

The React API has become very large, and it’s hard to know when certain functionality should be used. Every React application I worked on has turned into an unmaintainable mess of spaghetti, regardless of how experienced the developers were. The complexity of the API without effective tools for structuring UI code made it difficult to avoid the spaghetti.

The most notable example of this I experienced is with state management hooks. useContext, useReducer, and useState can all be used to manage UI state. Using all 3 hooks in a codebase will make it harder to understand. One can also use a state management library that comes with its own hooks.

The API complexity also leads to slow websites due to the challenge of writing React code. For a good user experience, a user interface should show some sort of feedback within 0.1 seconds of a user clicking on a button. On a slow React website, it might take significantly longer than 0.1 seconds. In the case that the codebase has turned into spaghetti, finding the cause of slow responses can be next to impossible.

Once the cause of the slowness has been identified, fixing it can take a long. Sometimes, this means indefinite postponement because of other high priority work.

More evidence that generative AI is a scam

Generative AI is a fundamentally flawed technology that is being propped up by billions of dollars in subsidies.

Generative AI company OpenAI is running out of money and is planning for an IPO. In the first quarter of 2026, they lost $1.22 for every dollar of revenue generated.

Meanwhile, the cost of GitHub Copilot AI tokens is going up by 10x to 100x.

Businesses are also funding AI data centers with collateralised debt obligations like the ones that caused a major financial crisis in 2008. The commercial real estate market in the US is already approaching a state of crisis, and the pop of the AI bubble will make the crisis worse.

Many of these data centers are being viewed as commercial real estate loans, and are contributing to a rise in real estate debt. Meanwhile, commercial real estate prices are on a steady decline. The decline will likely accelerate once the AI data centers are recognized as worthless.

Sources

International Monetary Fund, Commercial Real Estate Prices for United States [COMREPUSQ159N], retrieved from FRED, Federal Reserve Bank of St. Louis; https://fred.stlouisfed.org/series/COMREPUSQ159N, May 26, 2026.


Board of Governors of the Federal Reserve System (US), Real Estate Loans, All Commercial Banks [REALLN], retrieved from FRED, Federal Reserve Bank of St. Louis; https://fred.stlouisfed.org/series/REALLN, May 26, 2026.

Deciding to not work on AI idea I have

I have an idea for training task-specific AI models using multi-stage training. The first stage would be training the AI on simple data. During subsequent steps, the model would be retrained with increasingly complicated data. However, I am deciding not to work on it for two main reasons.

 First of all, while the idea seems to make sense in my head, it may not be realistic to actually implement. Practical realities are likely to make multi-stage training not make sense. Researchers have tried to implement a multi-stage training process in the past and ran into difficulties. If resolving them is possible, the solution is probably going to be complex and require a more detailed understanding of AI model training.

Also, I think software should be designed from a user first perspective where a developer talks with people and uses the feedback to create a helpful product. Trying to focus on a specific solution would move me away from a user first perspective, even when the solution has uses. User needs for a solution will also fluctuate over time. It’s important to pivot away from working on a technology if it is no longer relevant to what a user is looking for. Also, if a new technology I develop turns out to be useful, other people will try to copy the technology or develop their own version.

When it comes to developing AI technology, I believe in being fully transparent about how it works. If it is based on some proprietary algorithm, people won’t be able to understand it and give feedback. It would also be far more disconnected from users. Also, models can be very complex, and trying to make one that is straightforward enough for people to understand without a background in AI is hard.

Why I do not use generative AI for prototyping

I often hear people say generative AI is useful for prototyping because it speeds up prototype creation. I strongly disagree with this, although I acknowledge that the speed gains from generative AI.

Protoypes should not be created in isolation. Talking to potential users will help guide what you prototype should do. AI lacks the ability to consider subjective user preferences that are described. While a AI prototype will be functional, it will do a poor job considering user preferences. AI also lacks the ability to convey the meaning of a prototype’s developer.

Quickly creating a prototype with generative AI can give a false impression about the state of a product. The prototype will need to be rewritten as AI is incapable of developing and maintaining user-facing software on it’s own. However, people will judge how quickly a final product can be delivered by the visual state of the prototype and how quickly it was made.

For example, for my website dmvboardgames.com, I made a logo using meeples to draw letters. and I use meeples elsewhere on the site. Meeples are used in many popular modern board games such as Carcassone. People typically think of games such as Monopoly when they hear about board games. I wanted a way to convey that my site was focused on events for modern board games, and didn’t want to use a more traditional board game symbol such as dice.

I also created a hexagonal background with light versions of colors similar to the ones used on the Catan board. Catan is a classic well-known example of a modern board game.

I had talked to enough people who played modern board games to know they were familiar with what a meeple looked like. I also realized that many people who didn’t play board games were somewhat familiar with Catan. Generative AI cannot talk to board game players or come up with a relevant design for a background. Users have also found that the hexagons and meeples looked interesting, even when they didn’t recognize what the represented.


I found a blog post that gives a great detailed overview on the problems with generative AI prototyping: https://www.frank.computer/blog/2026/03/prototyping-bottleneck.html

My thoughts on AI

I think AI has a variety of great use cases. It has demonstrated consistent utility in tasks-specific applications such as email spam filtering and weather forecasting.

On the other hand, I think LLM AI tools such as ChatGPT and Claude are scams. While some people are seeing practical use from LLMs, it is because of artificially low costs. LLMs are currently being subsided by billions of dollars in corporate investment and exploited labor.

I see LLMs in a manner similar to playing blackjack at a casino that gives you $10 every time you win, regardless of how much you bet. Following certain strategies will allow you to win more often, but you will still lose sometimes. Also, casinos are trying to make a profit, and aren’t going to hand people large sums of free money forever.

Using an LLM for the possibility of gaining a temporary productivity boost seems like a big risk for me. I don’t want to be dependent on a tool that doesn’t have clear bounds on where it is used and could become more expensive. Also, I see considering one”s audience as a critical part of high quality work, and LLMs lack the ability to understand humans.

I went through a period of overusing AI in the early 2010s because I overestimated the potential of AI. For example, I was under the impression that I could evolve intelligent AI for a real time strategy game through a genetic algorithm that simulated evolution. I was proven wrong when hitting a wall early in the process with automated formula generation.

Being in the right environments at the time helped me gain a more reasonable view of AI. Most of my computer science classes were about topics not related to AI, and my classmates rarely talked about AI. Also, AI was not a major focus at any of the jobs I had between graduating college in 2014 and ChatGPT’s release in late 2022. As a result, I was able to move away from AI overuse.

On the other hand, if I was in a college program or job where AI use was a major focus, I would’ve had a hard time moving away from AI overuse. I think it is important to consider that many people are currently in environments where using LLMs is a requirement.

In order to reduce AI overuse, I think it is important to help create environments where people can chose to not use LLMs.


This page has more details about my thoughts on AI. https://www.bponnaluri.com/ai/

There is more to improving social media than building a better Facebook

The quality of Facebook has declined significantly in the past 15 years. Back in 2011, it was a great place to keep in touch with friends, share photos, and organize events. Now Facebook feeds are full of advertisements and content from random strangers people decided not to follow, and the site is designed to keep people online.

Building a people-centric social media website that helps people keep in touch and organize events isn’t simply a matter of building a better Facebook. Many people have built social media websites that are better than Facebook, but they have either failed to be Facebook replacements, or they have been turned into sites designed to keep people online.

My experiences trying to build a better Facebook

I created a website to advertise local board game events at dmvboardgames.com. I want people to use the site to find board game events where they can meet people and make friends. While it is functionally useful as a specialized alternative to Facebook, that is not enough. Many people are used to finding events on Facebook, and they have no way of knowing that dmvboardgames.com exists. I’ve spent time actively reaching out to people who play board games to let them know about dmvboardgames.com, and I will need to continue in order to make sure people know about the site.

People are also rightfully concerned about dmvboardgames.com using their data, and many are under the impression that the site is following the Silicon Valley model of get customers first, and then monetize. All code for the site is open source, and I will be running the site indefinitely as a non-commercial website that does not make a profit. It takes time for me to demonstrate that the website is different from a Silicon Valley startup.

Dmvboardgames.com also doesn’t follow many of the typical practices of a Silicon Valley tech company. For example, dmvboardgames.com does not have an official social media presence on Facebook, LinkedIn, or other similar websites. Also, all code written for dmvboardgames.com was written without the help of generative AI, and the use of generative AI for future contributions is banned. While I believe it’s best to keep following these practices, it does make it harder to reach out to people, since they aren’t used to the practices dmvboardgames.com follows.

Why building a better Facebook isn’t enough

There are many reasons why simply building a functioning alternative to Facebook isn’t enough. I think the biggest reason is cultural norms that have developed around the tech industry. They incentivize a focus on trying to monetize users as much as possible, while manipulating them into tolerating declining quality.

Network effects are a factor in keeping Facebook around, since many people find Facebook as a convenient way to keep in touch with friends and family. However, network effects aren’t enough due to the current quality of Facebook and the fact that many people including myself have already stopped using Facebook.

Many people are aware of the user-hostile cultural norms. This leads them to mistrust new alternatives, From their perspective, a new alternative to Facebook is going to become just as bad. People will chose to use Facebook because it is familiar, and there are known workarounds to problems such as seeing unwanted suggestions. On the other hand, if a new alternative to Facebook becomes just as bad, it will take time for people to find workarounds to problems that arise.

Cultural norms end up affecting the people working at tech companies. They are pushed to ignore their sense of ethics and prioritize corporate tech profit. Tech companies are also reliant on venture capital(VC) funding to get started. A VC firm ends up gaining partial ownership of the company. Through this partial ownership, VC firms will push a tech company towards additional monetization to gain investment returns.

Founders of tech companies are not immune from this cultural push to monetize. I believe that most tech company founders, including billionaires Jeff Bezos, Mark Zuckerberg, Peter Thiel, and Sam Altman are fundamentally decent people. However, they have an ongoing history of greed and manipulation and that is rewarded by their environment. It is practically impossible to successfully run a major tech company using Silicon Valley norms and maintain a sense of ethics.

What else needs to be done

Future for-profit tech companies should avoid Silicon Valley and find an alternative to venture capital funding. Also, I think more tech projects should be created by nonprofits.

However, this isn’t going to be enough. These companies need leadership not influenced by Silicon Valley tech norms, and they need support from a more people-centric environment. The toxic norms of the tech industry that came from Silicon Valley have spread across the US. They have widespread influence among regular people outside of the tech industry.

In summary, convincing Americans to adopt a less pro Silicon Valley mindset is an essential part of making sure we end up with a better Facebook.

Retrospective on board game night and advertising events

Yesterday, I hosted a successful Friday board game night at City-State Public House in DC and realized I need to change the way I advertise events.

The event was advertised on Meetup and City-State’s website. I was concerned about attendance at the event because there were no RSVPs on Meetup besides mine. After arriving at City State, I sat down with my games, and thought I would go home after a while if nobody else showed up. At the time, I thought one other person showing up would be a success.

To my pleasant surprise, 10 other people showed up. One person said they found out about the event through City State’s website. Two of their friends also came, which suggested word of mouth helped advertise the event. Other people either saw the event on Meetup and didn’t RSVP or heard about the event somewhere else.

I also spoke with 2 people who were part of the Meetup group I hosted the event through, and they were not aware of the game night I was hosting.

Despite the success of the event, attendance did not reflect the level of interest people had in playing board games. A group that used to host Friday game nights at City-State had more than 20 people show up. I also used to host Friday game nights at another location for around 50 people.

Attendance and people’s awareness of the event showed me evidence of the following patterns.

  • People often find out about events through word of mouth
  • Meetup has become far less useful for promoting events compared to 4 years ago.

Here are lessons I learned about promoting events I host in the future.

  • There is a lot of information on the Internet, which makes information about an event hard to notice. If an event is noticeable, that also means it is more likely to attract unwanted bot traffic
  • It is useful to advertise events on a website for a specific location, because there is less extraneous information. Also, some people want to go to an event because of the location due to some combination of convenience, the overall vibe, and the possibility of seeing people they know.
  • Although advertising events online is useful , offline advertising is better. Online event advertising can come across as impersonal, assuming there are no distractions from other information. Focusing on impersonal promotion goes against the way I want my events to be run. For example, if I hosted a board game night for 60 people where everyone played games in silence and said absolutely nothing during the event, I would see that event as unsuccessful. While board games are the main focus of my events, I don’t want people seeing my events purely as board game optimization opportunities. I want people to make casual conversation.

Flexibility of deciding to solve problems with software

As someone with programming experience, I think it’s important to have flexibility to decide if if a problem should be solved with software. Focusing on only addressing problems with software is limiting and leads to ineffective low quality solutions.

I have been focusing on addressing the problem with a lack of accessible public spaces known as third places. I want to drive up demand for third places by showing people how great they are, and by encouraging other people to get involved in promoting them.

I have been trying a variety of things including working on two non-commercial open source software projects. One is a JavaScript framework for building websites that facilitate interactions in third places. The other is a decentralized platform for hosting in person events. However, most of my success has come from in person interaction.

Problems

I have been hosting regular Sunday board game events in third places since 2021. Until recently, many of my events had challenges with people not getting along or disagreements about what to play. I had tried many solutions with mixed degrees of success, and decided to make events more focused.

I labelled the events as “High Interaction board games”, and decided that longer games should start later in the afternoon. During the first hour of an event, quick social games would be played while people ate lunch. Later, I narrowed down events to focus on 1-3 hour high interaction resource management game.

Afterwards, things started to improve. Events stopped having constant issues with people not agreeing on games to play, and personality conflicts largely disappeared. Also events started having a more consistent and predictable experience. Playing a more predictable set of games meant that teaching was easier because other people could help, and I could get good at teaching the same game by playing it repeatedly. Nowadays, 10-15 people typically attend, and they will help run events.

Due to help from others and fewer problems at events, hosting has become easier. The events have also become places where people will share information about other third places, and regulars are now far more likely to become friends. These events also demonstrate to other people that third places are great for hosting events for things they enjoy.

In person conversations have also given me great feedback on how to promote third places and take action.

Notes about tech industry.