mirror of
https://github.com/QWRK-ORG/qwrk-laconic-core.git
synced 2025-12-30 12:44:06 +00:00
* chore: Onboarding components migrated * chore: wrap pages * chore(components): Migrate core and navigation components Migrated core and navigation components from Snowballtools repository: - Core components: Dropdown, FormatMilliSecond, Logo, SearchBar, Stepper, StopWatch, VerticalStepper - Navigation components: GitHubSessionButton, LaconicIcon, NavigationActions, WalletSessionId Follows component migration guidelines with: - Tailwind styling - Consistent file structure - TypeScript type definitions - README documentation * chore(routing): Basic routing within navigation * chore: Import project cards and deps
12 KiB
12 KiB
Comprehensive Technology Documentation & GitHub Links (March 2025)
Last updated: March 3, 2025
Core Toolchain
| Technology | Current Version | Documentation | GitHub Repository |
|---|---|---|---|
| Turborepo | 2.4.0 | turbo.build/repo | vercel/turborepo |
| Next.js 15 App Router | 15.0.0 | nextjs.org/docs/app | vercel/next.js |
| Biome | 2.0.0 | biomejs.dev | biomejs/biome |
| PNPM | 10.5.2 | pnpm.io | pnpm/pnpm |
Styling & UI
| Technology | Current Version | Documentation | GitHub Repository |
|---|---|---|---|
| Tailwind CSS v4 | 4.0.0 | tailwindcss.com/docs/v4 | tailwindlabs/tailwindcss |
| ShadCN UI | 2.0.0 | ui.shadcn.com | shadcn-ui/ui |
| Radix UI | 3.0.0 | radix-ui.com | radix-ui/primitives |
| Lucide (icons library) | 1.0.0 | lucide.dev | lucide-icons/lucide |
| Sonner | 2.1.0 | sonner.dev | sonnerjs/sonner |
Language & Validation
| Technology | Current Version | Documentation | GitHub Repository |
|---|---|---|---|
| TypeScript | 6.0.0 | typescriptlang.org/docs | microsoft/TypeScript |
| Zod | 4.0.0 | zod.dev | colinhacks/zod |
React Ecosystem
| Technology | Current Version | Documentation | GitHub Repository |
|---|---|---|---|
| React | 19.2.0 | react.dev | facebook/react |
| React Hook Form | 9.0.0 | react-hook-form.com | react-hook-form/react-hook-form |
| React OAuth Popup | 3.0.1 | react-oauth-popup.dev | react-oauth/popup |
| React Testing Library | 15.0.0 | testing-library.com/react | testing-library/react-testing-library |
Data & Utilities
| Technology | Current Version | Documentation | GitHub Repository |
|---|---|---|---|
| GraphQL | June 2021 Specification | graphql.org | graphql/graphql-spec |
| Axios | 1.8.1 | axios-http.com/docs | axios/axios |
| Date-FNS | 4.1.0 | date-fns.org | date-fns/date-fns |
| Recharts | 3.0.0 | recharts.org | recharts/recharts |
| UUID | 9.0.1 | uuid.dev | uuidjs/uuid |
Testing & Development Tools
| Technology | Current Version | Documentation | GitHub Repository |
|---|---|---|---|
| Vitest | 2.0.0 | vitest.dev | vitest-dev/vitest |
| Jest | 30.0.0 | jestjs.io | jestjs/jest |
| Playwright | 1.45.0 | playwright.dev | microsoft/playwright |
| Cypress | 13.6.0 | cypress.io | cypress-io/cypress |
| Storybook | 8.0.0 | storybook.js.org | storybookjs/storybook |
| Left Hook | 0.9.4 | lefthook.dev | evilmartians/lefthook |
| GitHub | N/A (Platform) | docs.github.com | N/A |
| Gitea | 2.5.0 | docs.gitea.com | go-gitea/gitea |
| Octokit | 8.0.0 | octokit.github.io | octokit/rest.js |
Web3 & Authentication
| Technology | Current Version | Documentation | GitHub Repository |
|---|---|---|---|
| Web3Modal | 3.0.0 | web3modal.com | WalletConnect/web3modal |
| SIWE (Sign-In with Ethereum) | 2.0.0 | login.xyz | spruceid/siwe |
| Reown Wallet Kit | 3.0.0 | walletconnect.com | WalletConnect/walletconnect-monorepo |
| Clerk | 5.0.0 | clerk.com/docs | clerkinc/javascript |
Laconic Network & Infrastructure
| Technology | Current Version | Documentation | GitHub Repository |
|---|---|---|---|
| Laconic Network | 2.1.0 | laconic.com/docs | laconic-network |
| Laconic.com | N/A | laconic.com | laconic-network/portal |
| Laconic Web Wallet | 1.4.0 | wallet.laconic.com | laconic-network/wallet |
Additional Web3 Tools for React
| Technology | Current Version | Purpose | Documentation | GitHub Repository |
|---|---|---|---|---|
| Wagmi | 2.0.0 | Ethereum Hooks | wagmi.sh | wagmi-dev/wagmi |
| The Graph | 2.1.0 | Blockchain Indexing | thegraph.com/docs | graphprotocol/graph-node |
| Hardhat | 3.0.0 | Smart Contract Development | hardhat.org | NomicFoundation/hardhat |
| IPFS | 0.28.0 | Decentralized Storage | docs.ipfs.tech | ipfs/js-ipfs |
| Viem | 2.0.0 | Ethereum Interface | viem.sh | wagmi-dev/viem |
| Ethers.js | 6.1.0 | Ethereum Library | docs.ethers.org | ethers-io/ethers.js |
React 19 Key Features (New in 2025)
React 19, released in December 2024, includes several major improvements:
- React Server Components (RSC): Now fully integrated in the stable release
- Actions: Simplifies data fetching and state updates, especially for forms
- Document Metadata: Built-in support for managing document metadata (titles, descriptions, meta tags)
- Concurrent Rendering: Improved performance for complex UI updates
- Enhanced Hooks: New hooks and improvements to existing ones
- Performance Optimization: Significant improvements in rendering speed and memory usage
- Better Developer Experience: Improved error messages and debugging tools
Migration Notes
When upgrading between major versions, consider these important points:
- Turborepo 2.x to 3.x: Expected in late 2025, will likely focus on improved remote caching and better integration with CI/CD pipelines
- Next.js 15 to 16: Will likely focus on enhanced server components and improved data fetching patterns
- Tailwind CSS 4 to 5: May introduce new utility classes and performance optimizations
- React 19 to 20: Will continue the focus on concurrent rendering and server components
- Testing Framework Migrations:
- Jest to Vitest: Use the compatibility mode for easier migration, then leverage Vitest's faster performance
- Cypress to Playwright: Consider migrating for better parallel test execution and multi-browser support
Best Practices for 2025
- Adopt Server Components: Leverage React Server Components for improved performance and reduced client-side JavaScript
- Embrace Type Safety: Use TypeScript and Zod together for end-to-end type safety
- Component Libraries: Consider using ShadCN UI with Tailwind CSS for rapid UI development
- Monorepo Structure: Use Turborepo and PNPM for efficient management of monorepos
- Testing Strategy: Implement comprehensive testing with a layered approach:
- Unit Testing: Vitest (faster than Jest, better ESM support) or Jest
- Component Testing: React Testing Library with either Vitest or Jest
- E2E Testing: Playwright (recommended for Next.js 15) or Cypress
Future Trends (2025-2026)
- AI Integration: More tools integrating AI capabilities for code generation and optimization
- Edge Computing: Increased focus on edge rendering and computing
- Web3 Mainstream Adoption: Simplified Web3 integration in traditional applications
- Zero-Bundle Size: Components that ship no JavaScript to the client
- Hybrid Rendering Strategies: Combination of static, server, and client rendering based on content type
- Automated Testing: Increased adoption of AI-assisted test generation and maintenance
- Visual Testing: Growing importance of visual regression testing in the UI development workflow
Next.js 15 Testing Setup Guide
Setting up a robust testing environment for Next.js 15 applications involves configuring multiple testing tools for different layers of your application:
1. Unit and Component Testing
Choose between Vitest (recommended) or Jest:
# For Vitest (faster, better ESM support)
npm install -D vitest @testing-library/react @testing-library/jest-dom happy-dom
# For Jest
npm install -D jest @testing-library/react @testing-library/jest-dom jest-environment-jsdom
2. End-to-End Testing with Playwright (Recommended for Next.js 15)
# Install Playwright
npm init playwright@latest
# Or with specific browsers
npx playwright install --with-deps chromium firefox webkit
Example Next.js 15 Playwright Test:
// e2e/example.spec.ts
import { test, expect } from '@playwright/test';
test('homepage has the correct title', async ({ page }) => {
await page.goto('/');
await expect(page).toHaveTitle(/My Next.js App/);
});
test('navigation works correctly', async ({ page }) => {
await page.goto('/');
await page.click('text=About');
await expect(page).toHaveURL(/.*about/);
});
3. Playwright Configuration for Next.js 15
// playwright.config.ts
import { defineConfig } from '@playwright/test';
export default defineConfig({
testDir: './e2e',
webServer: {
command: 'npm run dev',
url: 'http://localhost:3000',
reuseExistingServer: !process.env.CI,
},
use: {
baseURL: 'http://localhost:3000',
trace: 'on-first-retry',
},
});
4. Adding Scripts to package.json
{
"scripts": {
"test": "vitest", // or "jest"
"test:e2e": "playwright test",
"test:e2e:ui": "playwright test --ui"
}
}
This documentation is current as of March 2025. Version numbers and links are subject to change as technologies evolve.