Repository files navigation

Rakkas TypeScript Starter

Quick start

# Start development server on localhost:3000
npm run dev
# Start a development server on port 4000 and make it externally accessible
npm run dev -- --host=0.0.0.0 --port=4000
# Build a production server
npm run build
# Start production server on 0.0.0.0:3000# and trust x-forwarded-* headers set by your reverse proxy
HOST=0.0.0.0 PORT=3000 TRUST_FORWARDED_ORIGIN=1 npm start

Important files and directories

PathDescription
rakkas.config.tsRakkas configuration
publicStatic files to be served from /
src/client.tsClient-side cusomization hooks
src/server.tsServer-side customization hooks
src/pagesPages and layouts (client-side routes)
src/apiEndpoints and middleware (server-side routes)
src/ambient.d.tsAmbient type declarations

All development scripts

Some of them might not be available depending on the features you selected when generating his project.

ScriptDescription
npm run devStart development server on localhost:3000
npm run buildBuild a production server
npm startStart the production server
npm run checkRun all checks (linters, typecheckers, tests)
npm testRun all tests
npm run test:unitRun unit tests
npm run test:e2eStart the server and run end-to-end tests (build first)
npm run test:e2e:apiRun end-to-end API tests (start the server first)
npm run test:e2e:browserRun end-to-end browser tests (start the server first)
npm run typecheckCheck the types
npm run lintRun all linters
npm run lint:tsLint TypeScript files
npm run lint:cssLint CSS files
npm run formatFormat source files with Prettier

About

CI for Rakkas.js

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Rakkas TypeScript Starter

Quick start

# Start development server on localhost:3000
npm run dev
# Start a development server on port 4000 and make it externally accessible
npm run dev -- --host=0.0.0.0 --port=4000
# Build a production server
npm run build
# Start production server on 0.0.0.0:3000# and trust x-forwarded-* headers set by your reverse proxy
HOST=0.0.0.0 PORT=3000 TRUST_FORWARDED_ORIGIN=1 npm start

Important files and directories

PathDescription
rakkas.config.tsRakkas configuration
publicStatic files to be served from /
src/client.tsClient-side cusomization hooks
src/server.tsServer-side customization hooks
src/pagesPages and layouts (client-side routes)
src/apiEndpoints and middleware (server-side routes)
src/ambient.d.tsAmbient type declarations

All development scripts

Some of them might not be available depending on the features you selected when generating his project.

ScriptDescription
npm run devStart development server on localhost:3000
npm run buildBuild a production server
npm startStart the production server
npm run checkRun all checks (linters, typecheckers, tests)
npm testRun all tests
npm run test:unitRun unit tests
npm run test:e2eStart the server and run end-to-end tests (build first)
npm run test:e2e:apiRun end-to-end API tests (start the server first)
npm run test:e2e:browserRun end-to-end browser tests (start the server first)
npm run typecheckCheck the types
npm run lintRun all linters
npm run lint:tsLint TypeScript files
npm run lint:cssLint CSS files
npm run formatFormat source files with Prettier

About

CI for Rakkas.js

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Rakkas TypeScript Starter

Quick start

# Start development server on localhost:3000
npm run dev
# Start a development server on port 4000 and make it externally accessible
npm run dev -- --host=0.0.0.0 --port=4000
# Build a production server
npm run build
# Start production server on 0.0.0.0:3000# and trust x-forwarded-* headers set by your reverse proxy
HOST=0.0.0.0 PORT=3000 TRUST_FORWARDED_ORIGIN=1 npm start

Important files and directories

PathDescription
rakkas.config.tsRakkas configuration
publicStatic files to be served from /
src/client.tsClient-side cusomization hooks
src/server.tsServer-side customization hooks
src/pagesPages and layouts (client-side routes)
src/apiEndpoints and middleware (server-side routes)
src/ambient.d.tsAmbient type declarations

All development scripts

Some of them might not be available depending on the features you selected when generating his project.

ScriptDescription
npm run devStart development server on localhost:3000
npm run buildBuild a production server
npm startStart the production server
npm run checkRun all checks (linters, typecheckers, tests)
npm testRun all tests
npm run test:unitRun unit tests
npm run test:e2eStart the server and run end-to-end tests (build first)
npm run test:e2e:apiRun end-to-end API tests (start the server first)
npm run test:e2e:browserRun end-to-end browser tests (start the server first)
npm run typecheckCheck the types
npm run lintRun all linters
npm run lint:tsLint TypeScript files
npm run lint:cssLint CSS files
npm run formatFormat source files with Prettier

About

CI for Rakkas.js

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Rakkas TypeScript Starter

Quick start

# Start development server on localhost:3000
npm run dev
# Start a development server on port 4000 and make it externally accessible
npm run dev -- --host=0.0.0.0 --port=4000
# Build a production server
npm run build
# Start production server on 0.0.0.0:3000# and trust x-forwarded-* headers set by your reverse proxy
HOST=0.0.0.0 PORT=3000 TRUST_FORWARDED_ORIGIN=1 npm start

Important files and directories

PathDescription
rakkas.config.tsRakkas configuration
publicStatic files to be served from /
src/client.tsClient-side cusomization hooks
src/server.tsServer-side customization hooks
src/pagesPages and layouts (client-side routes)
src/apiEndpoints and middleware (server-side routes)
src/ambient.d.tsAmbient type declarations

All development scripts

Some of them might not be available depending on the features you selected when generating his project.

ScriptDescription
npm run devStart development server on localhost:3000
npm run buildBuild a production server
npm startStart the production server
npm run checkRun all checks (linters, typecheckers, tests)
npm testRun all tests
npm run test:unitRun unit tests
npm run test:e2eStart the server and run end-to-end tests (build first)
npm run test:e2e:apiRun end-to-end API tests (start the server first)
npm run test:e2e:browserRun end-to-end browser tests (start the server first)
npm run typecheckCheck the types
npm run lintRun all linters
npm run lint:tsLint TypeScript files
npm run lint:cssLint CSS files
npm run formatFormat source files with Prettier

About

CI for Rakkas.js

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Rakkas TypeScript Starter

Quick start

# Start development server on localhost:3000
npm run dev
# Start a development server on port 4000 and make it externally accessible
npm run dev -- --host=0.0.0.0 --port=4000
# Build a production server
npm run build
# Start production server on 0.0.0.0:3000# and trust x-forwarded-* headers set by your reverse proxy
HOST=0.0.0.0 PORT=3000 TRUST_FORWARDED_ORIGIN=1 npm start

Important files and directories

PathDescription
rakkas.config.tsRakkas configuration
publicStatic files to be served from /
src/client.tsClient-side cusomization hooks
src/server.tsServer-side customization hooks
src/pagesPages and layouts (client-side routes)
src/apiEndpoints and middleware (server-side routes)
src/ambient.d.tsAmbient type declarations

All development scripts

Some of them might not be available depending on the features you selected when generating his project.

ScriptDescription
npm run devStart development server on localhost:3000
npm run buildBuild a production server
npm startStart the production server
npm run checkRun all checks (linters, typecheckers, tests)
npm testRun all tests
npm run test:unitRun unit tests
npm run test:e2eStart the server and run end-to-end tests (build first)
npm run test:e2e:apiRun end-to-end API tests (start the server first)
npm run test:e2e:browserRun end-to-end browser tests (start the server first)
npm run typecheckCheck the types
npm run lintRun all linters
npm run lint:tsLint TypeScript files
npm run lint:cssLint CSS files
npm run formatFormat source files with Prettier

About

CI for Rakkas.js

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Rakkas TypeScript Starter

Quick start

# Start development server on localhost:3000
npm run dev
# Start a development server on port 4000 and make it externally accessible
npm run dev -- --host=0.0.0.0 --port=4000
# Build a production server
npm run build
# Start production server on 0.0.0.0:3000# and trust x-forwarded-* headers set by your reverse proxy
HOST=0.0.0.0 PORT=3000 TRUST_FORWARDED_ORIGIN=1 npm start

Important files and directories

PathDescription
rakkas.config.tsRakkas configuration
publicStatic files to be served from /
src/client.tsClient-side cusomization hooks
src/server.tsServer-side customization hooks
src/pagesPages and layouts (client-side routes)
src/apiEndpoints and middleware (server-side routes)
src/ambient.d.tsAmbient type declarations

All development scripts

Some of them might not be available depending on the features you selected when generating his project.

ScriptDescription
npm run devStart development server on localhost:3000
npm run buildBuild a production server
npm startStart the production server
npm run checkRun all checks (linters, typecheckers, tests)
npm testRun all tests
npm run test:unitRun unit tests
npm run test:e2eStart the server and run end-to-end tests (build first)
npm run test:e2e:apiRun end-to-end API tests (start the server first)
npm run test:e2e:browserRun end-to-end browser tests (start the server first)
npm run typecheckCheck the types
npm run lintRun all linters
npm run lint:tsLint TypeScript files
npm run lint:cssLint CSS files
npm run formatFormat source files with Prettier

About

CI for Rakkas.js

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Rakkas TypeScript Starter

Quick start

# Start development server on localhost:3000
npm run dev
# Start a development server on port 4000 and make it externally accessible
npm run dev -- --host=0.0.0.0 --port=4000
# Build a production server
npm run build
# Start production server on 0.0.0.0:3000# and trust x-forwarded-* headers set by your reverse proxy
HOST=0.0.0.0 PORT=3000 TRUST_FORWARDED_ORIGIN=1 npm start

Important files and directories

PathDescription
rakkas.config.tsRakkas configuration
publicStatic files to be served from /
src/client.tsClient-side cusomization hooks
src/server.tsServer-side customization hooks
src/pagesPages and layouts (client-side routes)
src/apiEndpoints and middleware (server-side routes)
src/ambient.d.tsAmbient type declarations

All development scripts

Some of them might not be available depending on the features you selected when generating his project.

ScriptDescription
npm run devStart development server on localhost:3000
npm run buildBuild a production server
npm startStart the production server
npm run checkRun all checks (linters, typecheckers, tests)
npm testRun all tests
npm run test:unitRun unit tests
npm run test:e2eStart the server and run end-to-end tests (build first)
npm run test:e2e:apiRun end-to-end API tests (start the server first)
npm run test:e2e:browserRun end-to-end browser tests (start the server first)
npm run typecheckCheck the types
npm run lintRun all linters
npm run lint:tsLint TypeScript files
npm run lint:cssLint CSS files
npm run formatFormat source files with Prettier

About

CI for Rakkas.js

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Rakkas TypeScript Starter

Quick start

# Start development server on localhost:3000
npm run dev
# Start a development server on port 4000 and make it externally accessible
npm run dev -- --host=0.0.0.0 --port=4000
# Build a production server
npm run build
# Start production server on 0.0.0.0:3000# and trust x-forwarded-* headers set by your reverse proxy
HOST=0.0.0.0 PORT=3000 TRUST_FORWARDED_ORIGIN=1 npm start

Important files and directories

PathDescription
rakkas.config.tsRakkas configuration
publicStatic files to be served from /
src/client.tsClient-side cusomization hooks
src/server.tsServer-side customization hooks
src/pagesPages and layouts (client-side routes)
src/apiEndpoints and middleware (server-side routes)
src/ambient.d.tsAmbient type declarations

All development scripts

Some of them might not be available depending on the features you selected when generating his project.

ScriptDescription
npm run devStart development server on localhost:3000
npm run buildBuild a production server
npm startStart the production server
npm run checkRun all checks (linters, typecheckers, tests)
npm testRun all tests
npm run test:unitRun unit tests
npm run test:e2eStart the server and run end-to-end tests (build first)
npm run test:e2e:apiRun end-to-end API tests (start the server first)
npm run test:e2e:browserRun end-to-end browser tests (start the server first)
npm run typecheckCheck the types
npm run lintRun all linters
npm run lint:tsLint TypeScript files
npm run lint:cssLint CSS files
npm run formatFormat source files with Prettier

About

CI for Rakkas.js

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages