├── .husky
├── pre-push
└── pre-commit
├── packages
├── id
│ ├── README.md
│ ├── src
│ │ ├── index.ts
│ │ └── generate.ts
│ ├── tsconfig.json
│ └── package.json
├── ui
│ ├── README.md
│ ├── src
│ │ ├── utils
│ │ │ ├── index.ts
│ │ │ └── cn.ts
│ │ ├── colors
│ │ │ └── index.ts
│ │ ├── styles.css
│ │ ├── components
│ │ │ ├── data-table-filter
│ │ │ │ ├── biome.jsonc
│ │ │ │ ├── index.tsx
│ │ │ │ ├── hooks
│ │ │ │ │ ├── use-unmount.tsx
│ │ │ │ │ └── use-debounce-callback.tsx
│ │ │ │ ├── lib
│ │ │ │ │ ├── i18n.ts
│ │ │ │ │ └── memo.ts
│ │ │ │ ├── components
│ │ │ │ │ ├── filter-subject.tsx
│ │ │ │ │ └── filter-actions.tsx
│ │ │ │ ├── integrations
│ │ │ │ │ └── tanstack-table
│ │ │ │ │ │ └── filter-fns.ts
│ │ │ │ ├── ui
│ │ │ │ │ └── debounced-input.tsx
│ │ │ │ └── locales
│ │ │ │ │ └── en.json
│ │ │ ├── suspense
│ │ │ │ ├── delayed-fallback.tsx
│ │ │ │ ├── fade-in.tsx
│ │ │ │ └── lazy-suspense.tsx
│ │ │ └── ui
│ │ │ │ ├── fade-in-container.tsx
│ │ │ │ ├── label.tsx
│ │ │ │ ├── separator.tsx
│ │ │ │ ├── sonner.tsx
│ │ │ │ ├── input.tsx
│ │ │ │ ├── checkbox.tsx
│ │ │ │ ├── tooltip.tsx
│ │ │ │ ├── badge.tsx
│ │ │ │ ├── popover.tsx
│ │ │ │ ├── avatar.tsx
│ │ │ │ ├── hover-card.tsx
│ │ │ │ ├── scroll-area.tsx
│ │ │ │ ├── toggle.tsx
│ │ │ │ ├── tabs.tsx
│ │ │ │ ├── slider.tsx
│ │ │ │ └── toggle-group.tsx
│ │ └── hooks
│ │ │ ├── use-is-first-render.tsx
│ │ │ ├── index.ts
│ │ │ ├── use-focus-restore.tsx
│ │ │ ├── use-measure.tsx
│ │ │ ├── use-is-mobile.tsx
│ │ │ ├── use-resize-observer.tsx
│ │ │ ├── use-input-modality.tsx
│ │ │ ├── use-input-modality-ref.tsx
│ │ │ ├── use-is-holding-cmd-key.tsx
│ │ │ ├── use-measure-full.tsx
│ │ │ ├── use-is-holding-shift-key.tsx
│ │ │ ├── use-copy-to-clipboard.tsx
│ │ │ ├── use-breakpoint.tsx
│ │ │ ├── use-key-press.tsx
│ │ │ ├── use-network-status.tsx
│ │ │ └── use-scroll-edges.tsx
│ ├── tsconfig.json
│ ├── components.json
│ └── turbo.json
├── zero
│ ├── README.md
│ ├── src
│ │ └── index.ts
│ ├── tsconfig.json
│ └── package.json
├── auth
│ ├── README.md
│ ├── src
│ │ ├── client.ts
│ │ └── jwt.ts
│ ├── tsconfig.json
│ └── package.json
├── icons
│ ├── README.md
│ ├── src
│ │ ├── lucide
│ │ │ └── index.ts
│ │ ├── index.ts
│ │ └── icons
│ │ │ ├── logo-raycast.tsx
│ │ │ ├── logo-avelin.tsx
│ │ │ ├── logo-google.tsx
│ │ │ └── logo-github.tsx
│ ├── tsconfig.json
│ └── package.json
├── ubi
│ ├── README.md
│ ├── package.json
│ ├── node
│ │ └── Dockerfile
│ ├── bun
│ │ └── Dockerfile
│ └── bun-node
│ │ └── Dockerfile
├── tailwind-config
│ ├── README.md
│ ├── postcss.config.js
│ └── package.json
├── database
│ ├── src
│ │ ├── constants.ts
│ │ ├── helpers
│ │ │ ├── columns.d.ts.map
│ │ │ ├── columns.js
│ │ │ ├── columns.ts
│ │ │ └── columns.d.ts
│ │ ├── custom-types.js
│ │ ├── custom-types.d.ts.map
│ │ ├── custom-types.ts
│ │ ├── drizzle.ts
│ │ ├── db.ts
│ │ ├── types.ts
│ │ ├── zod.ts
│ │ ├── custom-types.d.ts
│ │ ├── index.ts
│ │ ├── migrate.ts
│ │ └── schema.d.ts.map
│ ├── migrations
│ │ ├── 0001_dapper_mattie_franklin.sql
│ │ ├── 0002_talented_lady_vermin.sql
│ │ ├── 0008_track-editor-language.sql
│ │ ├── 0022_drop-pgsql-language.sql
│ │ ├── 0024_room_connections-rename-column-serverSessionId-to-serverId.sql
│ │ ├── 0027_users-create-isAdminUser-column.sql
│ │ ├── 0018_oauth_accounts-change-pk-to-id.sql
│ │ ├── 0014_better-auth-migrate-users-table.sql
│ │ ├── 0021_better-auth_create-jwks-table.sql
│ │ ├── 0011_track_user_connection_status_to_code_room.sql
│ │ ├── 0019_oauth_accounts-rename-table-to-accounts.sql
│ │ ├── 0017_oauth_accounts-rename-providerUserId-to-accountId.sql
│ │ ├── 0020_better-auth-add-verifications-table.sql
│ │ ├── 0015_better-auth-migrate-sessions-table.sql
│ │ ├── 0025_room_participants-drop-connection-related-columns.sql
│ │ ├── 0009_add-timestamp-columns-for-remaining-tables.sql
│ │ ├── 0003_shiny_swordsman.sql
│ │ ├── 0010_composite-pk-room-participants.sql
│ │ ├── 0004_orange_randall.sql
│ │ ├── 0012_track_user_connection_count_to_room.sql
│ │ ├── 0007_deep_kylun.sql
│ │ ├── 0005_organic_war_machine.sql
│ │ ├── 0023_create-room_connections-table.sql
│ │ ├── 0013_waitlist-entries.sql
│ │ ├── 0016_oauth_accounts-add-better-auth-columns.sql
│ │ ├── 0006_track-room-creator.sql
│ │ └── 0000_worried_invaders.sql
│ ├── tsconfig.json
│ ├── drizzle.config.ts
│ └── package.json
├── typescript-config
│ ├── package.json
│ ├── react-library.json
│ ├── hono.json
│ ├── nextjs.json
│ └── base.json
└── storage
│ ├── tsconfig.json
│ ├── package.json
│ └── src
│ └── index.ts
├── apps
├── api
│ ├── .gitignore
│ ├── src
│ │ ├── types.ts
│ │ ├── lib
│ │ │ ├── resend.ts
│ │ │ └── posthog.ts
│ │ ├── client.ts
│ │ ├── routes
│ │ │ └── auth.ts
│ │ ├── index.ts
│ │ ├── middleware
│ │ │ └── rooms.ts
│ │ └── env.ts
│ ├── .dockerignore
│ ├── README.md
│ ├── tsconfig.json
│ ├── package.json
│ └── Dockerfile
├── sync
│ ├── .gitignore
│ ├── .dockerignore
│ ├── README.md
│ ├── src
│ │ ├── utils.ts
│ │ ├── auth.ts
│ │ ├── types.ts
│ │ ├── lifecycle.ts
│ │ └── env.ts
│ ├── tsconfig.json
│ ├── package.json
│ └── Dockerfile
└── web
│ ├── app
│ ├── icon1.png
│ ├── favicon.ico
│ ├── apple-icon.png
│ ├── (app)
│ │ ├── dashboard
│ │ │ ├── _components
│ │ │ │ ├── dashboard.tsx
│ │ │ │ ├── empty-rooms.tsx
│ │ │ │ ├── toolbar.tsx
│ │ │ │ └── active-users-display.tsx
│ │ │ ├── page.tsx
│ │ │ └── layout.tsx
│ │ ├── rooms
│ │ │ └── [slug]
│ │ │ │ ├── layout.tsx
│ │ │ │ └── _components
│ │ │ │ └── code-room.tsx
│ │ ├── (admin)
│ │ │ └── admin
│ │ │ │ ├── _
│ │ │ │ ├── types.ts
│ │ │ │ ├── filters.tsx
│ │ │ │ ├── columns.tsx
│ │ │ │ └── waitlist-entries-table.tsx
│ │ │ │ ├── page.tsx
│ │ │ │ └── layout.tsx
│ │ ├── (auth)
│ │ │ ├── layout.tsx
│ │ │ └── login
│ │ │ │ ├── page.tsx
│ │ │ │ └── buttons.tsx
│ │ ├── [roomSlug]
│ │ │ └── route.ts
│ │ ├── s
│ │ │ └── [slug]
│ │ │ │ ├── page.tsx
│ │ │ │ └── _components
│ │ │ │ └── copy-code-button.tsx
│ │ └── layout.tsx
│ ├── manifest.json
│ └── (landing)
│ │ ├── page.tsx
│ │ └── _components
│ │ ├── variants.ts
│ │ ├── waitlist.tsx
│ │ ├── landing.tsx
│ │ └── waitlist-soon.tsx
│ ├── public
│ ├── og.jpg
│ ├── web-app-manifest-192x192.png
│ └── web-app-manifest-512x512.png
│ ├── postcss.config.mjs
│ ├── .dockerignore
│ ├── lib
│ ├── api.ts
│ ├── posthog.ts
│ ├── sync.ts
│ ├── auth.ts
│ ├── toasts.tsx
│ ├── fonts.ts
│ ├── zero.ts
│ └── mutations.zero.ts
│ ├── components
│ ├── devtools
│ │ ├── react-scan.tsx
│ │ ├── fps.tsx
│ │ └── zero-cache.tsx
│ ├── misc
│ │ └── one-dollar-stats.tsx
│ ├── editor
│ │ ├── tsdefs
│ │ │ └── react
│ │ │ │ └── jsx-runtime.d.ts.txt
│ │ ├── themes.ts
│ │ ├── editor-language-combobox.tsx
│ │ ├── copy-room-url.tsx
│ │ ├── cursors.css
│ │ └── room-title.tsx
│ └── command-menu
│ │ └── commands
│ │ ├── editor-language.tsx
│ │ ├── room-title.tsx
│ │ └── room-delete.tsx
│ ├── providers
│ ├── zero-root-provider.tsx
│ ├── theme-provider.tsx
│ ├── zero-provider.tsx
│ ├── command-menu-provider.tsx
│ └── index.tsx
│ ├── hooks
│ ├── use-shortcut.tsx
│ ├── use-rerender.tsx
│ ├── use-resize-observer.tsx
│ └── use-monaco-binding.tsx
│ ├── tsconfig.json
│ ├── .gitignore
│ ├── README.md
│ └── next.config.mjs
├── .npmrc
├── .vscode
└── settings.json
├── .gitmodules
├── .prototools
├── .lintstagedrc.mjs
├── .dockerignore
├── .gitignore
├── pnpm-workspace.yaml
├── README.md
├── .release-it.json
├── LICENSE
├── package.json
├── biome.jsonc
└── turbo.json
/.husky/pre-push:
--------------------------------------------------------------------------------
1 | pnpm build
2 |
--------------------------------------------------------------------------------
/packages/id/README.md:
--------------------------------------------------------------------------------
1 | # `id`
2 |
--------------------------------------------------------------------------------
/packages/ui/README.md:
--------------------------------------------------------------------------------
1 | # `ui`
2 |
--------------------------------------------------------------------------------
/packages/zero/README.md:
--------------------------------------------------------------------------------
1 | # `zero`
--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | pnpm lint-staged
2 |
--------------------------------------------------------------------------------
/packages/auth/README.md:
--------------------------------------------------------------------------------
1 | # `auth`
2 |
--------------------------------------------------------------------------------
/packages/icons/README.md:
--------------------------------------------------------------------------------
1 | # `ui`
2 |
--------------------------------------------------------------------------------
/packages/ubi/README.md:
--------------------------------------------------------------------------------
1 | # `@avelin/ubi`
--------------------------------------------------------------------------------
/apps/api/.gitignore:
--------------------------------------------------------------------------------
1 | # deps
2 | node_modules/
3 |
--------------------------------------------------------------------------------
/packages/id/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './generate.js'
2 |
--------------------------------------------------------------------------------
/packages/ui/src/utils/index.ts:
--------------------------------------------------------------------------------
1 | export * from './cn'
2 |
--------------------------------------------------------------------------------
/packages/zero/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './schema.js'
2 |
--------------------------------------------------------------------------------
/packages/tailwind-config/README.md:
--------------------------------------------------------------------------------
1 | # `@avelin/tailwind-config`
--------------------------------------------------------------------------------
/packages/icons/src/lucide/index.ts:
--------------------------------------------------------------------------------
1 | export * from 'lucide-react'
2 |
--------------------------------------------------------------------------------
/apps/sync/.gitignore:
--------------------------------------------------------------------------------
1 | # deps
2 | node_modules/
3 |
4 | # misc
5 | serverId.txt
--------------------------------------------------------------------------------
/packages/ui/src/colors/index.ts:
--------------------------------------------------------------------------------
1 | export { gray } from '@radix-ui/colors'
2 |
--------------------------------------------------------------------------------
/apps/api/src/types.ts:
--------------------------------------------------------------------------------
1 | import type { app } from '.'
2 |
3 | export type App = typeof app
4 |
--------------------------------------------------------------------------------
/packages/database/src/constants.ts:
--------------------------------------------------------------------------------
1 | export const AVELIN_SYSTEM_USER_ID = 'user_system'
2 |
--------------------------------------------------------------------------------
/apps/web/app/icon1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/avelinapp/avelin/HEAD/apps/web/app/icon1.png
--------------------------------------------------------------------------------
/apps/web/public/og.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/avelinapp/avelin/HEAD/apps/web/public/og.jpg
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | auto-install-peers=true
2 | link-workspace-packages=true
3 | prefer-workspace-packages=true
4 |
--------------------------------------------------------------------------------
/apps/web/app/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/avelinapp/avelin/HEAD/apps/web/app/favicon.ico
--------------------------------------------------------------------------------
/apps/web/app/apple-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/avelinapp/avelin/HEAD/apps/web/app/apple-icon.png
--------------------------------------------------------------------------------
/packages/database/migrations/0001_dapper_mattie_franklin.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE "rooms" ADD COLUMN "title" text;
--------------------------------------------------------------------------------
/packages/ui/src/styles.css:
--------------------------------------------------------------------------------
1 | @import "@avelin/tailwind-config";
2 | @import "@avelin/tailwind-config/colors";
3 |
--------------------------------------------------------------------------------
/packages/ubi/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@avelin/ubi",
3 | "version": "0.0.0",
4 | "private": true
5 | }
6 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "eslint.workingDirectories": [
3 | {
4 | "mode": "auto"
5 | }
6 | ]
7 | }
8 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "apps/web/static"]
2 | path = apps/web/static
3 | url = https://github.com/avelinapp/assets.git
4 |
--------------------------------------------------------------------------------
/packages/database/migrations/0002_talented_lady_vermin.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE "users" ADD COLUMN "isAnonymous" boolean DEFAULT false;
--------------------------------------------------------------------------------
/.prototools:
--------------------------------------------------------------------------------
1 | bun = "1.1.43"
2 | node = "~20"
3 | pnpm = "9.15.3"
4 |
5 | [settings]
6 | auto-install = true
7 | auto-clean = true
8 |
--------------------------------------------------------------------------------
/apps/web/postcss.config.mjs:
--------------------------------------------------------------------------------
1 | import { postcssConfig } from '@avelin/tailwind-config/postcss'
2 |
3 | export default postcssConfig
4 |
--------------------------------------------------------------------------------
/packages/database/migrations/0008_track-editor-language.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE "rooms" ADD COLUMN "editorLanguage" text DEFAULT 'plaintext';
--------------------------------------------------------------------------------
/apps/web/public/web-app-manifest-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/avelinapp/avelin/HEAD/apps/web/public/web-app-manifest-192x192.png
--------------------------------------------------------------------------------
/apps/web/public/web-app-manifest-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/avelinapp/avelin/HEAD/apps/web/public/web-app-manifest-512x512.png
--------------------------------------------------------------------------------
/packages/database/migrations/0022_drop-pgsql-language.sql:
--------------------------------------------------------------------------------
1 | UPDATE "rooms"
2 | SET "editorLanguage" = 'sql'
3 | WHERE "editorLanguage" = 'pgsql';
4 |
--------------------------------------------------------------------------------
/packages/tailwind-config/postcss.config.js:
--------------------------------------------------------------------------------
1 | export const postcssConfig = {
2 | plugins: {
3 | '@tailwindcss/postcss': {},
4 | },
5 | }
6 |
--------------------------------------------------------------------------------
/apps/api/.dockerignore:
--------------------------------------------------------------------------------
1 | .next
2 | .turbo
3 | node_modules
4 | .git
5 | .gitignore
6 | *.md
7 | dist
8 | Dockerfile
9 | .DS_Store
10 | .env*
11 |
--------------------------------------------------------------------------------
/apps/sync/.dockerignore:
--------------------------------------------------------------------------------
1 | .next
2 | .turbo
3 | node_modules
4 | .git
5 | .gitignore
6 | *.md
7 | dist
8 | Dockerfile
9 | .DS_Store
10 | .env*
11 |
--------------------------------------------------------------------------------
/apps/web/.dockerignore:
--------------------------------------------------------------------------------
1 | .next
2 | .turbo
3 | node_modules
4 | .git
5 | .gitignore
6 | *.md
7 | dist
8 | Dockerfile
9 | .DS_Store
10 | .env*
11 |
--------------------------------------------------------------------------------
/apps/web/lib/api.ts:
--------------------------------------------------------------------------------
1 | import { client } from '@avelin/api'
2 | import { env } from './env'
3 |
4 | export const api = client(env.NEXT_PUBLIC_API_URL)
5 |
--------------------------------------------------------------------------------
/apps/api/src/lib/resend.ts:
--------------------------------------------------------------------------------
1 | import { Resend } from 'resend'
2 | import { env } from '../env'
3 |
4 | export const resend = new Resend(env.RESEND_API_KEY)
5 |
--------------------------------------------------------------------------------
/.lintstagedrc.mjs:
--------------------------------------------------------------------------------
1 | export default {
2 | '**/*.{js,cjs,mjs,jsx,ts,mts,cts,tsx,json,jsonc}': [
3 | 'biome check --write --no-errors-on-unmatched',
4 | ],
5 | }
6 |
--------------------------------------------------------------------------------
/apps/web/app/(app)/dashboard/_components/dashboard.tsx:
--------------------------------------------------------------------------------
1 | import RoomList from './room-list'
2 |
3 | export default function Dashboard() {
4 | return