|
1 | | -# π Explorar.dev |
| 1 | +# Explorar.dev |
2 | 2 |
|
3 | | -A standalone [Next.js 16](https://nextjs.org/) application for exploring and learning from arbitrary software source code with an interactive, VS Code-like interface. Perfect for studying the Linux kernel, Python CPython, glibc, LLVM, and any GitHub repository. |
| 3 | +Explore codebases with an interactive, VS Code-like interface. |
4 | 4 |
|
5 | | -π **Live Site**: [explorar.dev](https://explorar.dev) |
6 | | -π **GitHub**: [pkill37/explorar.dev](https://github.com/pkill37/explorar.dev) |
| 5 | +Open-source curated repos (Linux, LLVM, glibc, XNU, etc) are pre-built for instant and offline access. |
7 | 6 |
|
8 | | -## π― Live Examples |
| 7 | +**[explorar.dev](https://explorar.dev)** Β· [GitHub](https://github.com/pkill37/explorar.dev) Β· [Discord](https://discord.gg/fuXYz44tSs) |
9 | 8 |
|
10 | | -Explore these popular repositories instantly: |
11 | | - |
12 | | -| Repository | Description | Live Demo | |
13 | | -| ------------------- | --------------------------------- | ------------------------------------------------------------------------ | |
14 | | -| **π§ Linux Kernel** | Core operating system kernel | [explorar.dev/torvalds/linux](https://explorar.dev/torvalds/linux) | |
15 | | -| **π CPython** | Python interpreter implementation | [explorar.dev/python/cpython](https://explorar.dev/python/cpython) | |
16 | | -| **π§ LLVM** | Compiler infrastructure project | [explorar.dev/llvm/llvm-project](https://explorar.dev/llvm/llvm-project) | |
17 | | -| **π glibc** | GNU C Library implementation | [explorar.dev/bminor/glibc](https://explorar.dev/bminor/glibc) | |
18 | | - |
19 | | -> π‘ **Tip**: Curated repositories are pre-downloaded at build time β exploration is instant with no API calls needed! |
20 | | -
|
21 | | -## β¨ Features |
22 | | - |
23 | | -- π **Interactive File Browser**: Navigate any software source tree with VS Code-like interface |
24 | | -- π» **Monaco Code Editor**: Full-featured editor with syntax highlighting for 100+ languages |
25 | | -- π **Guided Learning**: Chapter-based learning paths for curated repositories |
26 | | -- ποΈ **Data Structures View**: Browse and explore kernel data structures and APIs |
27 | | -- β‘ **Static & Fast**: Curated repos are pre-built; no server needed |
28 | | -- πΎ **Local Storage**: IndexedDB-based persistent storage with offline access |
29 | | -- π― **Zero Setup**: No installation required β works entirely in your browser |
30 | | - |
31 | | -## π Getting Started |
32 | | - |
33 | | -### π Using the Live Site |
34 | | - |
35 | | -Simply visit [explorar.dev](https://explorar.dev) and click any of the pre-configured repositories (Linux, Python, LLVM, glibc). |
36 | | - |
37 | | -### π οΈ Local Development |
| 9 | +## Development |
38 | 10 |
|
39 | 11 | ```bash |
40 | 12 | npm install |
41 | | -npm run dev |
42 | | -``` |
43 | | - |
44 | | -Opens at http://localhost:3000. The `predev` script automatically downloads the CPython repository for local testing. |
45 | | - |
46 | | -**See [DEVELOPMENT.md](./DEVELOPMENT.md) for complete development instructions.** |
47 | | - |
48 | | -## π Project Structure |
49 | | - |
50 | | -``` |
51 | | -explorar.dev/ |
52 | | -βββ src/ # Frontend (Next.js) |
53 | | -β βββ app/ |
54 | | -β β βββ [owner]/[repo]/ # Dynamic repository routes |
55 | | -β β βββ layout.tsx # Root layout with metadata |
56 | | -β β βββ page.tsx # Home page |
57 | | -β βββ components/ |
58 | | -β β βββ KernelExplorer.tsx # Main repository explorer |
59 | | -β β βββ FileTree.tsx # File tree navigation |
60 | | -β β βββ CodeEditorContainer.tsx # Editor with tabs |
61 | | -β β βββ MonacoCodeEditor.tsx # Monaco editor wrapper |
62 | | -β β βββ GuidePanel.tsx # Learning guides |
63 | | -β β βββ ... # Other UI components |
64 | | -β βββ contexts/ |
65 | | -β β βββ RepositoryContext.tsx # Repository state management |
66 | | -β βββ lib/ |
67 | | -β β βββ repo-storage.ts # IndexedDB storage |
68 | | -β β βββ github-archive.ts # Repository downloading |
69 | | -β β βββ github-api.ts # GitHub API integration |
70 | | -β β βββ repo-static.ts # Static file serving |
71 | | -β β βββ ... # Other utilities |
72 | | -β βββ types/ |
73 | | -β βββ index.ts # TypeScript type definitions |
74 | | -βββ docs/ # Markdown guides for curated repos |
75 | | -βββ public/ |
76 | | -β βββ repos/ # Pre-downloaded curated repos (build artifact) |
77 | | -βββ scripts/ |
78 | | - βββ download-repos.ts # Build-time repo downloader |
| 13 | +npm run dev # starts at localhost:3000, downloads CPython automatically |
| 14 | +npm run build # static export to out/ |
| 15 | +npm run lint # tsc + eslint + prettier + depcheck |
| 16 | +npm test # Playwright tests (requires built output) |
79 | 17 | ``` |
80 | 18 |
|
81 | | -## π οΈ Technologies |
82 | | - |
83 | | -- **[Next.js 16](https://nextjs.org/)**: React framework with App Router (static export) |
84 | | -- **[React 19](https://react.dev/)**: Latest React with concurrent features |
85 | | -- **[Monaco Editor](https://microsoft.github.io/monaco-editor/)**: VS Code editor component |
86 | | -- **[TypeScript](https://www.typescriptlang.org/)**: Full type safety |
87 | | -- **[IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API)**: Browser database for persistent storage |
88 | | -- **[JSZip](https://stuk.github.io/jszip/)**: Client-side zip file handling |
89 | | - |
90 | | -## πΎ Storage & Download System |
91 | | - |
92 | | -### Curated Repositories (Static) |
93 | | - |
94 | | -Pre-downloaded at build time via `scripts/download-repos.ts`. Files are served from `/public/repos/` β no API calls required, full offline support. |
95 | | - |
96 | | -### Arbitrary Repositories (Dynamic) |
97 | | - |
98 | | -User-entered GitHub repositories are downloaded on-demand into IndexedDB. Files are lazy-loaded when opened. Requires GitHub API access (60 req/hr unauthenticated). |
99 | | - |
100 | | -## π Documentation |
101 | | - |
102 | | -- **[DEVELOPMENT.md](./DEVELOPMENT.md)** - Complete development guide |
103 | | -- **[CLAUDE.md](./CLAUDE.md)** - Architecture and codebase guide for Claude Code |
104 | | - |
105 | | -## π€ Contributing |
106 | | - |
107 | | -Contributions and feedback are welcome! |
108 | | - |
109 | | -## π License |
110 | | - |
111 | | -Private project. |
112 | | - |
113 | | -## π Links |
114 | | - |
115 | | -- π **Website**: [explorar.dev](https://explorar.dev) |
116 | | -- π **GitHub**: [github.com/pkill37/explorar.dev](https://github.com/pkill37/explorar.dev) |
117 | | -- π¬ **Discord**: [discord.gg/fuXYz44tSs](https://discord.gg/fuXYz44tSs) |
118 | | -- π± **Telegram**: [t.me/explorardev](https://t.me/explorardev) |
119 | | -- π§ **BrainSpeed.ai**: [AI-powered development tools](https://brainspeed.ai) |
120 | | -- π **Reverser.dev**: [Reverse engineering platform](https://reverser.dev) |
| 19 | +See [CLAUDE.md](./CLAUDE.md) for architecture details. |
0 commit comments