├── .dockerignore ├── .env.example ├── .eslintrc.json ├── .gitignore ├── Dockerfile ├── README.md ├── assets └── gremlinlabs-gremlinlink.jpg ├── components.json ├── config ├── .eslintrc.json ├── .prettierrc └── next.config.bundle-analyzer.js ├── data ├── adjectives-list.md └── nouns-list.md ├── deployment ├── README.md └── docker-compose.yml ├── docs └── IMAGE_UPLOAD_SETUP.md ├── drizzle.config.ts ├── next-env.d.ts ├── next.config.js ├── package.json ├── postcss.config.mjs ├── scripts ├── create-admin.js ├── create-admin.ts ├── debug-blocks.js ├── deploy.sh ├── healthcheck.js ├── populate.ts └── seed.ts ├── src ├── app │ ├── [...slug] │ │ └── page.tsx │ ├── admin │ │ ├── analytics │ │ │ └── page.tsx │ │ ├── auth │ │ │ ├── page.tsx │ │ │ └── verify │ │ │ │ └── page.tsx │ │ ├── content │ │ │ ├── [id] │ │ │ │ └── edit │ │ │ │ │ └── page.tsx │ │ │ ├── create │ │ │ │ └── page.tsx │ │ │ └── page.tsx │ │ ├── dev │ │ │ └── page.tsx │ │ ├── layout.tsx │ │ ├── page.tsx │ │ ├── settings │ │ │ └── page.tsx │ │ └── users │ │ │ └── page.tsx │ ├── api │ │ ├── admin │ │ │ ├── analytics │ │ │ │ ├── export │ │ │ │ │ └── route.ts │ │ │ │ └── route.ts │ │ │ ├── auth │ │ │ │ ├── me │ │ │ │ │ └── route.ts │ │ │ │ ├── send-magic-link │ │ │ │ │ └── route.ts │ │ │ │ └── verify-magic-link │ │ │ │ │ └── route.ts │ │ │ ├── blocks │ │ │ │ ├── [id] │ │ │ │ │ ├── children │ │ │ │ │ │ ├── [childId] │ │ │ │ │ │ │ └── route.ts │ │ │ │ │ │ ├── order │ │ │ │ │ │ │ └── route.ts │ │ │ │ │ │ └── route.ts │ │ │ │ │ ├── privacy │ │ │ │ │ │ └── route.ts │ │ │ │ │ └── route.ts │ │ │ │ ├── available │ │ │ │ │ └── route.ts │ │ │ │ └── route.ts │ │ │ ├── content │ │ │ │ ├── check-slug │ │ │ │ │ └── route.ts │ │ │ │ └── route.ts │ │ │ ├── debug-words │ │ │ │ └── route.ts │ │ │ ├── landing-block │ │ │ │ └── route.ts │ │ │ ├── links │ │ │ │ ├── [id] │ │ │ │ │ └── route.ts │ │ │ │ └── route.ts │ │ │ ├── logout │ │ │ │ └── route.ts │ │ │ ├── media │ │ │ │ ├── route.ts │ │ │ │ └── upload │ │ │ │ │ └── route.ts │ │ │ ├── settings │ │ │ │ └── route.ts │ │ │ ├── upload-image │ │ │ │ └── route.ts │ │ │ ├── url-suggestions │ │ │ │ └── route.ts │ │ │ └── users │ │ │ │ ├── [id] │ │ │ │ ├── revoke-sessions │ │ │ │ │ └── route.ts │ │ │ │ ├── route.ts │ │ │ │ └── toggle-status │ │ │ │ │ └── route.ts │ │ │ │ └── route.ts │ │ ├── blocks │ │ │ ├── [id] │ │ │ │ └── route.ts │ │ │ └── route.ts │ │ ├── health │ │ │ └── route.ts │ │ ├── landing-status │ │ │ └── route.ts │ │ ├── media │ │ │ └── [id] │ │ │ │ ├── route.ts │ │ │ │ └── thumbnail │ │ │ │ └── route.ts │ │ ├── public-blocks │ │ │ └── route.ts │ │ └── redirect │ │ │ └── [slug] │ │ │ └── route.ts │ ├── globals.css │ ├── landing │ │ └── page.tsx │ ├── layout.tsx │ └── page.tsx ├── components │ ├── AnalyticsDashboard.tsx │ ├── IconPicker.tsx │ ├── IconRenderer.tsx │ ├── LandingDetector.tsx │ ├── PageBuilder.tsx │ ├── PageRenderer.tsx │ ├── ThemeTest.tsx │ ├── ThemeToggle.tsx │ ├── UsersManagement.tsx │ ├── blocks │ │ ├── ArticleBlock.tsx │ │ ├── BlockRenderer.tsx │ │ ├── CardBlock.tsx │ │ ├── GalleryBlock.tsx │ │ ├── HeadingBlock.tsx │ │ ├── ImageBlock.tsx │ │ ├── PageBlock.tsx │ │ ├── RedirectBlock.tsx │ │ └── TextBlock.tsx │ ├── content-creator │ │ ├── ContentConfiguration.tsx │ │ ├── ContentTypeSelection.tsx │ │ ├── UrlCreation.tsx │ │ └── editors │ │ │ ├── ArticleEditor.tsx │ │ │ ├── GalleryEditor.tsx │ │ │ ├── HeadingEditor.tsx │ │ │ ├── ImageEditor.tsx │ │ │ ├── PageEditor.tsx │ │ │ ├── RedirectEditor.tsx │ │ │ └── TextEditor.tsx │ └── ui │ │ ├── alert-dialog.tsx │ │ ├── alert.tsx │ │ ├── badge.tsx │ │ ├── button.tsx │ │ ├── calendar.tsx │ │ ├── card.tsx │ │ ├── checkbox.tsx │ │ ├── collapsible.tsx │ │ ├── date-picker.tsx │ │ ├── dialog.tsx │ │ ├── dropdown-menu.tsx │ │ ├── image-dropzone.tsx │ │ ├── image-gallery-modal.tsx │ │ ├── image-selector.tsx │ │ ├── input.tsx │ │ ├── label.tsx │ │ ├── lexical-content-renderer.tsx │ │ ├── lexical-editor.tsx │ │ ├── lexical-toolbar.tsx │ │ ├── media-gallery-modal.tsx │ │ ├── multi-image-selector.tsx │ │ ├── navigation-menu.tsx │ │ ├── popover.tsx │ │ ├── radio-group.tsx │ │ ├── select.tsx │ │ ├── sonner.tsx │ │ ├── switch.tsx │ │ ├── table.tsx │ │ └── textarea.tsx ├── lib │ ├── auth-constants.ts │ ├── auth.ts │ ├── db │ │ ├── index.ts │ │ ├── schema.ts │ │ └── unified-schema.ts │ ├── hooks │ │ ├── use-blocks.ts │ │ └── useAuth.ts │ ├── performance.ts │ ├── providers │ │ └── query-provider.tsx │ ├── renderers │ │ └── index.ts │ ├── services │ │ ├── analytics-service.ts │ │ ├── block-service.ts │ │ ├── image-service.ts │ │ ├── landing-block-service.ts │ │ ├── landing-page-service.ts │ │ ├── link-service.ts │ │ ├── page-service.ts │ │ ├── post-service.ts │ │ ├── slug-service.ts │ │ └── user-service.ts │ ├── storage.ts │ ├── stores │ │ └── content-store.ts │ ├── urlShortener.ts │ └── utils.ts └── middleware.ts └── tsconfig.json /.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/.dockerignore -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/.env.example -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/.eslintrc.json -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/.gitignore -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/Dockerfile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/README.md -------------------------------------------------------------------------------- /assets/gremlinlabs-gremlinlink.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/assets/gremlinlabs-gremlinlink.jpg -------------------------------------------------------------------------------- /components.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/components.json -------------------------------------------------------------------------------- /config/.eslintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/config/.eslintrc.json -------------------------------------------------------------------------------- /config/.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/config/.prettierrc -------------------------------------------------------------------------------- /config/next.config.bundle-analyzer.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/config/next.config.bundle-analyzer.js -------------------------------------------------------------------------------- /data/adjectives-list.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/data/adjectives-list.md -------------------------------------------------------------------------------- /data/nouns-list.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/data/nouns-list.md -------------------------------------------------------------------------------- /deployment/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/deployment/README.md -------------------------------------------------------------------------------- /deployment/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/deployment/docker-compose.yml -------------------------------------------------------------------------------- /docs/IMAGE_UPLOAD_SETUP.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/docs/IMAGE_UPLOAD_SETUP.md -------------------------------------------------------------------------------- /drizzle.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/drizzle.config.ts -------------------------------------------------------------------------------- /next-env.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/next-env.d.ts -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/next.config.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/package.json -------------------------------------------------------------------------------- /postcss.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/postcss.config.mjs -------------------------------------------------------------------------------- /scripts/create-admin.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/scripts/create-admin.js -------------------------------------------------------------------------------- /scripts/create-admin.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/scripts/create-admin.ts -------------------------------------------------------------------------------- /scripts/debug-blocks.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/scripts/debug-blocks.js -------------------------------------------------------------------------------- /scripts/deploy.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/scripts/deploy.sh -------------------------------------------------------------------------------- /scripts/healthcheck.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/scripts/healthcheck.js -------------------------------------------------------------------------------- /scripts/populate.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/scripts/populate.ts -------------------------------------------------------------------------------- /scripts/seed.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/scripts/seed.ts -------------------------------------------------------------------------------- /src/app/[...slug]/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/[...slug]/page.tsx -------------------------------------------------------------------------------- /src/app/admin/analytics/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/admin/analytics/page.tsx -------------------------------------------------------------------------------- /src/app/admin/auth/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/admin/auth/page.tsx -------------------------------------------------------------------------------- /src/app/admin/auth/verify/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/admin/auth/verify/page.tsx -------------------------------------------------------------------------------- /src/app/admin/content/[id]/edit/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/admin/content/[id]/edit/page.tsx -------------------------------------------------------------------------------- /src/app/admin/content/create/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/admin/content/create/page.tsx -------------------------------------------------------------------------------- /src/app/admin/content/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/admin/content/page.tsx -------------------------------------------------------------------------------- /src/app/admin/dev/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/admin/dev/page.tsx -------------------------------------------------------------------------------- /src/app/admin/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/admin/layout.tsx -------------------------------------------------------------------------------- /src/app/admin/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/admin/page.tsx -------------------------------------------------------------------------------- /src/app/admin/settings/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/admin/settings/page.tsx -------------------------------------------------------------------------------- /src/app/admin/users/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/admin/users/page.tsx -------------------------------------------------------------------------------- /src/app/api/admin/analytics/export/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/analytics/export/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/analytics/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/analytics/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/auth/me/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/auth/me/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/auth/send-magic-link/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/auth/send-magic-link/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/auth/verify-magic-link/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/auth/verify-magic-link/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/blocks/[id]/children/[childId]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/blocks/[id]/children/[childId]/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/blocks/[id]/children/order/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/blocks/[id]/children/order/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/blocks/[id]/children/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/blocks/[id]/children/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/blocks/[id]/privacy/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/blocks/[id]/privacy/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/blocks/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/blocks/[id]/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/blocks/available/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/blocks/available/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/blocks/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/blocks/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/content/check-slug/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/content/check-slug/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/content/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/content/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/debug-words/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/debug-words/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/landing-block/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/landing-block/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/links/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/links/[id]/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/links/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/links/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/logout/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/logout/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/media/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/media/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/media/upload/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/media/upload/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/settings/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/settings/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/upload-image/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/upload-image/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/url-suggestions/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/url-suggestions/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/users/[id]/revoke-sessions/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/users/[id]/revoke-sessions/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/users/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/users/[id]/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/users/[id]/toggle-status/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/users/[id]/toggle-status/route.ts -------------------------------------------------------------------------------- /src/app/api/admin/users/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/admin/users/route.ts -------------------------------------------------------------------------------- /src/app/api/blocks/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/blocks/[id]/route.ts -------------------------------------------------------------------------------- /src/app/api/blocks/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/blocks/route.ts -------------------------------------------------------------------------------- /src/app/api/health/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/health/route.ts -------------------------------------------------------------------------------- /src/app/api/landing-status/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/landing-status/route.ts -------------------------------------------------------------------------------- /src/app/api/media/[id]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/media/[id]/route.ts -------------------------------------------------------------------------------- /src/app/api/media/[id]/thumbnail/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/media/[id]/thumbnail/route.ts -------------------------------------------------------------------------------- /src/app/api/public-blocks/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/public-blocks/route.ts -------------------------------------------------------------------------------- /src/app/api/redirect/[slug]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/api/redirect/[slug]/route.ts -------------------------------------------------------------------------------- /src/app/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/globals.css -------------------------------------------------------------------------------- /src/app/landing/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/landing/page.tsx -------------------------------------------------------------------------------- /src/app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/layout.tsx -------------------------------------------------------------------------------- /src/app/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/app/page.tsx -------------------------------------------------------------------------------- /src/components/AnalyticsDashboard.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/AnalyticsDashboard.tsx -------------------------------------------------------------------------------- /src/components/IconPicker.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/IconPicker.tsx -------------------------------------------------------------------------------- /src/components/IconRenderer.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/IconRenderer.tsx -------------------------------------------------------------------------------- /src/components/LandingDetector.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/LandingDetector.tsx -------------------------------------------------------------------------------- /src/components/PageBuilder.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/PageBuilder.tsx -------------------------------------------------------------------------------- /src/components/PageRenderer.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/PageRenderer.tsx -------------------------------------------------------------------------------- /src/components/ThemeTest.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ThemeTest.tsx -------------------------------------------------------------------------------- /src/components/ThemeToggle.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ThemeToggle.tsx -------------------------------------------------------------------------------- /src/components/UsersManagement.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/UsersManagement.tsx -------------------------------------------------------------------------------- /src/components/blocks/ArticleBlock.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/blocks/ArticleBlock.tsx -------------------------------------------------------------------------------- /src/components/blocks/BlockRenderer.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/blocks/BlockRenderer.tsx -------------------------------------------------------------------------------- /src/components/blocks/CardBlock.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/blocks/CardBlock.tsx -------------------------------------------------------------------------------- /src/components/blocks/GalleryBlock.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/blocks/GalleryBlock.tsx -------------------------------------------------------------------------------- /src/components/blocks/HeadingBlock.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/blocks/HeadingBlock.tsx -------------------------------------------------------------------------------- /src/components/blocks/ImageBlock.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/blocks/ImageBlock.tsx -------------------------------------------------------------------------------- /src/components/blocks/PageBlock.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/blocks/PageBlock.tsx -------------------------------------------------------------------------------- /src/components/blocks/RedirectBlock.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/blocks/RedirectBlock.tsx -------------------------------------------------------------------------------- /src/components/blocks/TextBlock.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/blocks/TextBlock.tsx -------------------------------------------------------------------------------- /src/components/content-creator/ContentConfiguration.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/content-creator/ContentConfiguration.tsx -------------------------------------------------------------------------------- /src/components/content-creator/ContentTypeSelection.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/content-creator/ContentTypeSelection.tsx -------------------------------------------------------------------------------- /src/components/content-creator/UrlCreation.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/content-creator/UrlCreation.tsx -------------------------------------------------------------------------------- /src/components/content-creator/editors/ArticleEditor.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/content-creator/editors/ArticleEditor.tsx -------------------------------------------------------------------------------- /src/components/content-creator/editors/GalleryEditor.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/content-creator/editors/GalleryEditor.tsx -------------------------------------------------------------------------------- /src/components/content-creator/editors/HeadingEditor.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/content-creator/editors/HeadingEditor.tsx -------------------------------------------------------------------------------- /src/components/content-creator/editors/ImageEditor.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/content-creator/editors/ImageEditor.tsx -------------------------------------------------------------------------------- /src/components/content-creator/editors/PageEditor.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/content-creator/editors/PageEditor.tsx -------------------------------------------------------------------------------- /src/components/content-creator/editors/RedirectEditor.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/content-creator/editors/RedirectEditor.tsx -------------------------------------------------------------------------------- /src/components/content-creator/editors/TextEditor.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/content-creator/editors/TextEditor.tsx -------------------------------------------------------------------------------- /src/components/ui/alert-dialog.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/alert-dialog.tsx -------------------------------------------------------------------------------- /src/components/ui/alert.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/alert.tsx -------------------------------------------------------------------------------- /src/components/ui/badge.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/badge.tsx -------------------------------------------------------------------------------- /src/components/ui/button.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/button.tsx -------------------------------------------------------------------------------- /src/components/ui/calendar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/calendar.tsx -------------------------------------------------------------------------------- /src/components/ui/card.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/card.tsx -------------------------------------------------------------------------------- /src/components/ui/checkbox.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/checkbox.tsx -------------------------------------------------------------------------------- /src/components/ui/collapsible.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/collapsible.tsx -------------------------------------------------------------------------------- /src/components/ui/date-picker.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/date-picker.tsx -------------------------------------------------------------------------------- /src/components/ui/dialog.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/dialog.tsx -------------------------------------------------------------------------------- /src/components/ui/dropdown-menu.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/dropdown-menu.tsx -------------------------------------------------------------------------------- /src/components/ui/image-dropzone.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/image-dropzone.tsx -------------------------------------------------------------------------------- /src/components/ui/image-gallery-modal.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/image-gallery-modal.tsx -------------------------------------------------------------------------------- /src/components/ui/image-selector.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/image-selector.tsx -------------------------------------------------------------------------------- /src/components/ui/input.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/input.tsx -------------------------------------------------------------------------------- /src/components/ui/label.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/label.tsx -------------------------------------------------------------------------------- /src/components/ui/lexical-content-renderer.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/lexical-content-renderer.tsx -------------------------------------------------------------------------------- /src/components/ui/lexical-editor.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/lexical-editor.tsx -------------------------------------------------------------------------------- /src/components/ui/lexical-toolbar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/lexical-toolbar.tsx -------------------------------------------------------------------------------- /src/components/ui/media-gallery-modal.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/media-gallery-modal.tsx -------------------------------------------------------------------------------- /src/components/ui/multi-image-selector.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/multi-image-selector.tsx -------------------------------------------------------------------------------- /src/components/ui/navigation-menu.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/navigation-menu.tsx -------------------------------------------------------------------------------- /src/components/ui/popover.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/popover.tsx -------------------------------------------------------------------------------- /src/components/ui/radio-group.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/radio-group.tsx -------------------------------------------------------------------------------- /src/components/ui/select.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/select.tsx -------------------------------------------------------------------------------- /src/components/ui/sonner.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/sonner.tsx -------------------------------------------------------------------------------- /src/components/ui/switch.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/switch.tsx -------------------------------------------------------------------------------- /src/components/ui/table.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/table.tsx -------------------------------------------------------------------------------- /src/components/ui/textarea.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/components/ui/textarea.tsx -------------------------------------------------------------------------------- /src/lib/auth-constants.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/lib/auth-constants.ts -------------------------------------------------------------------------------- /src/lib/auth.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/lib/auth.ts -------------------------------------------------------------------------------- /src/lib/db/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/lib/db/index.ts -------------------------------------------------------------------------------- /src/lib/db/schema.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/lib/db/schema.ts -------------------------------------------------------------------------------- /src/lib/db/unified-schema.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/lib/db/unified-schema.ts -------------------------------------------------------------------------------- /src/lib/hooks/use-blocks.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/lib/hooks/use-blocks.ts -------------------------------------------------------------------------------- /src/lib/hooks/useAuth.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/lib/hooks/useAuth.ts -------------------------------------------------------------------------------- /src/lib/performance.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/lib/performance.ts -------------------------------------------------------------------------------- /src/lib/providers/query-provider.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/lib/providers/query-provider.tsx -------------------------------------------------------------------------------- /src/lib/renderers/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/lib/renderers/index.ts -------------------------------------------------------------------------------- /src/lib/services/analytics-service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/lib/services/analytics-service.ts -------------------------------------------------------------------------------- /src/lib/services/block-service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/lib/services/block-service.ts -------------------------------------------------------------------------------- /src/lib/services/image-service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/lib/services/image-service.ts -------------------------------------------------------------------------------- /src/lib/services/landing-block-service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/lib/services/landing-block-service.ts -------------------------------------------------------------------------------- /src/lib/services/landing-page-service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/lib/services/landing-page-service.ts -------------------------------------------------------------------------------- /src/lib/services/link-service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/lib/services/link-service.ts -------------------------------------------------------------------------------- /src/lib/services/page-service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/lib/services/page-service.ts -------------------------------------------------------------------------------- /src/lib/services/post-service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/lib/services/post-service.ts -------------------------------------------------------------------------------- /src/lib/services/slug-service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/lib/services/slug-service.ts -------------------------------------------------------------------------------- /src/lib/services/user-service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/lib/services/user-service.ts -------------------------------------------------------------------------------- /src/lib/storage.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/lib/storage.ts -------------------------------------------------------------------------------- /src/lib/stores/content-store.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/lib/stores/content-store.ts -------------------------------------------------------------------------------- /src/lib/urlShortener.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/lib/urlShortener.ts -------------------------------------------------------------------------------- /src/lib/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/lib/utils.ts -------------------------------------------------------------------------------- /src/middleware.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/src/middleware.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gremlin-labs/gremlinlink/HEAD/tsconfig.json --------------------------------------------------------------------------------