Skip to content
dynamia-aiPublic

About

Dynamai.ai website

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

369 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dynamia AI Website

Official website for Dynamia AI, built with Next.js 15.

Tech Stack

  • Framework: Next.js 15.2.8 with App Router
  • React: 19.0.0
  • Language: TypeScript 5 (strict mode)
  • Styling: Tailwind CSS v4
  • Animations: Framer Motion
  • i18n: react-i18next (English/Chinese)
  • Fonts: Geist Sans & Geist Mono

Getting Started

Prerequisites

  • Node.js 22 (22.6 or newer within 22.x; .nvmrc matches CI)
  • npm, yarn, pnpm, or bun

Installation

# Install dependencies
npm install
# Initialize the ignored asset manifest for editor type checking
npm run generate:public-assets

Run Next.js commands from the repository root. If using nvm, run nvm install and nvm use to select the version in .nvmrc.

Development Server

npm run dev

Open http://localhost:3000 to view the site.

Available Scripts

# Development
npm run dev              # Start development server

# Building
npm run build            # Production build
npm run build-legacy     # Production build with increased memory (if needed)

# Production
npm start                # Start production server

# Code Quality
npm run lint             # Run ESLint
npm run typecheck        # Generate the asset manifest, then check TypeScript
npm run test:blog-assets  # Test image selection, the manifest and function traces

# Search
npm run algolia:index    # Generate Algolia search index

Project Structure

src/
├── app/              # Next.js App Router pages
├── components/       # Reusable React components
├── i18n/            # Internationalization (en.json, zh.json)
├── lib/             # Utility functions
└── types/           # TypeScript type definitions

Path Alias: @/* maps to ./src/*

Deployment

The easiest way to deploy is using Vercel.

Check the Next.js deployment documentation for more details.

Learn More

Development Guidelines

This project follows specific coding standards. See AGENTS.md for:

  • Component structure patterns
  • Import conventions
  • TypeScript best practices
  • Styling guidelines
  • i18n usage rules

Marketing blog workflow

Company marketing editors create new blogs from the official company Feishu template, or provide an existing article URL and describe a small edit in chat, including new images. The website-blog-from-feishu skill prepares a content-only preview and draft PR with either workflow. Initial setup includes official Lark CLI, the employee's authorized company Feishu access, and verification of the internal template and article library. Setup also checks that the workflow is enabled on the default branch; creating a PR does not publish the article.

SEO regression checks

npm run build validates blog frontmatter before compiling. With the production server running, run npm run validate:seo (defaults to http://localhost:3100; override with SEO_TEST_URL). The checks verify server-rendered pagination, canonical/hreflang, localized Article data, historical redirects without loops, resource links, and real 404 responses. npm run validate:blog runs the content metadata check independently.

Next config generates src/generated/public-asset-paths.json before compilation. Blog share images use this path-only manifest so server functions do not bundle the contents of public/. The file is ignored by Git and refreshed automatically when assets are added or removed during the default webpack development server. Only the Node.js server compiler watches the asset directory. A manifest change can trigger one additional incremental compilation; unchanged contents are not rewritten. Restart a Turbopack dev server after changing assets.

For a fresh checkout, npm run generate:public-assets initializes the manifest without starting Next.js. npm run typecheck does this automatically; raw npx tsc --noEmit and editor checks require the manifest to exist first. npm run test:blog-assets checks image selection and build safeguards. npm run build checks every .next/server/**/*.nft.json for public assets and fails if the required blog traces are missing. Do not exclude src/content/blog, which is still read by the server. The manifest uses the project directory, but this does not add support for invoking the whole Next.js build from another cwd.

Case-only historical blog redirects live in src/lib/legacy-blog-redirects.ts and run before locale middleware. Do not move those mappings to next.config.ts, whose redirects match case-insensitively and can loop on the destination.

About

Dynamai.ai website

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages