├── .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 5 | } 6 | -------------------------------------------------------------------------------- /packages/database/migrations/0024_room_connections-rename-column-serverSessionId-to-serverId.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE "room_connections" RENAME COLUMN "serverSessionId" TO "serverId"; -------------------------------------------------------------------------------- /packages/database/src/helpers/columns.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["columns.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU;;;;CASb,CAAA"} -------------------------------------------------------------------------------- /packages/database/src/custom-types.js: -------------------------------------------------------------------------------- 1 | import { customType } from 'drizzle-orm/pg-core' 2 | export const bytea = customType({ 3 | dataType() { 4 | return 'bytea' 5 | }, 6 | }) 7 | -------------------------------------------------------------------------------- /apps/api/README.md: -------------------------------------------------------------------------------- 1 | To install dependencies: 2 | 3 | ```sh 4 | bun install 5 | ``` 6 | 7 | To run: 8 | 9 | ```sh 10 | bun run dev 11 | ``` 12 | 13 | open http://localhost:3000 14 | -------------------------------------------------------------------------------- /apps/sync/README.md: -------------------------------------------------------------------------------- 1 | To install dependencies: 2 | 3 | ```sh 4 | bun install 5 | ``` 6 | 7 | To run: 8 | 9 | ```sh 10 | bun run dev 11 | ``` 12 | 13 | open http://localhost:3000 14 | -------------------------------------------------------------------------------- /apps/web/components/devtools/react-scan.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | 3 | export default function ReactScan() { 4 | return