feat/initial-build #1

Merged
hsiegeln merged 32 commits from feat/initial-build into main 2026-04-24 17:56:10 +02:00
7 changed files with 13115 additions and 0 deletions
Showing only changes of commit b9b0dcb6ec - Show all commits

5
.env.example Normal file
View File

@@ -0,0 +1,5 @@
# Logto auth endpoints — the marketing site only performs <a href> navigations to these.
# No tokens, no cookies, no XHR — these are plain hyperlinks.
PUBLIC_AUTH_SIGNIN_URL=https://auth.cameleer.io/sign-in
PUBLIC_AUTH_SIGNUP_URL=https://auth.cameleer.io/sign-in?first_screen=register
PUBLIC_SALES_EMAIL=sales@cameleer.io

22
astro.config.mjs Normal file
View File

@@ -0,0 +1,22 @@
import { defineConfig } from 'astro/config';
import tailwind from '@astrojs/tailwind';
export default defineConfig({
site: 'https://www.cameleer.io',
output: 'static',
trailingSlash: 'never',
build: {
format: 'file',
assets: 'assets',
inlineStylesheets: 'auto',
},
compressHTML: true,
integrations: [
tailwind({ applyBaseStyles: false }),
],
vite: {
build: {
cssMinify: 'lightningcss',
},
},
});

13027
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

33
package.json Normal file
View File

@@ -0,0 +1,33 @@
{
"name": "cameleer-website",
"version": "0.0.1",
"type": "module",
"private": true,
"scripts": {
"dev": "astro dev",
"start": "astro dev",
"build": "astro build",
"preview": "astro preview",
"astro": "astro",
"test": "vitest run",
"test:watch": "vitest",
"lint:html": "html-validate 'dist/**/*.html'",
"lint:links": "linkinator dist --recurse --silent",
"lh": "lhci autorun"
},
"dependencies": {
"@astrojs/tailwind": "^5.1.0",
"@fontsource/dm-sans": "^5.0.21",
"@fontsource/jetbrains-mono": "^5.0.21",
"astro": "^5.0.0",
"tailwindcss": "^3.4.0"
},
"devDependencies": {
"@lhci/cli": "^0.14.0",
"@types/node": "^20.11.0",
"html-validate": "^8.18.0",
"linkinator": "^6.1.0",
"typescript": "^5.4.0",
"vitest": "^1.6.0"
}
}

23
src/content/config.ts Normal file
View File

@@ -0,0 +1,23 @@
import { defineCollection, z } from 'astro:content';
// Scaffold only — no entries yet. Added now so future blog/docs work is pure content, not refactor.
const blog = defineCollection({
type: 'content',
schema: z.object({
title: z.string(),
description: z.string(),
publishedAt: z.date(),
draft: z.boolean().default(true),
}),
});
const docs = defineCollection({
type: 'content',
schema: z.object({
title: z.string(),
description: z.string(),
order: z.number().default(99),
}),
});
export const collections = { blog, docs };

0
src/content/en/.gitkeep Normal file
View File

5
tsconfig.json Normal file
View File

@@ -0,0 +1,5 @@
{
"extends": "astro/tsconfigs/strict",
"include": ["src/**/*", "astro.config.mjs", "tailwind.config.mjs"],
"exclude": ["dist", "node_modules"]
}