A modern, interactive coding challenge and typing practice app built with Next.js, TypeScript, and Radix UI.
Solve small challenges (e.g. “Add two numbers”) with instant execution and validation directly in the browser.
- Production: _Add your deployment URL here
- Preview (Vercel): Automatically generated on PRs
- Next.js 14+ (App Router)
- TypeScript
- Tailwind CSS (with PostCSS) + Radix UI
- ESLint (Next + TS rules)
- Node.js 18+ (20 recommended)
- npm / pnpm / yarn
- 🧩 Coding challenges with instant browser feedback
- ⌨️ Typing practice with speed tracking
- 🎨 Accessible, themeable UI (Radix + Tailwind)
- 📊 Progress charts and stats
- 🔒 Security best practices (security headers,
robots.txt)
Install dependencies:
pnpm install
# or
npm ciRun the development server:
pnpm dev
# or
npm run devBuild for production:
pnpm build
pnpm startOpen http://localhost:3000 in your browser.
src/app/– Next.js App Router (pages, layouts, styles)src/components/– UI components (Radix + custom)src/hooks/– Custom React hookssrc/lib/– Utilities and helperspublic/– Static assets (images, sounds, robots.txt)
- Security headers via
next.config.ts:X-Frame-Options: SAMEORIGINX-Content-Type-Options: nosniffReferrer-Policy: strict-origin-when-cross-originPermissions-Policy(restricts unused APIs)
- robots.txt (in
public/) allows indexing. AddSitemap:when available for better SEO.
Package scripts available:
{
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint",
"typecheck": "tsc -p tsconfig.json --noEmit"
}Run with pnpm <script> or npm run <script>
- Create a branch:
git checkout -b feat/feature-name- Make your changes and run:
npm run lint && npm run typecheck- Push your branch:
git push origin feat/feature-name- Open a Pull Request 🎉
MIT © kiritocode1
Improve your typing and coding skills with Blanky Type!