Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
149 commits
Select commit Hold shift + click to select a range
8290f1b
updated api to take folder ID
devchaudhary24k Dec 5, 2025
bec7324
implemented tanstack react query
devchaudhary24k Dec 5, 2025
f5d29df
improved path
devchaudhary24k Dec 5, 2025
0d3d1cb
new sidebar
devchaudhary24k Dec 5, 2025
6eb0c95
sidebar optimized
devchaudhary24k Dec 5, 2025
e5b2f8e
search initialized in sidebar
devchaudhary24k Dec 5, 2025
2e022f1
removed nav secondary
devchaudhary24k Dec 5, 2025
5e72c73
team switcher implemented
devchaudhary24k Dec 5, 2025
34ce6cc
dashboard sidebar update
devchaudhary24k Dec 6, 2025
c7f62aa
fixed sidebar
devchaudhary24k Dec 6, 2025
4122461
implemented all pages.
devchaudhary24k Dec 6, 2025
560a7ad
video upload UI
devchaudhary24k Dec 6, 2025
6c05d62
uppy setup
devchaudhary24k Dec 6, 2025
24f98af
upload logic implemented
devchaudhary24k Dec 6, 2025
514d91b
env fix
devchaudhary24k Dec 7, 2025
f876d64
org plugin in client auth
devchaudhary24k Dec 7, 2025
88584a3
uppy setup for multipart s3 upload
devchaudhary24k Dec 7, 2025
bd07f25
validation fix for api
devchaudhary24k Dec 7, 2025
b692b74
validation fix for storage package
devchaudhary24k Dec 7, 2025
76dc024
updated types in auth client
devchaudhary24k Dec 7, 2025
88a442b
now check membership when creating organization for onboarding
devchaudhary24k Dec 7, 2025
b5ebef9
user soft delete setup
devchaudhary24k Dec 7, 2025
d07008b
organized auth config for custom session betterment
devchaudhary24k Dec 7, 2025
f86c2a2
udpated todo
devchaudhary24k Dec 7, 2025
2ced3b1
database hooks for session create and update based on soft delete
devchaudhary24k Dec 7, 2025
affd411
new field in database, also active org id hook setup
devchaudhary24k Dec 7, 2025
d792154
update org in database if switched to fallback
devchaudhary24k Dec 7, 2025
1f1435a
org soft delete check when switching organizations
devchaudhary24k Dec 7, 2025
75350c8
fixed team switcher
devchaudhary24k Dec 8, 2025
bbc1a09
changed @workspace to @vidcastx
devchaudhary24k Dec 8, 2025
8ed3c95
separate package for auith
devchaudhary24k Dec 9, 2025
c579bc9
setup correct org and user setup in dashboard
devchaudhary24k Dec 11, 2025
28c70f8
setup correct onboarding layout
devchaudhary24k Dec 11, 2025
a1d81c0
org change setup correctly
devchaudhary24k Dec 11, 2025
53f5e83
react query usage
devchaudhary24k Dec 12, 2025
eb16d5c
updated team switch fns
devchaudhary24k Dec 12, 2025
acbc587
color fix in nav
devchaudhary24k Dec 12, 2025
fd210b8
global upload helpers
devchaudhary24k Dec 12, 2025
aedbc25
fix is custom session
devchaudhary24k Dec 13, 2025
5aee511
default redirect to auth pages from /
devchaudhary24k Dec 14, 2025
c9e6ab9
installed tanstack form
devchaudhary24k Dec 14, 2025
fa04359
installed tanstack form
devchaudhary24k Dec 14, 2025
e84df59
implemented toaster in root dashboard layout
devchaudhary24k Dec 16, 2025
6a1ffac
onboarding
devchaudhary24k Dec 16, 2025
f17a438
fixed all type errors
devchaudhary24k Dec 16, 2025
48c4418
onboarding page redesign
devchaudhary24k Dec 16, 2025
11fc5f5
fixed env
devchaudhary24k Dec 17, 2025
c229023
fixed auth routes
devchaudhary24k Dec 17, 2025
5966c5e
chore(deps): update pnpm to v10.27.0 [security]
renovate[bot] Jan 8, 2026
1247340
fix(deps): update dependency next to v16.0.9 [security]
renovate[bot] Jan 19, 2026
b5c51b6
Merge pull request #47 from devchaudhary24k/renovate/npm-pnpm-vulnera…
devchaudhary24k Jan 25, 2026
b2daff9
Merge pull request #46 from devchaudhary24k/renovate/npm-next-vulnera…
devchaudhary24k Jan 25, 2026
7fadde9
chore(deps): update pnpm to v10.28.2 [security]
renovate[bot] Jan 28, 2026
d5c9c63
fix(deps): update dependency next to v16.1.5 [security]
renovate[bot] Feb 2, 2026
b95e5d6
Merge pull request #49 from devchaudhary24k/renovate/npm-pnpm-vulnera…
devchaudhary24k Feb 8, 2026
3e66ae6
Merge pull request #48 from devchaudhary24k/renovate/npm-next-vulnera…
devchaudhary24k Feb 8, 2026
2038439
new migrations with extension custom migration
devchaudhary24k Feb 13, 2026
99157ff
removed anim libs / redesigned the onboarding
devchaudhary24k Feb 13, 2026
a5ac11c
redid the onboarding form
devchaudhary24k Feb 13, 2026
3da43a5
implemented basic onboarding to avoid user lock
devchaudhary24k Mar 1, 2026
33b73dc
dev script for database studios
devchaudhary24k Mar 1, 2026
d6f69c4
upload list part and upload abort fns implemented
devchaudhary24k Mar 1, 2026
e616227
type fixed
devchaudhary24k Mar 1, 2026
23c9176
improved daisy chaining
devchaudhary24k Mar 1, 2026
3cf6334
all fn setup for uppy
devchaudhary24k Mar 2, 2026
6362bdf
fixed name of monorepo
devchaudhary24k Mar 2, 2026
cf7242d
fixed type error in aws sdk
devchaudhary24k Mar 2, 2026
86a8f95
bump deps
devchaudhary24k Mar 3, 2026
428777c
type error fixed
devchaudhary24k Mar 3, 2026
de60bcd
Merge branch 'dev' into feat/dashboard
devchaudhary24k Mar 3, 2026
ddf3cb4
Merge pull request #51 from devchaudhary24k/feat/dashboard
devchaudhary24k Mar 3, 2026
3d90ff7
fixed api error
devchaudhary24k Mar 3, 2026
1ce277f
new upload indicator + upload cancel feature
devchaudhary24k Mar 3, 2026
527de61
changed design of upload toast
devchaudhary24k Mar 3, 2026
73c675e
full app contenxt IDEA.md
devchaudhary24k Mar 3, 2026
ef9dda5
transcoder app inplemented
devchaudhary24k Mar 4, 2026
89fdf13
bump deps
devchaudhary24k Mar 5, 2026
4376a48
queue package intialized
devchaudhary24k Mar 5, 2026
f1c24f0
auth version fix and deps fix
devchaudhary24k Mar 5, 2026
0baac90
add video to queue as soon as video uploaded
devchaudhary24k Mar 5, 2026
06c30c0
removed todo
devchaudhary24k Mar 5, 2026
63c7d44
implementing transcode worker (in progress)
devchaudhary24k Mar 8, 2026
e219844
changed print width to 120
devchaudhary24k Mar 8, 2026
32de21b
implemented varinats fns in transcoder
devchaudhary24k Mar 8, 2026
4f56719
implemented complete ffmpeg-cmd
devchaudhary24k Mar 8, 2026
2dec75a
implemented worker
devchaudhary24k Mar 8, 2026
b8fc6e5
Oauth setup for internal api use
devchaudhary24k Mar 8, 2026
efb3f53
complete system setup
devchaudhary24k Mar 8, 2026
05c256a
updated FFmpeg command
devchaudhary24k Mar 8, 2026
3d17c63
implemented env for encoder selection
devchaudhary24k Mar 8, 2026
f364965
fixed build errors
devchaudhary24k Mar 10, 2026
4416312
installed jose for jwt tokens in api
devchaudhary24k Mar 10, 2026
d7b86c2
Merge pull request #52 from devchaudhary24k/feat/dashboard
devchaudhary24k Mar 10, 2026
76fa272
enum change over videos schema
devchaudhary24k Mar 10, 2026
a6298bb
cleared old migrations and created new
devchaudhary24k Mar 10, 2026
3f7c341
skills + claude implemented
devchaudhary24k Mar 24, 2026
26a0725
implemented best practices in server app
devchaudhary24k Mar 24, 2026
bfee6f2
fixed type issues
devchaudhary24k Mar 24, 2026
944f995
type fixes
devchaudhary24k Mar 24, 2026
6b72773
Merge pull request #56 from devchaudhary24k/feat/dashboard
devchaudhary24k Mar 24, 2026
710c740
created new migrations
devchaudhary24k Mar 24, 2026
965bdea
dispater setup for proper video distribution
devchaudhary24k Mar 24, 2026
21469d0
working state for video controller
devchaudhary24k Mar 26, 2026
f793462
cron fixed
devchaudhary24k Mar 26, 2026
ac5520d
type error fix
devchaudhary24k Mar 27, 2026
2206ae2
fixed all issues and smplifies the flow
devchaudhary24k Mar 27, 2026
2f5c60e
disabled cors
devchaudhary24k Mar 29, 2026
f4e3b83
changed port of whole porject for simplicity
devchaudhary24k Mar 29, 2026
587ea60
changed redis port to avoid collision
devchaudhary24k Mar 29, 2026
94e2eb3
updated todo
devchaudhary24k Mar 29, 2026
2bd7235
fixed error
devchaudhary24k Mar 29, 2026
9c82f1d
updated server package
devchaudhary24k Mar 29, 2026
2d6c9d3
implemented env check skip for build process.
devchaudhary24k Mar 29, 2026
f88140a
new tanstack start application
devchaudhary24k Mar 29, 2026
c289d38
implemented tanstack start app
devchaudhary24k Mar 29, 2026
56c6236
docs: add ANTIGRAVITY init instructions
devchaudhary24k Mar 31, 2026
49aacfd
feat: implement authentication flow with protected routes and session…
devchaudhary24k Mar 31, 2026
c46db88
claude rules setup
devchaudhary24k Apr 11, 2026
bf59cac
migrated to tanstack start
devchaudhary24k Apr 11, 2026
503605a
wrote testing scripts
devchaudhary24k Apr 11, 2026
3543666
fixed cors issues
devchaudhary24k Apr 11, 2026
f3ddfda
super setup for claude to work on
devchaudhary24k Apr 11, 2026
177b625
migrated to tanstack start
devchaudhary24k Apr 11, 2026
79b03e1
archived dashboard nextjs app, and implemented readme file
devchaudhary24k Apr 11, 2026
c5b70b8
fixed auth callback
devchaudhary24k Apr 12, 2026
0a5fefa
initialzed auth factory
devchaudhary24k Apr 12, 2026
bdab1f1
documented auth packages properly
devchaudhary24k Apr 12, 2026
2c03e63
Merge pull request #58 from devchaudhary24k/migration/tanstack-start
devchaudhary24k Apr 12, 2026
cbe6f04
Merge pull request #59 from devchaudhary24k/feat/auth-package-revamp
devchaudhary24k Apr 12, 2026
a3f98e0
migrated to base ui with new design style.
devchaudhary24k Apr 12, 2026
df85139
chore: remove legacy next.js dashboard
devchaudhary24k Apr 12, 2026
c3bf76a
Merge pull request #60 from devchaudhary24k/ui/update-shadcn
devchaudhary24k Apr 12, 2026
d7997f9
fixed components for tanstack start
devchaudhary24k Apr 12, 2026
969ea91
org videos fetch in FE
devchaudhary24k Apr 12, 2026
9ff4395
shows updaloed video in dashboard now
devchaudhary24k Apr 13, 2026
fa1dd1e
header improved
devchaudhary24k Apr 14, 2026
a00650d
updated command menu design
devchaudhary24k Apr 14, 2026
8bb801d
updated page design
devchaudhary24k Apr 14, 2026
b94fb46
implemented folders
devchaudhary24k Apr 14, 2026
3722e88
folders implemented
devchaudhary24k Apr 14, 2026
4f46e41
cicd updated
devchaudhary24k Apr 16, 2026
e6f99d4
ci implmented and code fixed
devchaudhary24k Apr 18, 2026
8dbffd1
eslint + lint staged setup
devchaudhary24k Apr 19, 2026
2938022
chore(tooling): add safety hooks + ESLint boundary rules
devchaudhary24k Apr 19, 2026
5f8df44
ci: install bun in CI jobs so apps/api typecheck works
devchaudhary24k Apr 19, 2026
c7f9c25
Merge pull request #63 from devchaudhary24k/ci/setup
devchaudhary24k Apr 19, 2026
e790c50
chore(deps): update dependency vite to v7.3.2 [security] (#62)
renovate[bot] Apr 19, 2026
04b5d4d
chore(deps): update dependency drizzle-orm to v0.45.2 [security] (#61)
renovate[bot] Apr 19, 2026
29b1858
chore: ci hardening + github templates refresh + renovate tuning (#64)
devchaudhary24k Apr 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
515 changes: 515 additions & 0 deletions .agents/skills/elysiajs/SKILL.md

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions .agents/skills/elysiajs/examples/basic.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { Elysia, t } from "elysia";

new Elysia().get("/", "Hello Elysia").post("/", ({ body: { name } }) => name, {
body: t.Object({
name: t.String(),
}),
});
33 changes: 33 additions & 0 deletions .agents/skills/elysiajs/examples/body-parser.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import { Elysia, t } from "elysia";

const app = new Elysia()
// Add custom body parser
.onParse(async ({ request, contentType }) => {
switch (contentType) {
case "application/Elysia":
return request.text();
}
})
.post("/", ({ body: { username } }) => `Hi ${username}`, {
body: t.Object({
id: t.Number(),
username: t.String(),
}),
})
// Increase id by 1 from body before main handler
.post("/transform", ({ body }) => body, {
transform: ({ body }) => {
body.id = body.id + 1;
},
body: t.Object({
id: t.Number(),
username: t.String(),
}),
detail: {
summary: "A",
},
})
.post("/mirror", ({ body }) => body)
.listen(3000);

console.log("🦊 Elysia is running at :8080");
111 changes: 111 additions & 0 deletions .agents/skills/elysiajs/examples/complex.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
import { Elysia, file, t } from "elysia";

const loggerPlugin = new Elysia()
.get("/hi", () => "Hi")
.decorate("log", () => "A")
.decorate("date", () => new Date())
.state("fromPlugin", "From Logger")
.use((app) => app.state("abc", "abc"));

const app = new Elysia()
.onRequest(({ set }) => {
set.headers = {
"Access-Control-Allow-Origin": "*",
};
})
.onError(({ code }) => {
if (code === "NOT_FOUND") return "Not Found :(";
})
.use(loggerPlugin)
.state("build", Date.now())
.get("/", "Elysia")
.get("/tako", file("./example/takodachi.png"))
.get("/json", () => ({
hi: "world",
}))
.get("/root/plugin/log", ({ log, store: { build } }) => {
log();

return build;
})
.get("/wildcard/*", () => "Hi Wildcard")
.get("/query", () => "Elysia", {
beforeHandle: ({ query }) => {
console.log("Name:", query?.name);

if (query?.name === "aom") return "Hi saltyaom";
},
query: t.Object({
name: t.String(),
}),
})
.post("/json", async ({ body }) => body, {
body: t.Object({
name: t.String(),
additional: t.String(),
}),
})
.post("/transform-body", async ({ body }) => body, {
beforeHandle: (ctx) => {
ctx.body = {
...ctx.body,
additional: "Elysia",
};
},
body: t.Object({
name: t.String(),
additional: t.String(),
}),
})
.get("/id/:id", ({ params: { id } }) => id, {
transform({ params }) {
params.id = +params.id;
},
params: t.Object({
id: t.Number(),
}),
})
.post("/new/:id", async ({ body, params }) => body, {
params: t.Object({
id: t.Number(),
}),
body: t.Object({
username: t.String(),
}),
})
.get("/trailing-slash", () => "A")
.group("/group", (app) =>
app
.onBeforeHandle(({ query }) => {
if (query?.name === "aom") return "Hi saltyaom";
})
.get("/", () => "From Group")
.get("/hi", () => "HI GROUP")
.get("/elysia", () => "Welcome to Elysian Realm")
.get("/fbk", () => "FuBuKing"),
)
.get("/response-header", ({ set }) => {
set.status = 404;
set.headers["a"] = "b";

return "A";
})
.get("/this/is/my/deep/nested/root", () => "Hi")
.get("/build", ({ store: { build } }) => build)
.get("/ref", ({ date }) => date())
.get("/response", () => new Response("Hi"))
.get("/error", () => new Error("Something went wrong"))
.get("/401", ({ set }) => {
set.status = 401;

return "Status should be 401";
})
.get("/timeout", async () => {
await new Promise((resolve) => setTimeout(resolve, 2000));

return "A";
})
.all("/all", () => "hi")
.listen(8080, ({ hostname, port }) => {
console.log(`🦊 Elysia is running at http://${hostname}:${port}`);
});
45 changes: 45 additions & 0 deletions .agents/skills/elysiajs/examples/cookie.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import { Elysia, t } from "elysia";

const app = new Elysia({
cookie: {
secrets: "Fischl von Luftschloss Narfidort",
sign: ["name"],
},
})
.get(
"/council",
({ cookie: { council } }) =>
(council.value = [
{
name: "Rin",
affilation: "Administration",
},
]),
{
cookie: t.Cookie({
council: t.Array(
t.Object({
name: t.String(),
affilation: t.String(),
}),
),
}),
},
)
.get("/create", ({ cookie: { name } }) => (name.value = "Himari"))
.get(
"/update",
({ cookie: { name } }) => {
name.value = "seminar: Rio";
name.value = "seminar: Himari";
name.maxAge = 86400;

return name.value;
},
{
cookie: t.Cookie({
name: t.Optional(t.String()),
}),
},
)
.listen(3000);
38 changes: 38 additions & 0 deletions .agents/skills/elysiajs/examples/error.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import { Elysia, t } from "elysia";

class CustomError extends Error {
constructor(public name: string) {
super(name);
}
}

new Elysia()
.error({
CUSTOM_ERROR: CustomError,
})
// global handler
.onError(({ code, error, status }) => {
switch (code) {
case "CUSTOM_ERROR":
return status(401, { message: error.message });

case "NOT_FOUND":
return "Not found :(";
}
})
.post("/", ({ body }) => body, {
body: t.Object({
username: t.String(),
password: t.String(),
nested: t.Optional(
t.Object({
hi: t.String(),
}),
),
}),
// local handler
error({ error }) {
console.log(error);
},
})
.listen(3000);
8 changes: 8 additions & 0 deletions .agents/skills/elysiajs/examples/file.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { Elysia, file } from "elysia";

/**
* Example of handle single static file
*
* @see https://github.com/elysiajs/elysia-static
*/
new Elysia().get("/tako", file("./example/takodachi.png")).listen(3000);
34 changes: 34 additions & 0 deletions .agents/skills/elysiajs/examples/guard.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import { Elysia, t } from "elysia";

new Elysia()
.state("name", "salt")
.get("/", ({ store: { name } }) => `Hi ${name}`, {
query: t.Object({
name: t.String(),
}),
})
// If query 'name' is not preset, skip the whole handler
.guard(
{
query: t.Object({
name: t.String(),
}),
},
(app) =>
app
// Query type is inherited from guard
.get("/profile", ({ query }) => `Hi`)
// Store is inherited
.post("/name", ({ store: { name }, body, query }) => name, {
body: t.Object({
id: t.Number({
minimum: 5,
}),
username: t.String(),
profile: t.Object({
name: t.String(),
}),
}),
}),
)
.listen(3000);
14 changes: 14 additions & 0 deletions .agents/skills/elysiajs/examples/map-response.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { Elysia } from "elysia";

const prettyJson = new Elysia()
.mapResponse(({ response }) => {
if (response instanceof Object) return new Response(JSON.stringify(response, null, 4));
})
.as("scoped");

new Elysia()
.use(prettyJson)
.get("/", () => ({
hello: "world",
}))
.listen(3000);
6 changes: 6 additions & 0 deletions .agents/skills/elysiajs/examples/redirect.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import { Elysia } from "elysia";

new Elysia()
.get("/", () => "Hi")
.get("/redirect", ({ redirect }) => redirect("/"))
.listen(3000);
27 changes: 27 additions & 0 deletions .agents/skills/elysiajs/examples/rename.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import { Elysia, t } from "elysia";

// ? Elysia#83 | Proposal: Standardized way of renaming third party plugin-scoped stuff
// this would be a plugin provided by a third party
const myPlugin = new Elysia().decorate("myProperty", 42).model("salt", t.String());

new Elysia()
.use(
myPlugin
// map decorator, rename "myProperty" to "renamedProperty"
.decorate(({ myProperty, ...decorators }) => ({
renamedProperty: myProperty,
...decorators,
}))
// map model, rename "salt" to "pepper"
.model(({ salt, ...models }) => ({
...models,
pepper: t.String(),
}))
// Add prefix
.prefix("decorator", "unstable"),
)
.get("/mapped", ({ unstableRenamedProperty }) => unstableRenamedProperty)
.post("/pepper", ({ body }) => body, {
body: "pepper",
// response: t.String()
});
61 changes: 61 additions & 0 deletions .agents/skills/elysiajs/examples/schema.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
import { Elysia, t } from "elysia";

const app = new Elysia()
.model({
name: t.Object({
name: t.String(),
}),
b: t.Object({
response: t.Number(),
}),
authorization: t.Object({
authorization: t.String(),
}),
})
// Strictly validate response
.get("/", () => "hi")
// Strictly validate body and response
.post("/", ({ body, query }) => body.id, {
body: t.Object({
id: t.Number(),
username: t.String(),
profile: t.Object({
name: t.String(),
}),
}),
})
// Strictly validate query, params, and body
.get("/query/:id", ({ query: { name }, params }) => name, {
query: t.Object({
name: t.String(),
}),
params: t.Object({
id: t.String(),
}),
response: {
200: t.String(),
300: t.Object({
error: t.String(),
}),
},
})
.guard(
{
headers: "authorization",
},
(app) =>
app
.derive(({ headers }) => ({
userId: headers.authorization,
}))
.get("/", ({ userId }) => "A")
.post("/id/:id", ({ query, body, params, userId }) => body, {
params: t.Object({
id: t.Number(),
}),
transform({ params }) {
params.id = +params.id;
},
}),
)
.listen(3000);
Loading
Loading