neuron-explorer
Steering-first neuron explorer for Qwen3.5-4B: push every MLP neuron, keep every rollout, browse the results
The site for NebulaKit, an independent Cloudflare-native platform for content management, authentication, AI chat, first-party analytics, and agent-ready publishing.
Developer toolsHTML · TypeScriptGitHub @starspacegroupOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The marketing site for NebulaKit — a cosmic-grade SvelteKit starter template powered by Cloudflare's full stack. Built on the template itself.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A cosmic-grade SvelteKit starter template powered by Cloudflare's full stack
NebulaKit is a production-ready SvelteKit template with everything you need to build modern web applications. It comes with Cloudflare Workers integration (D1, KV, R2, Queues, Turnstile), a complete theme system, command palette, LLM chat UI, full authentication, and drag-and-drop that works with a mouse, a finger or a keyboard—all built in from day one.
This repository is the site at nebulakit.starspace.group. It was derived from NebulaKit and is no longer a template — see AGENTS.md §5.Read the full README ↗A cosmic-grade SvelteKit starter template powered by Cloudflare's full stack
NebulaKit is a production-ready SvelteKit template with everything you need to build modern web applications. It comes with Cloudflare Workers integration (D1, KV, R2, Queues, Turnstile), a complete theme system, command palette, LLM chat UI, full authentication, and drag-and-drop that works with a mouse, a finger or a keyboard—all built in from day one.
This repository is the site at nebulakit.starspace.group. It was derived from NebulaKit and is no longer a template — see AGENTS.md §5.
.well-known discovery, Markdown content negotiation, and WebMCP tools — all working out of the boxClick the "Use this template" button above to create your own repository, or "Open in a codespace" to start coding instantly in the cloud.
Recommended: Bun (faster installs and scripts in this repo).
# Install dependencies
bun install
# Start development server
bun run dev
# Build for production
bun run build
# Deploy to Cloudflare Pages
bun run deploy
Prefer npm instead? Use the equivalent commands:
npm install
npm run dev
npm run build
npm run deploy
Visit http://localhost:4278 to see your app!
Share your local dev server with the outside world — no account needed for the free mode:
# Free public URL via trycloudflare.com (zero config, zero account)
bun run tunnel
# or: npm run tunnel
# Run dev server + tunnel together in one command
bun run dev:tunnel
The tunnel URL (e.g. https://random-words.trycloudflare.com) is printed to the console as soon as the tunnel is up.
Custom domain (e.g. myapp.yourdomain.com):
http://localhost:4278vite.config.ts → server.allowedHosts (e.g. '.yourdomain.com')TUNNEL_TOKEN=<your-token> bun run tunnel
Prerequisite:
cloudflaredmust be installed.
- macOS:
brew install cloudflared- Linux: https://pkg.cloudflare.com/index.html
- Windows: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/downloads/
What's pre-wired for tunnel use (in vite.config.ts):
allowedHosts includes trycloudflare.com — no Vite 403 rejections on free tunnelsVITE_HMR=true to re-enable for purely local devstaleDepsFix plugin strips stale ?v= hashes so Vite never returns 504s on first load through a tunneloptimizeDeps.include pre-bundles Svelte at startup so the first tunneled page load doesn't trigger a slow on-demand optimizationThe tunnel script lives at scripts/tunnel.js and respects a PORT env var if you change the dev port.
Svelte 5, SvelteKit 2.70, Vite 8, Vitest 4, @sveltejs/adapter-cloudflare 7 and
Node 24 or newer (the same stack as the NebulaKit template, so template code
copies across). The 220 components are still written in Svelte 4 syntax, which
Svelte 5 compiles in legacy mode; there is no need to rewrite them to runes.
Testing notes for the new stack:
createEventDispatcher event in a test with the mount events
option (render(C, { props, events: { change: fn } })), and update props
with rerender. component.$on and component.$set no longer exist.Set-Cookie from Response. Route-handler tests that read
it import tests/helpers/server-response.ts first.NebulaKit follows Test-Driven Development with 90%+ code coverage requirements:
# Run all tests
npm run test
# Run tests in watch mode
npm run test:watch
# Check coverage (must be ≥90%)
npm run test:coverage
# Run E2E tests
npm run test:e2e
# Run all tests (unit + E2E)
npm run test:all
Important: All features and bug fixes require tests written FIRST. See CONTRIBUTING.md for details.
/documentation route in sync with shipped featuresNebulaKit/
├── src/
│ ├── lib/
│ │ ├── components/ # Reusable UI components
│ │ ├── stores/ # Svelte stores (theme, etc.)
│ │ ├── server/ # Server-side utilities
│ │ └── utils/ # Helper functions
│ ├── routes/ # SvelteKit routes
│ │ ├── auth/ # Authentication pages
│ │ ├── chat/ # LLM chat interface
│ │ └── demo/ # Feature demonstrations
│ ├── app.css # Global styles & theme
│ └── app.html # HTML template
├── static/ # Static assets
└── wrangler.toml # Cloudflare configuration
NebulaKit includes a comprehensive theme system with:
/* All colors use CSS variables - never hardcode! */
.button {
background-color: var(--color-primary);
color: var(--color-background);
border-radius: var(--radius-md);
padding: var(--spacing-sm) var(--spacing-md);
}
Validate theme contrast:
npm run validate:contrast
See the Theme System Guide for complete documentation.
Every public page of the template and of this site scores 100 in all four
Lighthouse categories. The home page shows the table and links a full report per
page; the reports are served from static/lighthouse/.
Regenerate them with both apps built and served — this site on 8810 and the template on 8820:
bun run lighthouse
The script audits each page three times and publishes the median run, writes one
HTML report per page, and writes the score table to
src/lib/lighthouse-results.json, which the home page renders. It exits non-zero
if any page drops below 100, so the numbers on the page cannot be edited into
being true. Point it at production instead with
--site <origin> --template <origin>.
The auth routes are not audited. robots.txt disallows /auth/, and Lighthouse
scores a crawl block as an SEO failure — correct for a login form, so the
conflict is left alone rather than scored around.
Built-in auth pages with support for:
Easily extend with @auth/sveltekit for more providers.
The included chat interface is ready to connect to your LLM API:
// In /routes/chat/+page.svelte
async function sendMessage() {
const response = await fetch('/api/chat', {
method: 'POST',
body: JSON.stringify({ message: input })
});
// Handle response
}
const result = await platform.env.DB.prepare('SELECT * FROM users WHERE email = ?')
.bind(email)
.first();
await platform.env.KV.put('key', 'value');
const value = await platform.env.KV.get('key');
await platform.env.BUCKET.put('file.jpg', fileData);
const file = await platform.env.BUCKET.get('file.jpg');
await platform.env.QUEUE.send({ data: 'message' });
<WidgetBoard> gives you a columned board of draggable widgets:
<WidgetBoard bind:widgets {columns} on:change={(e) => save(e.detail.widgets)} />
reorder()), so orders can never collideThe two actions behind it, use:draggable and use:dropzone, work on any
markup, so a sortable list or a nav reorder needs no board at all.
Reference: docs/WIDGET_BOARD.md
NebulaKit is mobile-first with:
MIT License - feel free to use this template for any project!
We welcome contributions! Please read our Contributing Guide first.
Key requirements:
See .github/copilot-instructions.md for detailed development guidelines.
If you find NebulaKit useful, please consider giving it a star on GitHub!