From 344596e390eb773e72b35741addeeb476063d0cc Mon Sep 17 00:00:00 2001 From: neutrino2211 Date: Fri, 19 Sep 2025 22:17:14 +0100 Subject: [PATCH] init --- CRUSH.md | 34 ++++++ src/app/page.tsx | 261 +++++++++++++++++++++++++++++------------------ 2 files changed, 197 insertions(+), 98 deletions(-) create mode 100644 CRUSH.md diff --git a/CRUSH.md b/CRUSH.md new file mode 100644 index 0000000..72a5884 --- /dev/null +++ b/CRUSH.md @@ -0,0 +1,34 @@ +# CRUSH.md + +## Commands + +- **Install dependencies**: `pnpm install` +- **Development server**: `pnpm dev` (runs `next dev --turbopack`) +- **Build**: `pnpm build` (runs `next build --turbopack`) +- **Start production**: `pnpm start` (runs `next start`) +- **Lint**: `pnpm lint` (runs `eslint`) +- **Typecheck**: `pnpm tsc --noEmit` (TypeScript compiler without emitting files) +- **Tests**: No test script defined. Add Jest or Vitest via `pnpm add -D vitest` and configure. +- **Run single test**: Once tests are set up, e.g., `pnpm vitest src/app/page.test.tsx` (example; adjust based on setup). + +## Code Style Guidelines + +- **Language**: TypeScript with strict mode enabled (`strict: true` in tsconfig.json). +- **Framework**: Next.js 15 (App Router). Use server components by default; mark client components with `'use client'`. +- **Styling**: Tailwind CSS (via globals.css). Use utility classes; avoid custom CSS unless necessary. +- **Fonts**: Geist Sans for body (`--font-geist-sans`), Geist Mono for code (`--font-geist-mono`). +- **Imports**: + - Use absolute paths with `@/*` alias (e.g., `import { Component } from '@/components'`). + - Prefer named imports over default where possible. + - Import types explicitly: `import type { Metadata } from 'next';`. + - Group imports: Next.js/React, then third-party, then local. +- **Formatting**: Follow ESLint rules from `eslint.config.mjs` (extends `next/core-web-vitals`, `next/typescript`). Use Prettier if added. +- **Types**: Always type props (e.g., `Readonly<{ children: React.ReactNode }>`). Use `React.FC` sparingly; prefer function signatures. +- **Naming Conventions**: + - Components: PascalCase (e.g., `HomePage`). + - Variables/functions: camelCase. + - Files: kebab-case for pages (e.g., `page.tsx`), PascalCase for components. +- **Error Handling**: Use Next.js error boundaries or try-catch in async functions. Log errors to console in development. +- **Components**: Functional components with hooks. Colocate styles and logic. +- **Paths**: Use `next/image` for images with `priority` for above-fold. Optimize with width/height. +- **Ignores**: ESLint ignores `node_modules/**`, `.next/**`, etc. Respect `.gitignore`. \ No newline at end of file diff --git a/src/app/page.tsx b/src/app/page.tsx index a932894..f91eff3 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,103 +1,168 @@ -import Image from "next/image"; - export default function Home() { return ( -
-
- Next.js logo -
    -
  1. - Get started by editing{" "} - - src/app/page.tsx - - . -
  2. -
  3. - Save and see your changes instantly. -
  4. -
+
+
+
+
+
+
MN
+
+
+

+ Mainasara Sowa +

+

+ Developer & Cybersecurity Expert crafting secure digital experiences +

+
- -
- + + +
+
+

About

+

+ I'm a passionate developer and cybersecurity expert who believes in building + beautiful, secure, and thoughtful digital solutions. When I'm not coding or + exploring security vulnerabilities, you'll find me creating art or writing + mini stories that capture life's quiet moments. +

+
+ +
+

Expertise

+
+
+

Development

+
    +
  • + + Full-Stack Applications +
  • +
  • + + Clean Architecture +
  • +
  • + + Performance Optimization +
  • +
+
+
+

Cybersecurity

+
    +
  • + + Security Auditing +
  • +
  • + + Penetration Testing +
  • +
  • + + Security Architecture +
  • +
+
+
+
+ +
+

Featured Projects

+
+
+

Security Scanner

+

Automated vulnerability detection tool

+ View Project → +
+
+

Art Portfolio

+

Digital art showcase platform

+ View Project → +
+
+
+ +
+

Creative Corner

+
+
+
🎨
+

Digital Art

+

+ Exploring creativity through digital canvases +

+
+
+
📝
+

Mini Stories

+

+ Capturing moments in brief narratives +

+
+
+
🌸
+

Thoughts

+

+ Reflections on technology and life +

+
+
+
+ +
+

Get In Touch

+
+

+ Let's collaborate on something interesting +

+ + SEND EMAIL + +
+
+
+ + +
); -} +} \ No newline at end of file