In 2006 I built gpokr.com, a free Texas Hold'em site where you play against other people for play chips, with chat at the table and a monthly leaderboard. It never became a business, but its been running with a few thousand people for twenty years, some of them since the first month. This year I finally rebuilt the whole thing. What it was: a Java client compiled to JavaScript with GWT (Google Web Toolkit, which Google stopped caring about years ago), 104 PNG images for the cards, a Java 8 backend, and a MySQL database still on MyISAM tables from the 2000s. It worked, but it looked its age and every change was painful. What it is now: - The client is a complete rewrite in React and TypeScript, with the table drawn in PixiJS so the cards, chips and animations run on the GPU. It is about 72,000 lines of TypeScript now, against 47,000 lines of the old Java client it replaced. - Every card, chip and suit is an SVG, so the table is sharp on a phone, a 4K monitor and a Discord window. The old PNG set is gone. - The same client ships as the website, iOS and Android apps (Capacitor), and a Discord Activity, so a group of friends can open a private table inside their Discord call. - Backend moved from Java 8 to Java 24, the database from MyISAM to InnoDB on MySQL 8.4, and everything runs on AWS Fargate with Redis pub/sub between the gateway and the table servers, over WebSockets instead of polling (polling!!!). - Plus I've been able to add plenty of new features in a short amount of time even handling some older ideas from the community. Last week I shipped the ability to pick which seat you sit in, something a player first asked for about twenty years ago. His comment on the change log: "Just 20 years to address my issue. That's service!" Oops. Life happens. The hardest part was not the code. It was rewriting a live game that 20-year veterans play every day without changing how it feels to them, so the new client and the old one ran side by side for months, and the classic UI is still one click away for anyone who wants it. It is free, there is no real money anywhere, nothing to deposit, win or cash out, and you can sit down as a guest without an account: https://gpokr.com Happy to answer questions about keeping a side project alive for two decades.   submitted by   /u/rdewsbury [link]   [comments]