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 ci
Run the development server:
pnpm dev
# or
npm run dev
Build for production:
pnpm build
pnpm start
Open 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: SAMEORIGIN
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin
Permissions-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!