The Problem
Investment wisdom is scattered across 100+ books, thousands of interviews, and decades of annual letters. Warren Buffett alone has written 50+ shareholder letters. Charlie Munger gave dozens of speeches. Howard Marks published 100+ memos.
I wanted to make all this wisdom searchable, comparable, and interactive. The result is KeepRule — a free database of 1,377 investment principles from 26 legendary investors.
Tech Stack
Frontend: Nuxt 3 SSR
For a content-heavy site targeting SEO, Server-Side Rendering is non-negotiable. Nuxt 3 gives us:
- Full SSR for every page (critical for Google indexing)
-
useAsyncDatafor server-side API calls - Built-in i18n for 5 languages (en, zh, es, fr, ar)
- Auto-generated sitemaps with
@nuxtjs/sitemap
// Example: fetching investor data server-side
const { data: master } = await useAsyncData(
`master-${slug}`,
() => getMasterDetail(slug)
)
Backend: Go-Zero
Why Go-Zero over Express/NestJS?
- Performance: Go handles 10x more concurrent requests
-
Code generation:
goctlgenerates API handlers from .api files - Built-in middleware: Rate limiting, auth, logging out of the box
// .api file defines endpoints declaratively
type MasterDetailReq {
Slug string `path:"slug"`
Lang string `form:"lang,optional"`
}
@handler GetMasterDetail
get /masters/:slug (MasterDetailReq) returns (MasterDetailResp)
Performance: Nginx Proxy Cache
The single biggest performance win was adding Nginx proxy cache:
proxy_cache keeprule_cache;
proxy_cache_valid 200 30m;
proxy_ignore_headers Set-Cookie;
Result: 650ms → 19ms response time (30x improvement). Googlebot crawls faster, users get instant pages.
SEO Architecture
Internal Linking Strategy
Every blog post is linked from 3 entry points:
- Homepage (explore section)
- Master detail page (deep dive link)
- Quotes page (related articles)
This creates a strong internal link graph that passes PageRank to blog content.
Structured Data
Every page includes JSON-LD:
-
Articleschema for blog posts -
BreadcrumbListfor navigation -
FAQPagefor FAQ sections
Multi-language Hreflang
All 5 languages are properly connected via hreflang tags, preventing duplicate content issues.
Results
- 4,673 pages indexed by Google
- 10 deep-dive blog articles (26,000+ words total)
- 26 investor profiles with AI chat
- 1,377 searchable principles
- Daily visitors growing from 900 to 2,200+
Try It
Explore all 1,377 investment principles at keeprule.com. The investment psychology test at keeprule.com/en/test/psychology is a good starting point.
The blog articles cover each investor in depth: keeprule.com/en/blog
Built by William Wang. Open to feedback and feature requests!
Top comments (0)