Skip to content

Latest commit

 

History

History
337 lines (221 loc) · 15.6 KB

File metadata and controls

337 lines (221 loc) · 15.6 KB

Cairn — Tasks

Backlog of work that can be picked up by contributors. Tasks are mirrored on the GitHub project board under the Ready column.

All 100 tasks below are Ready to Start — anyone can pick one up. Comment on the corresponding GitHub issue (or open one) and assign yourself before starting.

Type labels: content · feature · infra · ui · docs · bug Difficulty labels: easy · medium · hard · advanced

The list is ordered roughly from simplest to most advanced — feel free to start anywhere that matches your skill level.


Easy — good first issues

  1. Fix Vercel references in docsdocs easy Replace any leftover Vercel mentions with Cloudflare Workers (e.g., task #12 below, README footnotes).

  2. Audit and refresh resource links across all pathscontent easy Verify every URL in frontend.json, backend.json, fullstack.json resolves and points to the canonical doc.

  3. Add tooltips on path cardsui easy Native title attribute or accessible tooltip showing path description on hover/focus.

  4. Add reading time estimate to topicsfeature easy Compute words / 200 wpm in [topicSlug]/page.tsx and render under the title.

  5. Breadcrumbs navigationui easy Home / Paths / Frontend / React Basics with proper aria-label="breadcrumb".

  6. Loading skeletons for path and topic pagesui easy loading.tsx files using Tailwind skeleton blocks.

  7. Custom 404 pageui easy not-found.tsx with branding, "go home" CTA, and a link back to /paths.

  8. Topic difficulty badge stylingui easy Color-coded pill for beginner / intermediate / advanced on topic cards.

  9. Print-friendly stylesheet for topic pagesui easy @media print rules: hide nav/footer, expand code blocks, black-on-white.

  10. Remove sample /api/test routebug easy Delete src/app/api/test/route.ts once a real API is in place.

  11. Lock Node engine in package.jsoninfra easy Add "engines": { "node": ">=20" } to match the Cloudflare Workers build runtime.

  12. Document the Topic content authoring formatdocs easy Style guide for writing topic content (headings, code blocks, resources).

Medium — solid contributions

  1. Add a DevOps learning pathcontent medium Create src/data/paths/devops.json (CI/CD, Docker, Kubernetes, IaC, monitoring) and wire it into src/data/index.ts.

  2. Add a TypeScript topic to the Frontend pathcontent medium New topic covering TS basics, types, generics, and TSX with curated resources.

  3. Expand Backend path with Auth & Authorization topicscontent medium Topics for sessions, JWT, OAuth2 basics; include code examples.

  4. Search across paths and topicsfeature ui medium Client-side search bar on /paths filtering by title, description, level.

  5. Filter topics by level (beginner / intermediate / advanced)feature ui medium Toggle chips on path detail page.

  6. Mark topic as completed (local progress)feature medium Persist per-topic completion in localStorage; show progress per path.

  7. Render topic content as proper Markdownfeature medium Replace ad-hoc rendering with a markdown renderer (e.g., react-markdown) + syntax highlighting (shiki or rehype-highlight).

  8. Prev / Next topic navigationfeature ui medium On [topicSlug]/page.tsx, link to the previous and next topic by order.

  9. Add a sitemap and robots.txtfeature infra medium Use Next.js metadata routes to generate sitemap.xml and robots.txt.

  10. SEO metadata per path and topicfeature medium Per-route generateMetadata with title, description, OpenGraph and Twitter cards.

  11. Dynamic og:image generationfeature medium Use next/og to render per-topic social preview images at the edge.

  12. RSS feed of newly added topicsfeature medium app/feed.xml/route.ts returning the latest topics across all paths.

  13. Bookmarks system (localStorage)feature medium Star icon on topic cards; /bookmarks page listing saved topics.

  14. Per-path table-of-contents sidebarui medium Sticky left rail on path detail page listing topics with active-state highlighting.

  15. Mobile-responsive Navbar with hamburger menuui medium Audit Navbar.tsx and Footer.tsx on small viewports.

  16. Add issue and PR templatesdocs medium .github/ISSUE_TEMPLATE/ for bug, feature, content; .github/pull_request_template.md.

  17. Add CONTRIBUTING.md and CODE_OF_CONDUCT.mddocs medium Move/expand contribution details out of the README; link from PR template.

  18. Add unit tests for data helpersinfra medium Vitest or Jest covering getPath, getTopic, JSON schema validation.

  19. GitHub Actions CIinfra medium Workflow that runs npm ci, npm run lint, npm run build on every PR to dev/main.

  20. Validate path/topic JSON at build timeinfra medium Zod schema check during next build to catch malformed data before deploy.

  21. Dark modeui medium Tailwind-based theme toggle persisted in localStorage; respect prefers-color-scheme.

  22. Code playground embed (CodeSandbox / StackBlitz)feature medium Optional embed field on a topic's Resource that renders an inline runnable example.

  23. Accessibility pass (a11y)ui medium Keyboard nav, focus states, color contrast (WCAG AA), semantic landmarks, alt text.

Hard — feature-sized work

  1. Migrate static JSON to MongoDB Atlasinfra hard Define Mongoose models for Path and Topic, seed from existing JSON, swap getPath/getTopic to read from the DB. Set MONGODB_URI in Cloudflare.

  2. Add API routes for paths and topicsinfra feature hard GET /api/paths, GET /api/paths/[slug], GET /api/paths/[slug]/topics/[topicSlug] backed by MongoDB.

  3. Landing page redesignui hard Stronger hero, "How it works" section, featured paths, animated path graph, CTA to /contribute.

  4. User accounts via NextAuthfeature infra hard GitHub OAuth, session storage in MongoDB or Cloudflare KV, protected routes for profile.

  5. Cloud-synced progressfeature hard Once accounts ship, sync per-topic completion to the user's record so progress persists across devices.

  6. Quizzes / assessments per topicfeature hard Multiple-choice and short-answer questions stored alongside topic content; results saved to user profile.

  7. Internationalization (i18n)feature hard next-intl setup, /[locale]/ segment, translated UI strings, per-locale topic content overrides.

  8. Comment / discussion thread per topicfeature hard Authenticated comments with markdown support, moderation flags, and rate limiting.

  9. Gamification: XP, badges, streaks, leaderboardfeature hard Award XP for topic completion + quiz scores; weekly leaderboard backed by MongoDB.

  10. End-to-end tests with Playwright + visual regressioninfra hard Headless smoke tests for the critical flows; snapshot diffing in CI.

  11. Self-hostable Docker image + deployment guideinfra hard Multi-stage Dockerfile, docker-compose.yml with MongoDB, docs covering env vars and reverse-proxy setup.

Advanced — research / multi-week initiatives

  1. AI tutor powered by the Claude APIfeature advanced "Ask the tutor" panel on each topic; streams answers grounded in topic + resource content via prompt caching. Requires anonymous rate limiting and a server-side proxy.

  2. Personalized roadmap recommendationsfeature advanced Based on completion history, quiz scores, and self-reported goals, suggest the next topic / detect gaps. Hybrid rule-based + LLM scoring.

  3. Real-time collaborative learning roomsfeature advanced Cloudflare Durable Objects-backed rooms where peers walk through a topic together: shared cursor, chat, synced quiz answers.

  4. Plugin / module system for community-built content packsinfra advanced Define a pack manifest format, server-side validation, sandboxed runtime for custom React components in topics, marketplace listing page.

Easy — round 2

  1. Add LICENSE filedocs easy MIT (or chosen license) at the repo root with the correct year and owner.

  2. Add CHANGELOG.mddocs easy Use Keep-a-Changelog format; backfill entries for the recent restructure and Cloudflare migration.

  3. README badgesdocs easy Build status, license, contributors, last commit, and "Cloudflare Workers" badges at the top of the README.

  4. Add Prettier configinfra easy .prettierrc plus npm run format; document in CONTRIBUTING.

  5. Add .editorconfiginfra easy Consistent indentation / line-ending rules across editors.

  6. Custom SVG icon per pathui easy Replace emoji/text icons with crisp inline SVGs in PathCard.tsx.

  7. Multiple favicon sizesui easy 16/32/180/512 px + manifest.webmanifest for PWA-grade icons.

  8. cspell spell-check configinfra easy Word list + GitHub Actions step that flags typos in JSON content.

  9. Link checker in CI (lychee)infra easy Run on every PR; fail if any resource URL 404s.

  10. Footer: social links and version tagui easy GitHub / X / Discord icons + vX.Y.Z (read from package.json) on the right.

  11. Add humans.txtdocs easy Credit contributors at /humans.txt.

  12. Path card hover micro-interactionui easy Subtle lift + shadow on hover; respect prefers-reduced-motion.

Medium — round 2

  1. Add a Mobile Development pathcontent medium React Native, Flutter, native iOS/Android intro topics.

  2. Add a Cybersecurity pathcontent medium OWASP Top 10, secure auth, threat modeling, basic pentesting.

  3. Add a Cloud Computing pathcontent medium AWS, GCP, Azure fundamentals; serverless vs. containers.

  4. Add a Databases pathcontent medium Relational, NoSQL, indexing, transactions, modeling.

  5. Add an AI/ML pathcontent medium Python basics, supervised vs. unsupervised, LLM application development.

  6. Add a Game Development pathcontent medium Unity, Godot, web game basics with Canvas / WebGL.

  7. Path duration estimatefeature medium Sum reading times across topics; show "~6h to complete" on path cards.

  8. Topic progress bar in Navbarfeature ui medium Reading-progress bar that tracks scroll on topic pages.

  9. Keyboard shortcuts (j/k//)feature medium Vim-style navigation across topics + / to focus search.

  10. Toast notification systemui medium Reusable toast for completion saves, copy-to-clipboard, errors.

  11. Newsletter signup (Resend)feature medium Email capture in footer; double opt-in via Resend audiences.

  12. Export progress as CSV/JSONfeature medium Download button on /profile (or local progress page) with all completed topics.

  13. Embed YouTube/Vimeo in resourcesfeature medium Render type: "video" resources with privacy-mode embeds.

  14. Glossary pagefeature content medium /glossary listing terms across all topics with anchor links back.

  15. FAQ pagecontent medium Common contributor / learner questions with collapsible answers.

  16. "Recently updated" feed on landingfeature medium Last 5 changed topics surfaced from the JSON / DB.

  17. Sticky "edit on GitHub" link per topicfeature medium Direct contributors to the source JSON file for the current topic.

  18. Path completion certificate (PDF)feature medium Generate a PDF certificate when all topics in a path are completed.

  19. Per-topic difficulty estimate from content lengthfeature medium Heuristic to flag mismatched levels (e.g., 50-line "beginner" topics).

  20. Algolia-free instant search via Pagefindfeature medium Static search index built at build time.

Hard — round 2

  1. Migrate progress / accounts to Cloudflare D1infra hard SQLite-backed D1 instead of Mongo for low-latency edge reads. Provide a migration script.

  2. Notion-style WYSIWYG editor for contributorsfeature hard Admin-only editor at /admin/topics/[id] writing back to JSON via PR.

  3. Topic versioning + edit historyfeature hard Track changes per topic with diff view and rollback (Git-backed or DB-backed).

  4. Discord bot announcing new topicsinfra hard Webhook on merge to main that posts to a configured Discord channel.

  5. Email notifications via Resendfeature infra hard Comment replies, new topic in followed path, weekly digest.

  6. Admin moderation dashboardfeature hard Flag / hide comments, ban users, review reported content.

  7. Full-text search via MeiliSearchinfra feature hard Self-hosted index with typo tolerance, faceting by path/level.

  8. GraphQL API alongside RESTinfra hard Apollo Server (or GraphQL Yoga) on a Worker route; schema generated from data types.

  9. Edge caching + on-demand revalidationinfra hard revalidateTag for paths/topics; purge from Cloudflare cache on content updates.

  10. Two-factor authentication (TOTP)feature hard Optional 2FA on user accounts using a standard authenticator app.

  11. Audit log for content changesinfra hard Append-only log of who edited what topic, surfaced in the admin dashboard.

  12. Mentor / mentee matchingfeature hard Opt-in profiles; matching on path + level + timezone, with intro messages.

  13. Live cohorts (scheduled group sessions)feature hard Calendar of group walk-throughs of a path; RSVP, reminders, post-session notes.

  14. Performance budget + Lighthouse CIinfra hard Fail PRs that regress LCP / TBT / bundle size beyond defined thresholds.

  15. Cloudflare Stream-hosted video lessonsfeature hard Optional video field per topic; transcoding + signed playback URLs.

Advanced — round 2

  1. Vector search across topics with embeddingsfeature advanced Build embeddings on content, store in Cloudflare Vectorize, expose semantic-search endpoint and "related topics" widget.

  2. Adaptive spaced-repetition enginefeature advanced SM-2 / FSRS algorithm against quiz items; daily review queue tailored per user.

  3. React Native companion appfeature advanced Expo app reusing the public API; offline reading, push notifications for new topics, biometrics for sign-in.


Picking up a task

  1. Find a task labeled ready to start on the project board.
  2. Comment "I'd like to take this" on the linked GitHub issue (open one if it doesn't exist yet).
  3. Fork → branch off dev → open a PR back into dev referencing the issue (Closes #N).
  4. CI must pass: npm run lint and npm run build. The Cloudflare preview workflow will post a live URL on your PR.