Skip to content

echo-web-mono Oversikt

echo-web-mono er hovedmonorepoet som inneholder alle echo’s webapplikasjoner og tjenester. Dette er en moderne fullstack-løsning bygget med TypeScript og moderne webutviklingsteknologier.

Monorepoet er organisert med Turbo og pnpm workspaces for optimal utvikleropplevelse og delt kode.

AppBeskrivelseTeknologiPort
webHovednettsiden til echoNext.js 15, React 193000
cmsSanity Studio for innholdsstyringSanity.io3333
apiBackend API for webapplikasjonerHono.js, Node.js8000
docsDenne dokumentasjonssidenAstro, Starlight4321
  • db - Database schemas og migrasjoner (Drizzle ORM + PostgreSQL)
  • sanity - Delte Sanity queries og utilities
  • lib - Felles utilities og business logic
  • email - E-post templates og sending
  • seeder - Database seeding utilities
  • config/eslint - Delt ESLint konfigurasjon
  • Next.js 15 med App Router
  • React 19 med server components
  • Tailwind CSS for styling
  • TypeScript med strict type checking
  • Hono (Node.js) for hovedbackend
  • PostgreSQL database
  • Drizzle ORM for database operasjoner
  • Sanity.io headless CMS
  • Sanity Studio for innholdsredigering
  • Docker for containerisering
  • Vercel for frontend deployment
  • Fly.io for backend deployment
  • Turbo for monorepo management
  • pnpm for package management
Terminal window
# Start alle applikasjoner
pnpm dev
Terminal window
pnpm web:dev # Kun web (localhost:3000)
pnpm cms:dev # Kun CMS (localhost:3333)
pnpm db:dev # Drizzle Studio (localhost:4983)
Terminal window
pnpm db:setup # Full database reset
pnpm db:migrate # Kjør migrasjoner
pnpm db:generate # Generer nye migrasjoner
pnpm seed # Seed database med testdata
pnpm seed database --mode <prod || dev || test> # Mogleg å velge modus til seed, modus til høgre inneholder modus til venstre
Terminal window
pnpm test:unit # Unit tests
pnpm test:e2e # End-to-end tests
pnpm lint # ESLint alle pakker
pnpm typecheck # TypeScript type checking
pnpm format # Prettier formatering
  • Node.js 22+ (anbefalt: bruk fnm/nvm)
  • pnpm 9+
  • Docker (for database)
  • cenv (echo’s miljø-verktøy)
Terminal window
# 1. Clone repository
git clone git@github.com:echo-webkom/echo-web-mono.git
cd echo-web-mono
# 2. Kopier environment variabler
cp .env.example .env
# 3. Valider environment
cenv check
# 4. Installer dependencies
pnpm install
# 5. Sett opp database
pnpm db:setup
# 6. Seed med testdata
pnpm seed
# 7. Start utvikling
pnpm dev
  • PostgreSQL kjører i Docker container
  • Drizzle Studio for database management
  • Test data via seeder package
  • Produksjon: Vercel + Sanity produksjon dataset
  • Staging: Preview deployments med develop dataset
  • Testing: Test miljø for automatiserte tester
  1. Opprett feature branch: git switch -c fornavn/feature-beskrivelse
  2. Start utviklingsmiljø: pnpm dev
  3. Gjør endringer i relevante apps/packages
  4. Test endringer: pnpm lint && pnpm typecheck
  5. Commit og push: git push origin branch-navn
  6. Opprett Pull Request på GitHub

Alt blir deployed automatisk ved push til main.