Skip to content

learn-anything/learn-anything.xyz

Repository files navigation

Learn-Anything.xyz

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.

Contents

Files

  • 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

Setup

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

Run GraphQL server (Grafbase)

bun grafbase

Then open http://localhost:4000 either in browser or Pathfinder.

Run website (Solid)

bun web

Then open http://localhost:3000 in browser.

Contribute

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.

Docs

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.

Design

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.

Tasks / Explore

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.

Commands

bun setup

bun cmd.ts setup

Fully sets up LA for development (website, desktop, mobile, api, ..).

bun web

cd website && bun dev

Run website.

bun app

cd app && bun tauri:dev

Run desktop app built with Tauri.

bun cli

cd api/edgedb && bun --watch ../../cli/cli.ts

Run CLI to quickly execute TS code (run queries and more..).

bun db:ui

cd grafbase/edgedb && edgedb ui

Open EdgeDB UI to run queries and more.

bun grafbase

bun cmd.ts grafbase

Run Grafbase in development mode.

bun graphql

bun cmd.ts graphql

Generate queries for GQL client.

bun cmd

bun --watch cmd.ts

Run command in cmd.ts

bun ios

cd mobile && pnpm run ios

Run mobile app with Expo.

🖤

Discord X

Releases

No releases published

Sponsor this project

 

Packages

No packages published