GitHub - nic-kup/liskat: Play Skat online for free. TypeScript engine + Bun/ws server + Svelte client. · GitHub
/" data-turbo-transient="true" />
Skip to content
Search or jump to...
Search code, repositories, users, issues, pull requests...
-->
Search
Clear
Search syntax tips
Provide feedback
--><br>We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Cancel
Submit feedback
Saved searches
Use saved searches to filter your results more quickly
-->
Name
Query
To see all available qualifiers, see our documentation.
Cancel
Create saved search
Sign in
/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up
Appearance settings
Resetting focus
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
nic-kup
liskat
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star
main
BranchesTags
Go to file
CodeOpen more actions menu
Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit
History<br>69 Commits<br>69 Commits
.claude
.claude
.github/workflows
.github/workflows
packages
packages
.dockerignore
.dockerignore
.gitignore
.gitignore
Dockerfile
Dockerfile
README.md
README.md
fly.toml
fly.toml
package-lock.json
package-lock.json
package.json
package.json
View all files
Repository files navigation
Liskat
Play Skat online, for free.
Inspired by lichess's philosophy — free, open, ad-free,<br>no bots — but built fresh for Skat rather than forked, since Skat (3-player,<br>hidden-hand, trick-taking with bidding) shares almost no game model with chess.
Architecture
A TypeScript monorepo, separating pure rules from transport and UI — the one<br>idea most worth borrowing from lichess.
Package<br>Role<br>Status
packages/engine<br>Pure Skat rules: bidding, round state machine, scoring, match formats<br>✅ done (25 tests)
packages/server<br>Authoritative game server + matchmaking lobby (WebSocket)<br>✅ done (5 tests)
packages/client<br>Web UI: the table and cards (Svelte + SVG)<br>✅ playable
The engine has zero dependencies and runs on Node's built-in test runner<br>and type stripping — no build step.
:8080)">npm install # all workspace deps<br>npm test # run all package test suites (engine + server)
# from the repo root — two terminals:<br>bun run server # game server on :8080 (Bun, hot-reload via --watch)<br>bun run client # web client on :5173 (proxies /ws -> :8080)
Then open http://localhost:5173, pick a nickname, and create or quick-match a table.
The server is plain node:http + ws, so it runs on Bun (bun run server,<br>the default) or Node (cd packages/server && npm run start:node). Bun needs no<br>build flags and gives instant hot-reload.
Graphics
Cards are plain SVG files under packages/client/public/cards//.svg<br>(e.g. french/CJ.svg, french/back.svg). A clean placeholder French deck is<br>generated by npm run gen-deck in the client. To use custom art, just drop<br>replacement SVGs into that folder — no code changes. A german/ deck folder is<br>ready for German-suited cards.
License
AGPL-3.0-or-later, matching lichess.
About
Play Skat online for free. TypeScript engine + Bun/ws server + Svelte client.
liskat.com
Resources
Readme
Uh oh!
There was an error while loading. Please reload this page.
Activity
Stars
stars
Watchers
watching
Forks
forks
Report repository
Releases
No releases published
Packages
Uh oh!
There was an error while loading. Please reload this page.
Contributors
Uh oh!
There was an error while loading. Please reload this page.
Languages
TypeScript<br>60.8%
Svelte<br>37.1%
JavaScript<br>1.1%
Other<br>1.0%
You can’t perform that action at this time.