Organize world's knowledge, explore connections and curate learning paths
End goal of Learn Anything is to become the best place and tool for keeping track of what you know. What ideas you have. What you want to learn next. What you don't know yet. And how you can learn that in most optimal way possible given what you know already.
Try website yourself first to get feel for it.
It is fully open source project with active community on Discord. There is great focus on both DX of developing everything LA and even more, end user UX.
- Files
- Setup
- Run GraphQL server (Grafbase)
- Run website (Solid)
- Contribute
- Docs
- Design
- Tasks / Explore
- Commands
- api - Grafbase GraphQL API layer + EdgeDB
- app - desktop app built with Tauri/Solid
- cli - clis for internal/external use
- shared - shared TS functions (can be used by any part of monorepo)
- website - learn-anything.xyz website code in Solid
PNPM is used to manage dependencies. Bun is used to run things.
pnpm i
bun setup
bun setup
runs bun cmd.ts setup
(see cmd.ts code for what it does). In short it will setup the project ready for development with all the deps, .env
files necessary. Together with working EdgeDB database. Just follow instructions in the setup script.
All next actions assume bun setup
was done correctly, you will receive Setup completed
after bun setup
completes succesfully.
All commands you can run are seen here. Below goes over important ones.
Warning
If you get any problems with setup, reach out on Discord
bun grafbase
Then open http://localhost:4000
either in browser or Pathfinder.
bun web
Then open http://localhost:3000
in browser.
Always open to useful ideas or fixes in form of issues or PRs.
Current issues are organised with labels. Issues currently in focus are labeled with Current Month label.
If issue is not already present (do search first), open new issue, start discussion or ask about it on Discord.
It's okay to submit draft PR as you can get help along the way to make it merge ready.
Any issues with setup or making your first feature or trying to fix a bug will be resolved asap. Same goes for discussing ideas on how to make the tool even better than it is now.
All docs can be seen in docs.learn-anything.xyz.
It is advisable you read them, before you start developing anything as they provide a lot of context and general knowledge.
There is big focus on documentation and clarity in the project. All code should be clear and understandable and well documented.
Check Dev Tips for some advice on development together with tech stack explanation.
All design is done in Figma and FigJam.
If you're designer and want to help out or have ideas, mention it on Discord's #design channel.
There is separate repo of tasks with goal to take the tasks used in LA and generalise it for use by community.
Together with explore for prototyping of various kind.
bun cmd.ts setup
Fully sets up LA for development (website, desktop, mobile, api, ..).
cd website && bun dev
Run website.
cd app && bun tauri:dev
Run desktop app built with Tauri.
cd api/edgedb && bun --watch ../../cli/cli.ts
Run CLI to quickly execute TS code (run queries and more..).
cd grafbase/edgedb && edgedb ui
Open EdgeDB UI to run queries and more.
bun cmd.ts grafbase
Run Grafbase in development mode.
bun cmd.ts graphql
Generate queries for GQL client.
bun --watch cmd.ts
Run command in cmd.ts
cd mobile && pnpm run ios
Run mobile app with Expo.