Paicoding (技术派) is an open-source community and content-publishing platform built with Spring Boot, MyBatis-Plus, MySQL, Redis, ElasticSearch, MongoDB, Docker and RabbitMQ, aimed at Java developers who want a real, self-hostable community site to run, study and extend.
What it is
Paicoding is a complete community system distributed as source code under the Apache-2.0 licence. Its README describes a modern internet-style architecture with a rewritten UI, one-click source deployment, and end-to-end flows for article and tutorial publishing, search, comments and statistics. The codebase is split into Maven modules — paicoding-api for shared enums, entities and DO/DTO/VO types, paicoding-core for utilities and shared components such as search, cache and recommendation, paicoding-service for business logic and database access, paicoding-ui for HTML, JavaScript, CSS and Thymeleaf resources, and paicoding-web for HTTP entry points, startup, permission checks and global exception handling. The authors state that the code is fully open with no secondary encapsulation, which is what makes it usable as a secondary-development base rather than a black box.
The concrete problem it solves sits inside the Java learning ecosystem. Instead of reading isolated chapters about concurrency, caching or messaging, a developer runs an application in which those concerns are already wired together: Liquibase manages schema evolution, Redis and ElasticSearch back the caching and search paths, RabbitMQ carries asynchronous work, and MongoDB holds data outside the relational model. Paicoding replaces the usual pattern of a tutorial project that stops at a toy CRUD screen with a working community whose publishing, search, commenting and statistics flows are themselves the curriculum. The published tutorials — a high-concurrency handbook, a JVM handbook, a Java concurrency handbook and 二哥的 Java 进阶之路 — are hosted on the same system, so the teaching material and the artifact are the same product.
Key capabilities
- Complete article and tutorial lifecycle covering publishing, search, commenting and statistics as described in the README.
- Modular Maven structure across
paicoding-api, paicoding-core, paicoding-service, paicoding-ui and paicoding-web, with search, cache and recommendation logic isolated in paicoding-core.
- Four build profiles selected through Maven:
resources-env/dev, resources-env/test, resources-env/pre and resources-env/prod, switched with mvn clean install -DskipTests=true -Pprod.
- Environment-based configuration files including
application.yml, application-config.yml, logback-spring.xml, and per-environment application-dal.yml, application-image.yml and application-web.yml.
- Secret management through
.env and .env.local, seeded from .env.example, loaded by Spring Boot at startup and sourced by launch.sh and deploy.sh, with .env.local taking priority and both files excluded by .gitignore.
- Named configuration keys such as
PAICODING_DB_PASSWORD, PAICODING_OSS_AK, PAICODING_OSS_BUCKET, PAICODING_WX_APP_SECRET and provider keys for OpenAI, Zhipu, Xunfei, DeepSeek and Doubao.
- Database schema managed by Liquibase, plus a 派聪明 AI assistant exposed at
/chat and a separate Vue 3 and Spring Boot 3 branch on springboot3&vue3.
Who uses it and how
- Java and Spring learners working through the accompanying tutorials, who read a handbook and then inspect the corresponding module in the running source tree.
- Small teams that need a community or forum foundation and intend to modify it directly, using the Apache-2.0 licence and the absence of secondary encapsulation as the starting point.
- Operators who deploy across the provided dev, test, pre and prod environments and separate secrets per machine with
.env.local.
- Administrators who run the back office from the separate
paicoding-admin repository and follow its own README for deployment.
- Teams working from mainland China, where the Gitee mirror at
gitee.com/itwanger/paicoding is offered for faster access.
Getting started
Build from source with Maven using the target profile, for example mvn clean install -DskipTests=true -Pprod, after copying .env.example to .env and filling in the PAICODING_* values. The resulting jar is started through launch.sh or deploy.sh, both of which source the .env files automatically, and Docker is listed among the supported technologies for deployment.
How it compares
The provided facts name no competing projects and no paid products that Paicoding is positioned to replace, so no licence, hosting or cost comparison can be drawn here. It stands alone in this registry entry on that basis. What can be said from the facts is that its distinguishing feature is the pairing of a runnable multi-store community system with a written tutorial track covering the same technologies.
When to use it — and when not to
A self-hoster must operate MySQL, Redis, ElasticSearch, MongoDB and RabbitMQ, and will likely also need object storage credentials for image uploads, a WeChat application secret, and keys for at least one AI provider if the assistant is wanted; that is a substantial operational footprint for a community site. Anyone whose team cannot read Chinese should look elsewhere, because the README, the tutorials and the configuration comments are written in Chinese, and the front-end admin console lives in a separate repository with its own deployment instructions. There is no Docker image name or compose file in the facts, so first deployment realistically means a Maven build and a manual jar launch unless the reader supplies their own container setup.