[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f1izgpkdqqxumc":3},{"code":4,"message":5,"data":6,"timestamp":36},10000,"success",{"full_name":7,"position":8,"description":9,"language":10,"stars":11,"forks":12,"stars_gained":13,"age_days":14,"hn_threads":15,"one_liner":16,"summary_md":17,"topic":18,"github_topics":21,"license":27,"homepage":28,"updated_at":29,"history":30},"apache\u002Ftomcat",11,"Apache Tomcat","Java",8262,5410,0,5502,[],"A Java servlet container for teams that need to run Jakarta EE web apps on infrastructure they control.","Apache Tomcat is infrastructure, not a novelty: an open-source implementation of Jakarta Servlet, Pages, Expression Language and WebSocket. Its README positions it as the container behind many large-scale production web applications. If you have a Java web application packaged as a WAR, the practical question is whether Tomcat fits your deployment and version constraints.\n\n## The problem\n\nA team finishes a Java web application and needs somewhere for it to run. The application expects servlet APIs, HTTP session handling and lifecycle management rather than a bare socket. Without a container, the team writes request routing, session storage and lifecycle code that the servlet specification already defines. With Tomcat, the packaged WAR goes into a deployment directory, the container starts, and the application answers HTTP on the configured port. The work shifts from building runtime plumbing to configuring and maintaining the container.\n\n## What's different\n\nTomcat's distinguishing feature is that it is a specification implementation rather than an application server bundle. It covers the servlet, pages, expression language and WebSocket specs from the Jakarta EE Platform, so application code written against those APIs runs without adopting a larger stack. The project publishes separate major lines for Tomcat 11, 10 and 9, and the [version overview page](https:\u002F\u002Ftomcat.apache.org\u002Fwhichversion.html) exists because Jakarta namespace changes across releases make version selection a real decision.\n\nThe trade-off is that Tomcat deliberately stays close to the specs. Teams needing the full Jakarta EE profile, built-in integrations or a managed console are outside what this project is set up to provide. For teams that only need a servlet container, the narrow scope is the point: fewer moving parts and a runtime that maps directly onto the API contract.\n\n## Who should try it\n\nTomcat fits teams with an existing or planned Jakarta Servlet application that need a container they install and operate themselves, including organizations already standardized on Java. The [PoweredBy page](https:\u002F\u002Fcwiki.apache.org\u002Fconfluence\u002Fdisplay\u002FTOMCAT\u002FPoweredBy) lists organizations running large-scale applications on it, useful context when weighing adoption. It is a poor fit for someone wanting a turnkey platform with administration tooling and an opinionated stack, or for a project not built on the Jakarta APIs. It is also not the entry point for evaluating modern deployment patterns: surrounding orchestration and operations remain your responsibility.\n\n## Requirements and limitations\n\nThe first real constraint is version alignment. Tomcat 11, 10 and 9 target different Jakarta EE generations, so an application built for one line may not run unchanged on another. The README points readers to the version overview rather than promising cross-version compatibility, and that decision should happen before you write deployment scripts.\n\nSetup follows documented paths rather than a single installer: the repository's RUNNING.txt and the versioned documentation are the source material, and the docs webapp ships inside the server. Ongoing upkeep is the other constraint. Because Tomcat is a long-lived infrastructure component, you must track releases and security fixes through the project's announcement list and mailing lists yourself. The Apache-2.0 license covers use, but operations after installation are entirely on the operator.\n\n## HotRepo's take\n\nThe repository has existed for 5,502 days and had 8,262 stars on 2026-10-25, appearing on the daily board on two tracked dates since HotRepo began on 2026-10-24; that sample cannot establish whether interest is rising or fading. The long history makes it a known bet, but nothing in this data speaks to current maintenance quality. Before committing, check the [RUNNING.txt](https:\u002F\u002Fgithub.com\u002Fapache\u002Ftomcat\u002Fblob\u002Fmain\u002FRUNNING.txt) setup notes and match your application's Jakarta namespace to the major line you will track for security updates.",{"slug":19,"name":20},"devops","DevOps & Self-hosting",[22,23,24,25,26],"http","java","javaee","network-server","tomcat","Apache-2.0","https:\u002F\u002Ftomcat.apache.org","2026-10-25T03:22:23Z",[31,34],{"date":32,"stars":33,"stars_gained":13},"2026-10-24",8261,{"date":35,"stars":11,"stars_gained":13},"2026-10-25",1792909362]