a fullstack English words study website: remix (react-router v7) + trpc + drizzle + postgresql + heroui + jotai + docker
Last updated Jul 3, 2026
929
Stars
103
Forks
2
Issues
0
Stars/day
Attention Score
85
Topics
Language breakdown
No language data available.
▸ Files
click to expand
README
remix-words-funny
A fullstack English words study website built with remix-t3-stack
features
- end-to-end type safe by
trpc - get
myUserInfoanywhere byuseMyUserInfo - type safe form with
zodbyuseZodForm - no need to export
actionin routes, just calltrpcClient.actionto mutate anywhere - request with permission control by
trpc middlewares - deploy by
dockerorpm2 - support dark mode by
useAppTheme - use
drizzleto keep type safe withpostgresqldb - toast request error automatically
- always use latest remix (react-router v7) features
stack
- remix (react-router v7)
- vite
- trpc
- tailwindcss
- heroUI
- typescript
- drizzle
- postgresql
- jwt
- jotai
- pnpm
- react-hook-form
- react-query
- next-themes
- lucide-icons
- zod
- docker
how to dev
- clone this repository
git clone git@github.com:SteveSuv/remix-words-funny.git
- install packages
npm i pnpm -g
pnpm i
- init database
- install docker and start docker service
- first run command below to create a local postgres container (you can replace the
POSTGRESPASSWORDEXAMPLE):
docker run -d --name postgres -p 5432:5432 -v postgresdata:/var/lib/postgresql/data -e POSTGRESUSER=postgres -e POSTGRESPASSWORD=POSTGRESPASSWORDEXAMPLE -e POSTGRESDB=wordsfunny postgres:16-alpine
- run command
pnpm db:pushto sync db structs and drizzle schema - download csv data file: https://mypikpak.com/s/VOEs95bTB0KGAg75t0Nrs-oOo1
- use your favorite db tool like TablePlus to connect the postgres db
- insert db data by import csv files to tables. Notice! you should first import
Book, thenWord, then others, because tables have some relations - run
pnpm db:task, if printtotal words count: 152543means the postgres db is running ok
- init email server (optional, if you don't want to send login verify code)
- when you dev local, you can just print the verify code simply
- when you deploy to prod, you can use some email server saas like resend
- or you can enable some email server's SMTP, then add
EMAILSERVERADDRESSandEMAILSERVERPASSto .env file, like Netease Email or QQ Email
- run dev server
pnpm dev
- build and preview
pnpm build
pnpm start
how to deploy
- deploy by docker
pnpm run deploy
- deploy by pm2
# push files to server
rsync -avz build node_modules package.json .env root@HOST:~/remix-words-funny/
ssh server and run app
ssh root@HOST "cd ~/remix-words-funny && pm2 start npm -- start"
notice
- suggest node version greater than 22
- when you dev local, you should run
docker stop wordsfunny-appfirst to stop container to avoid port 3001 occupation - words resource repo
- more features will be added gradually
- a more simple
remix-t3-stackproject for beginners is here: remix-t3-stack
🔗 More in this category