summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitmodules3
-rw-r--r--content/about.md21
-rw-r--r--content/posts/_index.md3
-rw-r--r--content/posts/drum-sequencer.md46
-rw-r--r--content/posts/hello.md14
-rw-r--r--content/posts/not-all-hackathons-are-built-the-same.md12
-rw-r--r--content/projects.md10
-rw-r--r--public/404.html265
-rw-r--r--public/Raja_Ravi_Varma,_Sakunthala_Pathralekhan.jpgbin0 -> 4766069 bytes
-rw-r--r--public/Science_Gothic/ScienceGothic-VariableFont_CTRS,slnt,wdth,wght.ttfbin0 -> 2695236 bytes
-rw-r--r--public/about/index.html286
-rw-r--r--public/atom.xml101
-rw-r--r--public/authors/index.html265
-rw-r--r--public/authors/venkata-rao-dechiraju/atom.xml30
-rw-r--r--public/authors/venkata-rao-dechiraju/index.html265
-rw-r--r--public/authors/venkata-rao-dechiraju/rss.xml21
-rw-r--r--public/bg2.pngbin0 -> 27184 bytes
-rw-r--r--public/bg3.jpgbin0 -> 980689 bytes
-rw-r--r--public/categories/index.html265
-rw-r--r--public/categories/quality-of-life/atom.xml30
-rw-r--r--public/categories/quality-of-life/index.html265
-rw-r--r--public/categories/quality-of-life/rss.xml21
-rw-r--r--public/dq_sketch.pngbin0 -> 69206 bytes
-rw-r--r--public/index.html23
-rw-r--r--public/posts/drum-sequencer/index.html348
-rw-r--r--public/posts/hello/index.html283
-rw-r--r--public/posts/index.html265
-rw-r--r--public/robots.txt4
-rw-r--r--public/rss.xml70
-rw-r--r--public/screenshot.pngbin0 -> 3366582 bytes
-rw-r--r--public/sitemap.xml36
-rw-r--r--public/style.css1
-rw-r--r--static/Raja_Ravi_Varma,_Sakunthala_Pathralekhan.jpgbin0 -> 4766069 bytes
-rw-r--r--static/dq_sketch.pngbin0 -> 69206 bytes
m---------themes/prism0
-rw-r--r--zola.toml99
36 files changed, 3052 insertions, 0 deletions
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..dd59342
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "themes/prism"]
+ path = themes/prism
+ url = https://github.com/j4hongir/zola-prism
diff --git a/content/about.md b/content/about.md
new file mode 100644
index 0000000..d59ec0b
--- /dev/null
+++ b/content/about.md
@@ -0,0 +1,21 @@
++++
+title = "About verade"
+date = 2026-05-24
+[extra]
+toc = true # Override global show_toc setting
+no_header = false # Hide page header
+no_comments = true # Disable comments on this page
++++
+
+I am Venkata Rao Dechiraju, A Low-Level Perfomance Developer based off 🇮🇳, I heavily fw Compilers, Motorsports and Low Level Programming.
+
+You can find all the weird stuff i do on [my github](https://github.com/veradec/) (Even though I am trying to move to something like codeberg)
+
+I hope you find yourself intriguied after reading through my posts -- that's the intention of the whole website.
+
+
+(Just because I use em-dashes doesn't mean it wasn't written by LLMs, I find the concept of em-dashes rather convenient, and I find myself at positions against LLMs for menial tasks such as writing blog posts, so cheers!)
+
+Contact:
+
+Mail -> venkatraodechiraju@gmail.com
diff --git a/content/posts/_index.md b/content/posts/_index.md
new file mode 100644
index 0000000..c22710f
--- /dev/null
+++ b/content/posts/_index.md
@@ -0,0 +1,3 @@
++++
+title = "Posts"
++++
diff --git a/content/posts/drum-sequencer.md b/content/posts/drum-sequencer.md
new file mode 100644
index 0000000..f63c5a4
--- /dev/null
+++ b/content/posts/drum-sequencer.md
@@ -0,0 +1,46 @@
++++
+title = "Making a Drum Sequencer"
+date = 2026-05-27
+[extra]
+categories = ["crazy shit i do"]
+tags=["electronics", "techno", "music","drum sequencer"]
+toc = true # Override global show _toc
+no_header = false # Hide page header
+no_comments = true # Disable comments on this page
++++
+
+I always looked at Teenage Engineering and thought it was pretty cool and given I have a sem break right now, I thought I can make one too. shouldn't be hard right?
+and after i started composing music, Techno was a genre I always wanted to try but i couldn't, and then an idea popped up, maybe I can create a suite of instruments
+
+> a Synth
+
+> a Drum Sequencer
+
+> a Vocoder
+
+and start making techno on them? Sounds nice innit?
+<br>
+
+# The Design
+I wanted the design to look a little retro 80's esque, and I wanted it to be little simpler (because I will have suite of appliances to generate different sounds, so would rather have one that is simple and does it job well)
+and I drew a few sketches and ended with something that looks very nice
+<div style="display: flex; justify-content: center;">
+ <img src="/dq_sketch.png" alt="Drum Sequencer Rough Sketch" style="transform: rotate(-90deg); width: 50%;" />
+</div>
+
+# The Prototyping
+with the _beautifully_ crafted picture in hand, now the plan is to prototype
+
+
+I needed around 16 Buttons -- which I am going to pull of some keyboards i archived (They paid off innit?).
+
+I might need to get some more potentiometers and find a way to make a matrix the LEDs and Buttons, Once That is done, Getting the whole thing shouldn't be that tough (atleast I hope it isn't)
+
+
+<!-- -- 28 May 02:00 AM -->
+
+<!-- I am about to order stuff from flyrobo and i found this website called [ifuturetech](https://ifuturetech.org) which i am really unsure is legitimate, but yes. I might order from it, the total cost excluding the MicroProcessor and the Speaker (which i might borrow from a friend for prototyping) come around to 616. -->
+
+<!-- Including the speaker and the MCU let's call it a even 900? and then the chassis -- with a good cnc machine and alumium -- would roll everything up to a nice 1500 - 1700? That still is cheaper than Teenage Engineering or any SOTA, selling it for around 2400-2500 should make up some good profit. this is getting exciting. -->
+
+<!-- I look forward to any outliers that would increase the cost by 10x -- i don't see a reason something like this would but yes. -->
diff --git a/content/posts/hello.md b/content/posts/hello.md
new file mode 100644
index 0000000..1a8824a
--- /dev/null
+++ b/content/posts/hello.md
@@ -0,0 +1,14 @@
++++
+title = "Hello, World"
+date = 2026-05-24
+[taxonomies]
+tags = []
+authors = ["Venkata Rao Dechiraju"]
+categories = ["quality of life"]
+[extra]
+toc = true # Override global show_toc setting
+no_header = false # Hide page header
+no_comments = false # Disable comments on this page
++++
+
+a (hopefully) final revamp of the website, given it's not very ugly to look at now, maybe i'll start writing more here? i ain't sure about that and yes, i'll be copying all the content from the previous website here, so i'll not lose what was
diff --git a/content/posts/not-all-hackathons-are-built-the-same.md b/content/posts/not-all-hackathons-are-built-the-same.md
new file mode 100644
index 0000000..6e291a1
--- /dev/null
+++ b/content/posts/not-all-hackathons-are-built-the-same.md
@@ -0,0 +1,12 @@
++++
+title = "Not all Hackathons are built the same"
+date = 2026-08-17
+[extra]
+categories = ["rant"]
+tags=["hackathon", "tech", "innovation"]
+toc = true # Override global show _toc
+no_header = false # Hide page header
+no_comments = true # Disable comments on this page
++++
+
+
diff --git a/content/projects.md b/content/projects.md
new file mode 100644
index 0000000..6b4e33f
--- /dev/null
+++ b/content/projects.md
@@ -0,0 +1,10 @@
++++
+title = "Projects I do"
+date = 2026-07-30
+[extra]
+toc = true # Override global show_toc setting
+no_header = false # Hide page header
+no_comments = true # Disable comments on this page
++++
+
+These are the projects i've got :3
diff --git a/public/404.html b/public/404.html
new file mode 100644
index 0000000..b3f0039
--- /dev/null
+++ b/public/404.html
@@ -0,0 +1,265 @@
+<!doctype html><html lang=en><head><meta charset=utf-8><meta content="width=device-width,initial-scale=1.0" name=viewport><title>
+404 - not found
+</title><meta content="made by a actual human" name=description><link href=https:&amp;#x2F;&amp;#x2F;veradec.xyz&amp;#x2F; rel=canonical><link href=https://veradec.xyz/favicon/favicon.ico rel=icon type=image/x-icon><link href=https://veradec.xyz/favicon/favicon-16x16.png rel=icon sizes=16x16 type=image/png><link href=https://veradec.xyz/favicon/favicon-32x32.png rel=icon sizes=32x32 type=image/png><link href=https://veradec.xyz/favicon/apple-touch-icon.png rel=apple-touch-icon sizes=180x180><link href=https://veradec.xyz/favicon/site.webmanifest rel=manifest><link as=style href=https://veradec.xyz/style.css rel=preload><link href=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css rel=stylesheet><script defer src=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js></script><script onload="renderMathInElement(document.body, {
+ delimiters: [
+ {left: '$$', right: '$$', display: true},
+ {left: '$', right: '$', display: false}
+ ]
+ });" defer src=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/contrib/auto-render.min.js></script><meta content="blog, tech, programming" name=keywords><meta content="Venkata Rao Dechiraju" name=author><meta content="index, follow" name=robots><meta content=#1e3a8a name=theme-color><meta content=website property=og:type><meta content=https:&amp;#x2F;&amp;#x2F;veradec.xyz&amp;#x2F; property=og:url><meta content="Venkata Rao Dechiraju" property=og:title><meta content="made by a actual human" property=og:description><meta content="Venkata Rao Dechiraju" property=og:site_name><meta content=https://veradec.xyz/static/banner.png property=og:image><meta content=summary_large_image name=twitter:card><meta content="Venkata Rao Dechiraju" name=twitter:title><meta content="made by a actual human" name=twitter:description><meta content=https://veradec.xyz/static/banner.png name=twitter:image><script type=application/ld+json>
+ {
+ "@context": "https://schema.org",
+ "@type": "WebSite",
+ "name": "Venkata Rao Dechiraju",
+ "url": "https:&#x2F;&#x2F;veradec.xyz&#x2F;",
+ "description": "made by a actual human"
+
+ ,"author": {
+ "@type": "Person",
+ "name": "Venkata Rao Dechiraju"
+
+ ,"url": "https:&#x2F;&#x2F;verade.xyz"
+
+ }
+
+ }
+ </script><link title="atom feed for Venkata Rao Dechiraju" href=https://veradec.xyz/atom.xml rel=alternate type=application/atom+xml><link title="rss feed for Venkata Rao Dechiraju" href=https://veradec.xyz/rss.xml rel=alternate type=application/rss+xml><link href=https://veradec.xyz/style.css rel=stylesheet><body><div class=background-container><img alt class=background-image src=Raja_Ravi_Varma,_Sakunthala_Pathralekhan.jpg></div><div aria-label="Reading progress" class=reading-progress id=reading-progress role=progressbar></div><a class=skip-to-content href=#content>skip to content</a><div class=wrap><header><a href=https://veradec.xyz/ id=home-link> <span aria-hidden=true id=back-icon> <svg viewbox="0 0 24 24" fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2><polyline points="15 18 9 12 15 6"></polyline></svg> </span> <span id=back-text>back</span> </a></header><p>oops, looks like this content is not available. <br> <a href=https://veradec.xyz/>back</a><div class=bottom-menu><p><a href=/posts>posts</a> <a href=/about>about</a> <a href=https://github.com/veradec>github</a> <a href=/authors>authors</a> <a href=/tags>tags</a> <a href=/categories>categories</a></div><button aria-label="Scroll to top" id=scroll-to-top><svg viewbox="0 0 24 24" aria-hidden=true fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2><polyline points="18 15 12 9 6 15"></polyline></svg></button><footer><div class=sam-footer>Built using Zola & Prism theme</div></footer></div><script>'use strict';
+
+(function() {
+ const SVG_ICONS = {
+ copy: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>',
+ check: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><polyline points="20 6 9 17 4 12"></polyline></svg>',
+ error: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>'
+ };
+
+ function debounce(func, wait) {
+ let timeout;
+ return function executedFunction(...args) {
+ clearTimeout(timeout);
+ timeout = setTimeout(() => func(...args), wait);
+ };
+ }
+
+ function initNavigation() {
+ try {
+ const homeLink = document.getElementById('home-link');
+ const backIcon = document.getElementById('back-icon');
+ const backText = document.getElementById('back-text');
+
+ if (!homeLink) return;
+
+ const homeText = 'back';
+ const isHomePage = window.location.pathname === '/' || window.location.pathname === '/index.html';
+
+ if (backIcon && isHomePage) {
+ backIcon.style.display = 'none';
+ }
+
+ if (backText) {
+ backText.textContent = homeText;
+ }
+
+ homeLink.setAttribute('aria-label', `Go to ${homeText.toLowerCase()} page`);
+ } catch (error) {
+ console.error('Navigation init failed:', error);
+ }
+ }
+
+ function initScrollToTop() {
+ try {
+ const scrollToTopBtn = document.getElementById('scroll-to-top');
+ if (!scrollToTopBtn) return;
+
+ const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
+
+ const toggleVisibility = debounce(() => {
+ if (window.scrollY > 300) {
+ scrollToTopBtn.classList.add('visible');
+ } else {
+ scrollToTopBtn.classList.remove('visible');
+ }
+ }, 100);
+
+ window.addEventListener('scroll', toggleVisibility, { passive: true });
+ toggleVisibility();
+
+ scrollToTopBtn.addEventListener('click', () => {
+ window.scrollTo({
+ top: 0,
+ behavior: prefersReducedMotion ? 'auto' : 'smooth'
+ });
+ });
+ } catch (error) {
+ console.error('Scroll to top init failed:', error);
+ }
+ }
+
+
+ function initCopyCodeButtons() {
+ try {
+ const codeBlocks = document.querySelectorAll('pre code');
+
+ codeBlocks.forEach((codeBlock) => {
+ const pre = codeBlock.parentElement;
+
+ const wrapper = document.createElement('div');
+ wrapper.className = 'code-block-wrapper';
+ pre.parentNode.insertBefore(wrapper, pre);
+ wrapper.appendChild(pre);
+
+ const copyButton = document.createElement('button');
+ copyButton.className = 'copy-code-button';
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ copyButton.setAttribute('title', 'Copy code');
+
+ wrapper.appendChild(copyButton);
+
+ copyButton.addEventListener('click', async () => {
+ const code = codeBlock.textContent;
+
+ try {
+ if (navigator.clipboard && window.isSecureContext) {
+ await navigator.clipboard.writeText(code);
+ } else {
+ const textArea = document.createElement('textarea');
+ textArea.value = code;
+ textArea.style.position = 'fixed';
+ textArea.style.left = '-999999px';
+ document.body.appendChild(textArea);
+ textArea.select();
+ document.execCommand('copy');
+ document.body.removeChild(textArea);
+ }
+
+ copyButton.innerHTML = SVG_ICONS.check;
+ copyButton.classList.add('copied');
+ copyButton.setAttribute('aria-label', 'Code copied');
+
+ setTimeout(() => {
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.classList.remove('copied');
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ }, 2000);
+ } catch (err) {
+ console.error('Failed to copy code:', err);
+
+ copyButton.innerHTML = SVG_ICONS.error;
+ copyButton.classList.add('error');
+ copyButton.setAttribute('aria-label', 'Copy failed');
+
+ setTimeout(() => {
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.classList.remove('error');
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ }, 2000);
+ }
+ });
+ });
+ } catch (error) {
+ console.error('Copy code buttons init failed:', error);
+ }
+ }
+
+
+
+ function initSmoothScroll() {
+ try {
+ const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
+ if (prefersReducedMotion) return;
+
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
+ anchor.addEventListener('click', function (e) {
+ const href = this.getAttribute('href');
+ if (href === '#' || href.length <= 1) return;
+
+ e.preventDefault();
+ const target = document.querySelector(href);
+
+ if (target) {
+ const offset = 80;
+ const targetPosition = target.getBoundingClientRect().top + window.pageYOffset - offset;
+
+ window.scrollTo({
+ top: targetPosition,
+ behavior: 'smooth'
+ });
+
+ if (window.history.pushState) {
+ window.history.pushState(null, null, href);
+ }
+
+ if (!target.hasAttribute('tabindex')) {
+ target.setAttribute('tabindex', '-1');
+ }
+ target.focus({ preventScroll: true });
+ }
+ });
+ });
+ } catch (error) {
+ console.error('Smooth scroll init failed:', error);
+ }
+ }
+
+
+
+ function initReadingProgress() {
+ try {
+ const progressBar = document.getElementById('reading-progress');
+ if (!progressBar) return;
+
+ const updateProgressBar = debounce(() => {
+ const winScroll = document.body.scrollTop || document.documentElement.scrollTop;
+ const height = document.documentElement.scrollHeight - document.documentElement.clientHeight;
+ const scrolled = height > 0 ? (winScroll / height) * 100 : 0;
+ progressBar.style.width = scrolled + '%';
+ }, 16);
+
+ window.addEventListener('scroll', updateProgressBar, { passive: true });
+ updateProgressBar();
+ } catch (error) {
+ console.error('Reading progress init failed:', error);
+ }
+ }
+
+
+ function initPageLoadingState() {
+ try {
+ document.addEventListener('click', (e) => {
+ const link = e.target.closest('a[href^="/"], a[href^="https:&#x2F;&#x2F;veradec.xyz&#x2F;"]');
+ if (link && !link.target && !link.getAttribute('download')) {
+ document.body.classList.add('page-loading');
+ }
+ });
+
+ window.addEventListener('pageshow', () => {
+ document.body.classList.remove('page-loading');
+ });
+ } catch (error) {
+ console.error('Page loading state init failed:', error);
+ }
+ }
+
+ function init() {
+ initNavigation();
+ initScrollToTop();
+ initPageLoadingState();
+
+
+ initCopyCodeButtons();
+
+
+
+ initSmoothScroll();
+
+
+
+ initReadingProgress();
+
+ }
+
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', init);
+ } else {
+ init();
+ }
+})();</script> \ No newline at end of file
diff --git a/public/Raja_Ravi_Varma,_Sakunthala_Pathralekhan.jpg b/public/Raja_Ravi_Varma,_Sakunthala_Pathralekhan.jpg
new file mode 100644
index 0000000..1a883f6
--- /dev/null
+++ b/public/Raja_Ravi_Varma,_Sakunthala_Pathralekhan.jpg
Binary files differ
diff --git a/public/Science_Gothic/ScienceGothic-VariableFont_CTRS,slnt,wdth,wght.ttf b/public/Science_Gothic/ScienceGothic-VariableFont_CTRS,slnt,wdth,wght.ttf
new file mode 100644
index 0000000..b9aeac8
--- /dev/null
+++ b/public/Science_Gothic/ScienceGothic-VariableFont_CTRS,slnt,wdth,wght.ttf
Binary files differ
diff --git a/public/about/index.html b/public/about/index.html
new file mode 100644
index 0000000..09dcb10
--- /dev/null
+++ b/public/about/index.html
@@ -0,0 +1,286 @@
+<!doctype html><html lang=en><head><meta charset=utf-8><meta content="width=device-width,initial-scale=1.0" name=viewport><title>About verade - Venkata Rao Dechiraju</title><meta content="I am Venkata Rao Dechiraju, A Low-Level Perfomance Developer based off 🇮🇳, I heavily fw Compilers, Motorsports and Low Level Programming.
+You can find all the we…" name=description><link href=https://veradec.xyz/about/ rel=canonical><link href=https://veradec.xyz/favicon/favicon.ico rel=icon type=image/x-icon><link href=https://veradec.xyz/favicon/favicon-16x16.png rel=icon sizes=16x16 type=image/png><link href=https://veradec.xyz/favicon/favicon-32x32.png rel=icon sizes=32x32 type=image/png><link href=https://veradec.xyz/favicon/apple-touch-icon.png rel=apple-touch-icon sizes=180x180><link href=https://veradec.xyz/favicon/site.webmanifest rel=manifest><link as=style href=https://veradec.xyz/style.css rel=preload><link href=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css rel=stylesheet><script defer src=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js></script><script onload="renderMathInElement(document.body, {
+ delimiters: [
+ {left: '$$', right: '$$', display: true},
+ {left: '$', right: '$', display: false}
+ ]
+ });" defer src=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/contrib/auto-render.min.js></script><meta content="blog, tech, programming" name=keywords><meta content="Venkata Rao Dechiraju" name=author><meta content="index, follow" name=robots><meta content=#1e3a8a name=theme-color><meta content=article property=og:type><meta content=https://veradec.xyz/about/ property=og:url><meta content="About verade" property=og:title><meta content="I am Venkata Rao Dechiraju, A Low-Level Perfomance Developer based off 🇮🇳, I heavily fw Compilers, Motorsports and Low Level Programming.
+You can find all the we…" property=og:description><meta content="Venkata Rao Dechiraju" property=og:site_name><meta content=https://veradec.xyz/static/banner.png property=og:image><meta content=summary_large_image name=twitter:card><meta content="About verade" name=twitter:title><meta content="I am Venkata Rao Dechiraju, A Low-Level Perfomance Developer based off 🇮🇳, I heavily fw Compilers, Motorsports and Low Level Programming.
+You can find all the we…" name=twitter:description><meta content=https://veradec.xyz/static/banner.png name=twitter:image><script type=application/ld+json>
+ {
+ "@context": "https://schema.org",
+ "@type": "WebSite",
+ "name": "Venkata Rao Dechiraju",
+ "url": "https:&#x2F;&#x2F;veradec.xyz&#x2F;",
+ "description": "made by a actual human"
+
+ ,"author": {
+ "@type": "Person",
+ "name": "Venkata Rao Dechiraju"
+
+ ,"url": "https:&#x2F;&#x2F;verade.xyz"
+
+ }
+
+ }
+ </script><link title="atom feed for Venkata Rao Dechiraju" href=https://veradec.xyz/atom.xml rel=alternate type=application/atom+xml><link title="rss feed for Venkata Rao Dechiraju" href=https://veradec.xyz/rss.xml rel=alternate type=application/rss+xml><link href=https://veradec.xyz/style.css rel=stylesheet><script type=application/ld+json>
+{
+ "@context": "https://schema.org",
+ "@type": "BlogPosting",
+ "headline": "About verade",
+ "url": "https:&#x2F;&#x2F;veradec.xyz&#x2F;about&#x2F;"
+
+ ,"datePublished": "2026-05-24T00:00:00Z"
+
+
+
+ ,"author": {
+ "@type": "Person",
+ "name": "Venkata Rao Dechiraju"
+
+ ,"url": "https:&#x2F;&#x2F;verade.xyz"
+
+ }
+
+}
+</script><body><div class=background-container><img alt class=background-image src=Raja_Ravi_Varma,_Sakunthala_Pathralekhan.jpg></div><div aria-label="Reading progress" class=reading-progress id=reading-progress role=progressbar></div><a class=skip-to-content href=#content>skip to content</a><div class=wrap><header><a href=https://veradec.xyz/ id=home-link> <span aria-hidden=true id=back-icon> <svg viewbox="0 0 24 24" fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2><polyline points="15 18 9 12 15 6"></polyline></svg> </span> <span id=back-text>back</span> </a></header><div id=content><div class=hero><h1>About verade</h1><div class=hero-meta><span> Sun May 24, 2026 </span><span>·</span><span>1 min read</span><span>·</span><span>109 words</span></div></div><article><p>I am Venkata Rao Dechiraju, A Low-Level Perfomance Developer based off 🇮🇳, I heavily fw Compilers, Motorsports and Low Level Programming.<p>You can find all the weird stuff i do on <a rel="noopener nofollow noreferrer external" href=https://github.com/veradec/ target=_blank>my github</a> (Even though I am trying to move to something like codeberg)<p>I hope you find yourself intriguied after reading through my posts – that’s the intention of the whole website.<p>(Just because I use em-dashes doesn’t mean it wasn’t written by LLMs, I find the concept of em-dashes rather convenient, and I find myself at positions against LLMs for menial tasks such as writing blog posts, so cheers!)<p>Contact:<p>Mail -> venkatraodechiraju@gmail.com</article></div><div class=bottom-menu><p><a href=/posts>posts</a> <a href=/about>about</a> <a href=https://github.com/veradec>github</a> <a href=/authors>authors</a> <a href=/tags>tags</a> <a href=/categories>categories</a></div><button aria-label="Scroll to top" id=scroll-to-top><svg viewbox="0 0 24 24" aria-hidden=true fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2><polyline points="18 15 12 9 6 15"></polyline></svg></button><footer><div class=sam-footer>Built using Zola & Prism theme</div></footer></div><script>'use strict';
+
+(function() {
+ const SVG_ICONS = {
+ copy: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>',
+ check: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><polyline points="20 6 9 17 4 12"></polyline></svg>',
+ error: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>'
+ };
+
+ function debounce(func, wait) {
+ let timeout;
+ return function executedFunction(...args) {
+ clearTimeout(timeout);
+ timeout = setTimeout(() => func(...args), wait);
+ };
+ }
+
+ function initNavigation() {
+ try {
+ const homeLink = document.getElementById('home-link');
+ const backIcon = document.getElementById('back-icon');
+ const backText = document.getElementById('back-text');
+
+ if (!homeLink) return;
+
+ const homeText = 'back';
+ const isHomePage = window.location.pathname === '/' || window.location.pathname === '/index.html';
+
+ if (backIcon && isHomePage) {
+ backIcon.style.display = 'none';
+ }
+
+ if (backText) {
+ backText.textContent = homeText;
+ }
+
+ homeLink.setAttribute('aria-label', `Go to ${homeText.toLowerCase()} page`);
+ } catch (error) {
+ console.error('Navigation init failed:', error);
+ }
+ }
+
+ function initScrollToTop() {
+ try {
+ const scrollToTopBtn = document.getElementById('scroll-to-top');
+ if (!scrollToTopBtn) return;
+
+ const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
+
+ const toggleVisibility = debounce(() => {
+ if (window.scrollY > 300) {
+ scrollToTopBtn.classList.add('visible');
+ } else {
+ scrollToTopBtn.classList.remove('visible');
+ }
+ }, 100);
+
+ window.addEventListener('scroll', toggleVisibility, { passive: true });
+ toggleVisibility();
+
+ scrollToTopBtn.addEventListener('click', () => {
+ window.scrollTo({
+ top: 0,
+ behavior: prefersReducedMotion ? 'auto' : 'smooth'
+ });
+ });
+ } catch (error) {
+ console.error('Scroll to top init failed:', error);
+ }
+ }
+
+
+ function initCopyCodeButtons() {
+ try {
+ const codeBlocks = document.querySelectorAll('pre code');
+
+ codeBlocks.forEach((codeBlock) => {
+ const pre = codeBlock.parentElement;
+
+ const wrapper = document.createElement('div');
+ wrapper.className = 'code-block-wrapper';
+ pre.parentNode.insertBefore(wrapper, pre);
+ wrapper.appendChild(pre);
+
+ const copyButton = document.createElement('button');
+ copyButton.className = 'copy-code-button';
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ copyButton.setAttribute('title', 'Copy code');
+
+ wrapper.appendChild(copyButton);
+
+ copyButton.addEventListener('click', async () => {
+ const code = codeBlock.textContent;
+
+ try {
+ if (navigator.clipboard && window.isSecureContext) {
+ await navigator.clipboard.writeText(code);
+ } else {
+ const textArea = document.createElement('textarea');
+ textArea.value = code;
+ textArea.style.position = 'fixed';
+ textArea.style.left = '-999999px';
+ document.body.appendChild(textArea);
+ textArea.select();
+ document.execCommand('copy');
+ document.body.removeChild(textArea);
+ }
+
+ copyButton.innerHTML = SVG_ICONS.check;
+ copyButton.classList.add('copied');
+ copyButton.setAttribute('aria-label', 'Code copied');
+
+ setTimeout(() => {
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.classList.remove('copied');
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ }, 2000);
+ } catch (err) {
+ console.error('Failed to copy code:', err);
+
+ copyButton.innerHTML = SVG_ICONS.error;
+ copyButton.classList.add('error');
+ copyButton.setAttribute('aria-label', 'Copy failed');
+
+ setTimeout(() => {
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.classList.remove('error');
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ }, 2000);
+ }
+ });
+ });
+ } catch (error) {
+ console.error('Copy code buttons init failed:', error);
+ }
+ }
+
+
+
+ function initSmoothScroll() {
+ try {
+ const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
+ if (prefersReducedMotion) return;
+
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
+ anchor.addEventListener('click', function (e) {
+ const href = this.getAttribute('href');
+ if (href === '#' || href.length <= 1) return;
+
+ e.preventDefault();
+ const target = document.querySelector(href);
+
+ if (target) {
+ const offset = 80;
+ const targetPosition = target.getBoundingClientRect().top + window.pageYOffset - offset;
+
+ window.scrollTo({
+ top: targetPosition,
+ behavior: 'smooth'
+ });
+
+ if (window.history.pushState) {
+ window.history.pushState(null, null, href);
+ }
+
+ if (!target.hasAttribute('tabindex')) {
+ target.setAttribute('tabindex', '-1');
+ }
+ target.focus({ preventScroll: true });
+ }
+ });
+ });
+ } catch (error) {
+ console.error('Smooth scroll init failed:', error);
+ }
+ }
+
+
+
+ function initReadingProgress() {
+ try {
+ const progressBar = document.getElementById('reading-progress');
+ if (!progressBar) return;
+
+ const updateProgressBar = debounce(() => {
+ const winScroll = document.body.scrollTop || document.documentElement.scrollTop;
+ const height = document.documentElement.scrollHeight - document.documentElement.clientHeight;
+ const scrolled = height > 0 ? (winScroll / height) * 100 : 0;
+ progressBar.style.width = scrolled + '%';
+ }, 16);
+
+ window.addEventListener('scroll', updateProgressBar, { passive: true });
+ updateProgressBar();
+ } catch (error) {
+ console.error('Reading progress init failed:', error);
+ }
+ }
+
+
+ function initPageLoadingState() {
+ try {
+ document.addEventListener('click', (e) => {
+ const link = e.target.closest('a[href^="/"], a[href^="https:&#x2F;&#x2F;veradec.xyz&#x2F;"]');
+ if (link && !link.target && !link.getAttribute('download')) {
+ document.body.classList.add('page-loading');
+ }
+ });
+
+ window.addEventListener('pageshow', () => {
+ document.body.classList.remove('page-loading');
+ });
+ } catch (error) {
+ console.error('Page loading state init failed:', error);
+ }
+ }
+
+ function init() {
+ initNavigation();
+ initScrollToTop();
+ initPageLoadingState();
+
+
+ initCopyCodeButtons();
+
+
+
+ initSmoothScroll();
+
+
+
+ initReadingProgress();
+
+ }
+
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', init);
+ } else {
+ init();
+ }
+})();</script> \ No newline at end of file
diff --git a/public/atom.xml b/public/atom.xml
new file mode 100644
index 0000000..4a94639
--- /dev/null
+++ b/public/atom.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
+ <title>Venkata Rao Dechiraju</title>
+ <subtitle>made by a actual human</subtitle>
+ <link rel="self" type="application/atom+xml" href="https://veradec.xyz/atom.xml"/>
+ <link rel="alternate" type="text/html" href="https://veradec.xyz/"/>
+ <generator uri="https://www.getzola.org/">Zola</generator>
+ <updated>2026-05-27T00:00:00+00:00</updated>
+ <id>https://veradec.xyz/atom.xml</id>
+ <entry xml:lang="en">
+ <title>Making a Drum Sequencer</title>
+ <published>2026-05-27T00:00:00+00:00</published>
+ <updated>2026-05-27T00:00:00+00:00</updated>
+
+ <author>
+ <name>
+
+ Unknown
+
+ </name>
+ </author>
+
+ <link rel="alternate" type="text/html" href="https://veradec.xyz/posts/drum-sequencer/"/>
+ <id>https://veradec.xyz/posts/drum-sequencer/</id>
+
+ <content type="html" xml:base="https://veradec.xyz/posts/drum-sequencer/">&lt;p&gt;I always looked at Teenage Engineering and thought it was pretty cool and given I have a sem break right now, I thought I can make one too. shouldn’t be hard right?&lt;br &#x2F;&gt;
+and after i started composing music, Techno was a genre I always wanted to try but i couldn’t, and then an idea popped up, maybe I can create a suite of instruments&lt;&#x2F;p&gt;
+&lt;blockquote&gt;
+&lt;p&gt;a Synth&lt;&#x2F;p&gt;
+&lt;&#x2F;blockquote&gt;
+&lt;blockquote&gt;
+&lt;p&gt;a Drum Sequencer&lt;&#x2F;p&gt;
+&lt;&#x2F;blockquote&gt;
+&lt;blockquote&gt;
+&lt;p&gt;a Vocoder&lt;&#x2F;p&gt;
+&lt;&#x2F;blockquote&gt;
+&lt;p&gt;and start making techno on them? Sounds nice innit?&lt;br &#x2F;&gt;
+&lt;br&gt;&lt;&#x2F;p&gt;
+&lt;h1 id=&quot;the-design&quot;&gt;The Design&lt;&#x2F;h1&gt;
+&lt;p&gt;I wanted the design to look a little retro 80’s esque, and I wanted it to be little simpler (because I will have suite of appliances to generate different sounds, so would rather have one that is simple and does it job well)
+and I drew a few sketches and ended with something that looks very nice&lt;&#x2F;p&gt;
+&lt;div style=&quot;display: flex; justify-content: center;&quot;&gt;
+ &lt;img src=&quot;&#x2F;dq_sketch.png&quot; alt=&quot;Drum Sequencer Rough Sketch&quot; style=&quot;transform: rotate(-90deg); width: 50%;&quot; &#x2F;&gt;
+&lt;&#x2F;div&gt;
+&lt;h1 id=&quot;the-prototyping&quot;&gt;The Prototyping&lt;&#x2F;h1&gt;
+&lt;p&gt;with the &lt;em&gt;beautifully&lt;&#x2F;em&gt; crafted picture in hand, now the plan is to prototype&lt;&#x2F;p&gt;
+&lt;p&gt;I needed around 16 Buttons – which I am going to pull of some keyboards i archived (They paid off innit?).&lt;&#x2F;p&gt;
+&lt;p&gt;I might need to get some more potentiometers and find a way to make a matrix the LEDs and Buttons, Once That is done, Getting the whole thing shouldn’t be that tough (atleast I hope it isn’t)&lt;&#x2F;p&gt;
+&lt;!-- -- 28 May 02:00 AM --&gt;
+&lt;!-- I am about to order stuff from flyrobo and i found this website called [ifuturetech](https:&#x2F;&#x2F;ifuturetech.org) which i am really unsure is legitimate, but yes. I might order from it, the total cost excluding the MicroProcessor and the Speaker (which i might borrow from a friend for prototyping) come around to 616. --&gt;
+&lt;!-- Including the speaker and the MCU let&#x27;s call it a even 900? and then the chassis -- with a good cnc machine and alumium -- would roll everything up to a nice 1500 - 1700? That still is cheaper than Teenage Engineering or any SOTA, selling it for around 2400-2500 should make up some good profit. this is getting exciting. --&gt;
+&lt;!-- I look forward to any outliers that would increase the cost by 10x -- i don&#x27;t see a reason something like this would but yes. --&gt;
+</content>
+
+ </entry>
+ <entry xml:lang="en">
+ <title>About verade</title>
+ <published>2026-05-24T00:00:00+00:00</published>
+ <updated>2026-05-24T00:00:00+00:00</updated>
+
+ <author>
+ <name>
+
+ Unknown
+
+ </name>
+ </author>
+
+ <link rel="alternate" type="text/html" href="https://veradec.xyz/about/"/>
+ <id>https://veradec.xyz/about/</id>
+
+ <content type="html" xml:base="https://veradec.xyz/about/">&lt;p&gt;I am Venkata Rao Dechiraju, A Low-Level Perfomance Developer based off 🇮🇳, I heavily fw Compilers, Motorsports and Low Level Programming.&lt;&#x2F;p&gt;
+&lt;p&gt;You can find all the weird stuff i do on &lt;a rel=&quot;noopener nofollow noreferrer external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;veradec&#x2F;&quot;&gt;my github&lt;&#x2F;a&gt; (Even though I am trying to move to something like codeberg)&lt;&#x2F;p&gt;
+&lt;p&gt;I hope you find yourself intriguied after reading through my posts – that’s the intention of the whole website.&lt;&#x2F;p&gt;
+&lt;p&gt;(Just because I use em-dashes doesn’t mean it wasn’t written by LLMs, I find the concept of em-dashes rather convenient, and I find myself at positions against LLMs for menial tasks such as writing blog posts, so cheers!)&lt;&#x2F;p&gt;
+&lt;p&gt;Contact:&lt;&#x2F;p&gt;
+&lt;p&gt;Mail -&amp;gt; venkatraodechiraju@gmail.com&lt;&#x2F;p&gt;
+</content>
+
+ </entry>
+ <entry xml:lang="en">
+ <title>Hello, World</title>
+ <published>2026-05-24T00:00:00+00:00</published>
+ <updated>2026-05-24T00:00:00+00:00</updated>
+
+ <author>
+ <name>
+
+ Unknown
+
+ </name>
+ </author>
+
+ <link rel="alternate" type="text/html" href="https://veradec.xyz/posts/hello/"/>
+ <id>https://veradec.xyz/posts/hello/</id>
+
+ <content type="html" xml:base="https://veradec.xyz/posts/hello/">&lt;p&gt;a (hopefully) final revamp of the website, given it’s not very ugly to look at now, maybe i’ll start writing more here? i ain’t sure about that and yes, i’ll be copying all the content from the previous website here, so i’ll not lose what was&lt;&#x2F;p&gt;
+</content>
+
+ </entry>
+</feed>
diff --git a/public/authors/index.html b/public/authors/index.html
new file mode 100644
index 0000000..5289c2a
--- /dev/null
+++ b/public/authors/index.html
@@ -0,0 +1,265 @@
+<!doctype html><html lang=en><head><meta charset=utf-8><meta content="width=device-width,initial-scale=1.0" name=viewport><title>
+authors - Venkata Rao Dechiraju
+</title><meta content="made by a actual human" name=description><link href=https://veradec.xyz/authors/ rel=canonical><link href=https://veradec.xyz/favicon/favicon.ico rel=icon type=image/x-icon><link href=https://veradec.xyz/favicon/favicon-16x16.png rel=icon sizes=16x16 type=image/png><link href=https://veradec.xyz/favicon/favicon-32x32.png rel=icon sizes=32x32 type=image/png><link href=https://veradec.xyz/favicon/apple-touch-icon.png rel=apple-touch-icon sizes=180x180><link href=https://veradec.xyz/favicon/site.webmanifest rel=manifest><link as=style href=https://veradec.xyz/style.css rel=preload><link href=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css rel=stylesheet><script defer src=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js></script><script onload="renderMathInElement(document.body, {
+ delimiters: [
+ {left: '$$', right: '$$', display: true},
+ {left: '$', right: '$', display: false}
+ ]
+ });" defer src=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/contrib/auto-render.min.js></script><meta content="blog, tech, programming" name=keywords><meta content="Venkata Rao Dechiraju" name=author><meta content="index, follow" name=robots><meta content=#1e3a8a name=theme-color><meta content=website property=og:type><meta content=https://veradec.xyz/authors/ property=og:url><meta content="Venkata Rao Dechiraju" property=og:title><meta content="made by a actual human" property=og:description><meta content="Venkata Rao Dechiraju" property=og:site_name><meta content=https://veradec.xyz/static/banner.png property=og:image><meta content=summary_large_image name=twitter:card><meta content="Venkata Rao Dechiraju" name=twitter:title><meta content="made by a actual human" name=twitter:description><meta content=https://veradec.xyz/static/banner.png name=twitter:image><script type=application/ld+json>
+ {
+ "@context": "https://schema.org",
+ "@type": "WebSite",
+ "name": "Venkata Rao Dechiraju",
+ "url": "https:&#x2F;&#x2F;veradec.xyz&#x2F;",
+ "description": "made by a actual human"
+
+ ,"author": {
+ "@type": "Person",
+ "name": "Venkata Rao Dechiraju"
+
+ ,"url": "https:&#x2F;&#x2F;verade.xyz"
+
+ }
+
+ }
+ </script><link title="atom feed for Venkata Rao Dechiraju" href=https://veradec.xyz/atom.xml rel=alternate type=application/atom+xml><link title="rss feed for Venkata Rao Dechiraju" href=https://veradec.xyz/rss.xml rel=alternate type=application/rss+xml><link href=https://veradec.xyz/style.css rel=stylesheet><body><div class=background-container><img alt class=background-image src=Raja_Ravi_Varma,_Sakunthala_Pathralekhan.jpg></div><div aria-label="Reading progress" class=reading-progress id=reading-progress role=progressbar></div><a class=skip-to-content href=#content>skip to content</a><div class=wrap><header><a href=https://veradec.xyz/ id=home-link> <span aria-hidden=true id=back-icon> <svg viewbox="0 0 24 24" fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2><polyline points="15 18 9 12 15 6"></polyline></svg> </span> <span id=back-text>back</span> </a></header><div id=content><div class=hero><h1>Authors</h1><p class=hero-description>contributors</div><div class=taxonomy-grid><a class=taxonomy-item href=https://veradec.xyz/authors/venkata-rao-dechiraju/> <h3>Venkata Rao Dechiraju</h3> <span class=count>1 post</span> </a></div></div><div class=bottom-menu><p><a href=/posts>posts</a> <a href=/about>about</a> <a href=https://github.com/veradec>github</a> <a href=/authors>authors</a> <a href=/tags>tags</a> <a href=/categories>categories</a></div><button aria-label="Scroll to top" id=scroll-to-top><svg viewbox="0 0 24 24" aria-hidden=true fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2><polyline points="18 15 12 9 6 15"></polyline></svg></button><footer><div class=sam-footer>Built using Zola & Prism theme</div></footer></div><script>'use strict';
+
+(function() {
+ const SVG_ICONS = {
+ copy: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>',
+ check: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><polyline points="20 6 9 17 4 12"></polyline></svg>',
+ error: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>'
+ };
+
+ function debounce(func, wait) {
+ let timeout;
+ return function executedFunction(...args) {
+ clearTimeout(timeout);
+ timeout = setTimeout(() => func(...args), wait);
+ };
+ }
+
+ function initNavigation() {
+ try {
+ const homeLink = document.getElementById('home-link');
+ const backIcon = document.getElementById('back-icon');
+ const backText = document.getElementById('back-text');
+
+ if (!homeLink) return;
+
+ const homeText = 'back';
+ const isHomePage = window.location.pathname === '/' || window.location.pathname === '/index.html';
+
+ if (backIcon && isHomePage) {
+ backIcon.style.display = 'none';
+ }
+
+ if (backText) {
+ backText.textContent = homeText;
+ }
+
+ homeLink.setAttribute('aria-label', `Go to ${homeText.toLowerCase()} page`);
+ } catch (error) {
+ console.error('Navigation init failed:', error);
+ }
+ }
+
+ function initScrollToTop() {
+ try {
+ const scrollToTopBtn = document.getElementById('scroll-to-top');
+ if (!scrollToTopBtn) return;
+
+ const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
+
+ const toggleVisibility = debounce(() => {
+ if (window.scrollY > 300) {
+ scrollToTopBtn.classList.add('visible');
+ } else {
+ scrollToTopBtn.classList.remove('visible');
+ }
+ }, 100);
+
+ window.addEventListener('scroll', toggleVisibility, { passive: true });
+ toggleVisibility();
+
+ scrollToTopBtn.addEventListener('click', () => {
+ window.scrollTo({
+ top: 0,
+ behavior: prefersReducedMotion ? 'auto' : 'smooth'
+ });
+ });
+ } catch (error) {
+ console.error('Scroll to top init failed:', error);
+ }
+ }
+
+
+ function initCopyCodeButtons() {
+ try {
+ const codeBlocks = document.querySelectorAll('pre code');
+
+ codeBlocks.forEach((codeBlock) => {
+ const pre = codeBlock.parentElement;
+
+ const wrapper = document.createElement('div');
+ wrapper.className = 'code-block-wrapper';
+ pre.parentNode.insertBefore(wrapper, pre);
+ wrapper.appendChild(pre);
+
+ const copyButton = document.createElement('button');
+ copyButton.className = 'copy-code-button';
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ copyButton.setAttribute('title', 'Copy code');
+
+ wrapper.appendChild(copyButton);
+
+ copyButton.addEventListener('click', async () => {
+ const code = codeBlock.textContent;
+
+ try {
+ if (navigator.clipboard && window.isSecureContext) {
+ await navigator.clipboard.writeText(code);
+ } else {
+ const textArea = document.createElement('textarea');
+ textArea.value = code;
+ textArea.style.position = 'fixed';
+ textArea.style.left = '-999999px';
+ document.body.appendChild(textArea);
+ textArea.select();
+ document.execCommand('copy');
+ document.body.removeChild(textArea);
+ }
+
+ copyButton.innerHTML = SVG_ICONS.check;
+ copyButton.classList.add('copied');
+ copyButton.setAttribute('aria-label', 'Code copied');
+
+ setTimeout(() => {
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.classList.remove('copied');
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ }, 2000);
+ } catch (err) {
+ console.error('Failed to copy code:', err);
+
+ copyButton.innerHTML = SVG_ICONS.error;
+ copyButton.classList.add('error');
+ copyButton.setAttribute('aria-label', 'Copy failed');
+
+ setTimeout(() => {
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.classList.remove('error');
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ }, 2000);
+ }
+ });
+ });
+ } catch (error) {
+ console.error('Copy code buttons init failed:', error);
+ }
+ }
+
+
+
+ function initSmoothScroll() {
+ try {
+ const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
+ if (prefersReducedMotion) return;
+
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
+ anchor.addEventListener('click', function (e) {
+ const href = this.getAttribute('href');
+ if (href === '#' || href.length <= 1) return;
+
+ e.preventDefault();
+ const target = document.querySelector(href);
+
+ if (target) {
+ const offset = 80;
+ const targetPosition = target.getBoundingClientRect().top + window.pageYOffset - offset;
+
+ window.scrollTo({
+ top: targetPosition,
+ behavior: 'smooth'
+ });
+
+ if (window.history.pushState) {
+ window.history.pushState(null, null, href);
+ }
+
+ if (!target.hasAttribute('tabindex')) {
+ target.setAttribute('tabindex', '-1');
+ }
+ target.focus({ preventScroll: true });
+ }
+ });
+ });
+ } catch (error) {
+ console.error('Smooth scroll init failed:', error);
+ }
+ }
+
+
+
+ function initReadingProgress() {
+ try {
+ const progressBar = document.getElementById('reading-progress');
+ if (!progressBar) return;
+
+ const updateProgressBar = debounce(() => {
+ const winScroll = document.body.scrollTop || document.documentElement.scrollTop;
+ const height = document.documentElement.scrollHeight - document.documentElement.clientHeight;
+ const scrolled = height > 0 ? (winScroll / height) * 100 : 0;
+ progressBar.style.width = scrolled + '%';
+ }, 16);
+
+ window.addEventListener('scroll', updateProgressBar, { passive: true });
+ updateProgressBar();
+ } catch (error) {
+ console.error('Reading progress init failed:', error);
+ }
+ }
+
+
+ function initPageLoadingState() {
+ try {
+ document.addEventListener('click', (e) => {
+ const link = e.target.closest('a[href^="/"], a[href^="https:&#x2F;&#x2F;veradec.xyz&#x2F;"]');
+ if (link && !link.target && !link.getAttribute('download')) {
+ document.body.classList.add('page-loading');
+ }
+ });
+
+ window.addEventListener('pageshow', () => {
+ document.body.classList.remove('page-loading');
+ });
+ } catch (error) {
+ console.error('Page loading state init failed:', error);
+ }
+ }
+
+ function init() {
+ initNavigation();
+ initScrollToTop();
+ initPageLoadingState();
+
+
+ initCopyCodeButtons();
+
+
+
+ initSmoothScroll();
+
+
+
+ initReadingProgress();
+
+ }
+
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', init);
+ } else {
+ init();
+ }
+})();</script> \ No newline at end of file
diff --git a/public/authors/venkata-rao-dechiraju/atom.xml b/public/authors/venkata-rao-dechiraju/atom.xml
new file mode 100644
index 0000000..8183fb0
--- /dev/null
+++ b/public/authors/venkata-rao-dechiraju/atom.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
+ <title>Venkata Rao Dechiraju - Venkata Rao Dechiraju</title>
+ <subtitle>made by a actual human</subtitle>
+ <link rel="self" type="application/atom+xml" href="https://veradec.xyz/authors/venkata-rao-dechiraju/atom.xml"/>
+ <link rel="alternate" type="text/html" href="https://veradec.xyz/"/>
+ <generator uri="https://www.getzola.org/">Zola</generator>
+ <updated>2026-05-24T00:00:00+00:00</updated>
+ <id>https://veradec.xyz/authors/venkata-rao-dechiraju/atom.xml</id>
+ <entry xml:lang="en">
+ <title>Hello, World</title>
+ <published>2026-05-24T00:00:00+00:00</published>
+ <updated>2026-05-24T00:00:00+00:00</updated>
+
+ <author>
+ <name>
+
+ Unknown
+
+ </name>
+ </author>
+
+ <link rel="alternate" type="text/html" href="https://veradec.xyz/posts/hello/"/>
+ <id>https://veradec.xyz/posts/hello/</id>
+
+ <content type="html" xml:base="https://veradec.xyz/posts/hello/">&lt;p&gt;a (hopefully) final revamp of the website, given it’s not very ugly to look at now, maybe i’ll start writing more here? i ain’t sure about that and yes, i’ll be copying all the content from the previous website here, so i’ll not lose what was&lt;&#x2F;p&gt;
+</content>
+
+ </entry>
+</feed>
diff --git a/public/authors/venkata-rao-dechiraju/index.html b/public/authors/venkata-rao-dechiraju/index.html
new file mode 100644
index 0000000..cd8f007
--- /dev/null
+++ b/public/authors/venkata-rao-dechiraju/index.html
@@ -0,0 +1,265 @@
+<!doctype html><html lang=en><head><meta charset=utf-8><meta content="width=device-width,initial-scale=1.0" name=viewport><title>
+Venkata Rao Dechiraju - Venkata Rao Dechiraju
+</title><meta content="made by a actual human" name=description><link href=https://veradec.xyz/authors/venkata-rao-dechiraju/ rel=canonical><link href=https://veradec.xyz/favicon/favicon.ico rel=icon type=image/x-icon><link href=https://veradec.xyz/favicon/favicon-16x16.png rel=icon sizes=16x16 type=image/png><link href=https://veradec.xyz/favicon/favicon-32x32.png rel=icon sizes=32x32 type=image/png><link href=https://veradec.xyz/favicon/apple-touch-icon.png rel=apple-touch-icon sizes=180x180><link href=https://veradec.xyz/favicon/site.webmanifest rel=manifest><link as=style href=https://veradec.xyz/style.css rel=preload><link href=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css rel=stylesheet><script defer src=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js></script><script onload="renderMathInElement(document.body, {
+ delimiters: [
+ {left: '$$', right: '$$', display: true},
+ {left: '$', right: '$', display: false}
+ ]
+ });" defer src=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/contrib/auto-render.min.js></script><meta content="blog, tech, programming" name=keywords><meta content="Venkata Rao Dechiraju" name=author><meta content="index, follow" name=robots><meta content=#1e3a8a name=theme-color><meta content=website property=og:type><meta content=https://veradec.xyz/authors/venkata-rao-dechiraju/ property=og:url><meta content="Venkata Rao Dechiraju" property=og:title><meta content="made by a actual human" property=og:description><meta content="Venkata Rao Dechiraju" property=og:site_name><meta content=https://veradec.xyz/static/banner.png property=og:image><meta content=summary_large_image name=twitter:card><meta content="Venkata Rao Dechiraju" name=twitter:title><meta content="made by a actual human" name=twitter:description><meta content=https://veradec.xyz/static/banner.png name=twitter:image><script type=application/ld+json>
+ {
+ "@context": "https://schema.org",
+ "@type": "WebSite",
+ "name": "Venkata Rao Dechiraju",
+ "url": "https:&#x2F;&#x2F;veradec.xyz&#x2F;",
+ "description": "made by a actual human"
+
+ ,"author": {
+ "@type": "Person",
+ "name": "Venkata Rao Dechiraju"
+
+ ,"url": "https:&#x2F;&#x2F;verade.xyz"
+
+ }
+
+ }
+ </script><link title="atom feed for Venkata Rao Dechiraju" href=https://veradec.xyz/atom.xml rel=alternate type=application/atom+xml><link title="rss feed for Venkata Rao Dechiraju" href=https://veradec.xyz/rss.xml rel=alternate type=application/rss+xml><link href=https://veradec.xyz/style.css rel=stylesheet><body><div class=background-container><img alt class=background-image src=Raja_Ravi_Varma,_Sakunthala_Pathralekhan.jpg></div><div aria-label="Reading progress" class=reading-progress id=reading-progress role=progressbar></div><a class=skip-to-content href=#content>skip to content</a><div class=wrap><header><a href=https://veradec.xyz/ id=home-link> <span aria-hidden=true id=back-icon> <svg viewbox="0 0 24 24" fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2><polyline points="15 18 9 12 15 6"></polyline></svg> </span> <span id=back-text>back</span> </a></header><div id=content><div class=hero><h1>Venkata Rao Dechiraju</h1><p class=hero-description>1 post</div><div class=post-grid><a class=card href=https://veradec.xyz/posts/hello/> <h3>Hello, World</h3> <p>a (hopefully) final revamp of the website, given it’s not very ugly to look at now, maybe i’ll start writing more here? i ain’t sure about that and ye…</p> <div class=meta><span> Sun May 24, 2026 </span><span>1 min read</span></div> </a></div></div><div class=bottom-menu><p><a href=/posts>posts</a> <a href=/about>about</a> <a href=https://github.com/veradec>github</a> <a href=/authors>authors</a> <a href=/tags>tags</a> <a href=/categories>categories</a></div><button aria-label="Scroll to top" id=scroll-to-top><svg viewbox="0 0 24 24" aria-hidden=true fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2><polyline points="18 15 12 9 6 15"></polyline></svg></button><footer><div class=sam-footer>Built using Zola & Prism theme</div></footer></div><script>'use strict';
+
+(function() {
+ const SVG_ICONS = {
+ copy: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>',
+ check: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><polyline points="20 6 9 17 4 12"></polyline></svg>',
+ error: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>'
+ };
+
+ function debounce(func, wait) {
+ let timeout;
+ return function executedFunction(...args) {
+ clearTimeout(timeout);
+ timeout = setTimeout(() => func(...args), wait);
+ };
+ }
+
+ function initNavigation() {
+ try {
+ const homeLink = document.getElementById('home-link');
+ const backIcon = document.getElementById('back-icon');
+ const backText = document.getElementById('back-text');
+
+ if (!homeLink) return;
+
+ const homeText = 'back';
+ const isHomePage = window.location.pathname === '/' || window.location.pathname === '/index.html';
+
+ if (backIcon && isHomePage) {
+ backIcon.style.display = 'none';
+ }
+
+ if (backText) {
+ backText.textContent = homeText;
+ }
+
+ homeLink.setAttribute('aria-label', `Go to ${homeText.toLowerCase()} page`);
+ } catch (error) {
+ console.error('Navigation init failed:', error);
+ }
+ }
+
+ function initScrollToTop() {
+ try {
+ const scrollToTopBtn = document.getElementById('scroll-to-top');
+ if (!scrollToTopBtn) return;
+
+ const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
+
+ const toggleVisibility = debounce(() => {
+ if (window.scrollY > 300) {
+ scrollToTopBtn.classList.add('visible');
+ } else {
+ scrollToTopBtn.classList.remove('visible');
+ }
+ }, 100);
+
+ window.addEventListener('scroll', toggleVisibility, { passive: true });
+ toggleVisibility();
+
+ scrollToTopBtn.addEventListener('click', () => {
+ window.scrollTo({
+ top: 0,
+ behavior: prefersReducedMotion ? 'auto' : 'smooth'
+ });
+ });
+ } catch (error) {
+ console.error('Scroll to top init failed:', error);
+ }
+ }
+
+
+ function initCopyCodeButtons() {
+ try {
+ const codeBlocks = document.querySelectorAll('pre code');
+
+ codeBlocks.forEach((codeBlock) => {
+ const pre = codeBlock.parentElement;
+
+ const wrapper = document.createElement('div');
+ wrapper.className = 'code-block-wrapper';
+ pre.parentNode.insertBefore(wrapper, pre);
+ wrapper.appendChild(pre);
+
+ const copyButton = document.createElement('button');
+ copyButton.className = 'copy-code-button';
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ copyButton.setAttribute('title', 'Copy code');
+
+ wrapper.appendChild(copyButton);
+
+ copyButton.addEventListener('click', async () => {
+ const code = codeBlock.textContent;
+
+ try {
+ if (navigator.clipboard && window.isSecureContext) {
+ await navigator.clipboard.writeText(code);
+ } else {
+ const textArea = document.createElement('textarea');
+ textArea.value = code;
+ textArea.style.position = 'fixed';
+ textArea.style.left = '-999999px';
+ document.body.appendChild(textArea);
+ textArea.select();
+ document.execCommand('copy');
+ document.body.removeChild(textArea);
+ }
+
+ copyButton.innerHTML = SVG_ICONS.check;
+ copyButton.classList.add('copied');
+ copyButton.setAttribute('aria-label', 'Code copied');
+
+ setTimeout(() => {
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.classList.remove('copied');
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ }, 2000);
+ } catch (err) {
+ console.error('Failed to copy code:', err);
+
+ copyButton.innerHTML = SVG_ICONS.error;
+ copyButton.classList.add('error');
+ copyButton.setAttribute('aria-label', 'Copy failed');
+
+ setTimeout(() => {
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.classList.remove('error');
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ }, 2000);
+ }
+ });
+ });
+ } catch (error) {
+ console.error('Copy code buttons init failed:', error);
+ }
+ }
+
+
+
+ function initSmoothScroll() {
+ try {
+ const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
+ if (prefersReducedMotion) return;
+
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
+ anchor.addEventListener('click', function (e) {
+ const href = this.getAttribute('href');
+ if (href === '#' || href.length <= 1) return;
+
+ e.preventDefault();
+ const target = document.querySelector(href);
+
+ if (target) {
+ const offset = 80;
+ const targetPosition = target.getBoundingClientRect().top + window.pageYOffset - offset;
+
+ window.scrollTo({
+ top: targetPosition,
+ behavior: 'smooth'
+ });
+
+ if (window.history.pushState) {
+ window.history.pushState(null, null, href);
+ }
+
+ if (!target.hasAttribute('tabindex')) {
+ target.setAttribute('tabindex', '-1');
+ }
+ target.focus({ preventScroll: true });
+ }
+ });
+ });
+ } catch (error) {
+ console.error('Smooth scroll init failed:', error);
+ }
+ }
+
+
+
+ function initReadingProgress() {
+ try {
+ const progressBar = document.getElementById('reading-progress');
+ if (!progressBar) return;
+
+ const updateProgressBar = debounce(() => {
+ const winScroll = document.body.scrollTop || document.documentElement.scrollTop;
+ const height = document.documentElement.scrollHeight - document.documentElement.clientHeight;
+ const scrolled = height > 0 ? (winScroll / height) * 100 : 0;
+ progressBar.style.width = scrolled + '%';
+ }, 16);
+
+ window.addEventListener('scroll', updateProgressBar, { passive: true });
+ updateProgressBar();
+ } catch (error) {
+ console.error('Reading progress init failed:', error);
+ }
+ }
+
+
+ function initPageLoadingState() {
+ try {
+ document.addEventListener('click', (e) => {
+ const link = e.target.closest('a[href^="/"], a[href^="https:&#x2F;&#x2F;veradec.xyz&#x2F;"]');
+ if (link && !link.target && !link.getAttribute('download')) {
+ document.body.classList.add('page-loading');
+ }
+ });
+
+ window.addEventListener('pageshow', () => {
+ document.body.classList.remove('page-loading');
+ });
+ } catch (error) {
+ console.error('Page loading state init failed:', error);
+ }
+ }
+
+ function init() {
+ initNavigation();
+ initScrollToTop();
+ initPageLoadingState();
+
+
+ initCopyCodeButtons();
+
+
+
+ initSmoothScroll();
+
+
+
+ initReadingProgress();
+
+ }
+
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', init);
+ } else {
+ init();
+ }
+})();</script> \ No newline at end of file
diff --git a/public/authors/venkata-rao-dechiraju/rss.xml b/public/authors/venkata-rao-dechiraju/rss.xml
new file mode 100644
index 0000000..bd73a9a
--- /dev/null
+++ b/public/authors/venkata-rao-dechiraju/rss.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
+ <channel>
+ <title>Venkata Rao Dechiraju - Venkata Rao Dechiraju</title>
+ <link>https://veradec.xyz/</link>
+ <description>made by a actual human</description>
+ <generator>Zola</generator>
+ <language>en</language>
+ <atom:link href="https://veradec.xyz/authors/venkata-rao-dechiraju/rss.xml" rel="self" type="application/rss+xml"/>
+ <lastBuildDate>Sun, 24 May 2026 00:00:00 +0000</lastBuildDate>
+ <item>
+ <title>Hello, World</title>
+ <pubDate>Sun, 24 May 2026 00:00:00 +0000</pubDate>
+ <author>Unknown</author>
+ <link>https://veradec.xyz/posts/hello/</link>
+ <guid>https://veradec.xyz/posts/hello/</guid>
+ <description xml:base="https://veradec.xyz/posts/hello/">&lt;p&gt;a (hopefully) final revamp of the website, given it’s not very ugly to look at now, maybe i’ll start writing more here? i ain’t sure about that and yes, i’ll be copying all the content from the previous website here, so i’ll not lose what was&lt;&#x2F;p&gt;
+</description>
+ </item>
+ </channel>
+</rss>
diff --git a/public/bg2.png b/public/bg2.png
new file mode 100644
index 0000000..4396a40
--- /dev/null
+++ b/public/bg2.png
Binary files differ
diff --git a/public/bg3.jpg b/public/bg3.jpg
new file mode 100644
index 0000000..14be157
--- /dev/null
+++ b/public/bg3.jpg
Binary files differ
diff --git a/public/categories/index.html b/public/categories/index.html
new file mode 100644
index 0000000..f545f4b
--- /dev/null
+++ b/public/categories/index.html
@@ -0,0 +1,265 @@
+<!doctype html><html lang=en><head><meta charset=utf-8><meta content="width=device-width,initial-scale=1.0" name=viewport><title>
+Categories - Venkata Rao Dechiraju
+</title><meta content="made by a actual human" name=description><link href=https://veradec.xyz/categories/ rel=canonical><link href=https://veradec.xyz/favicon/favicon.ico rel=icon type=image/x-icon><link href=https://veradec.xyz/favicon/favicon-16x16.png rel=icon sizes=16x16 type=image/png><link href=https://veradec.xyz/favicon/favicon-32x32.png rel=icon sizes=32x32 type=image/png><link href=https://veradec.xyz/favicon/apple-touch-icon.png rel=apple-touch-icon sizes=180x180><link href=https://veradec.xyz/favicon/site.webmanifest rel=manifest><link as=style href=https://veradec.xyz/style.css rel=preload><link href=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css rel=stylesheet><script defer src=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js></script><script onload="renderMathInElement(document.body, {
+ delimiters: [
+ {left: '$$', right: '$$', display: true},
+ {left: '$', right: '$', display: false}
+ ]
+ });" defer src=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/contrib/auto-render.min.js></script><meta content="blog, tech, programming" name=keywords><meta content="Venkata Rao Dechiraju" name=author><meta content="index, follow" name=robots><meta content=#1e3a8a name=theme-color><meta content=website property=og:type><meta content=https://veradec.xyz/categories/ property=og:url><meta content="Venkata Rao Dechiraju" property=og:title><meta content="made by a actual human" property=og:description><meta content="Venkata Rao Dechiraju" property=og:site_name><meta content=https://veradec.xyz/static/banner.png property=og:image><meta content=summary_large_image name=twitter:card><meta content="Venkata Rao Dechiraju" name=twitter:title><meta content="made by a actual human" name=twitter:description><meta content=https://veradec.xyz/static/banner.png name=twitter:image><script type=application/ld+json>
+ {
+ "@context": "https://schema.org",
+ "@type": "WebSite",
+ "name": "Venkata Rao Dechiraju",
+ "url": "https:&#x2F;&#x2F;veradec.xyz&#x2F;",
+ "description": "made by a actual human"
+
+ ,"author": {
+ "@type": "Person",
+ "name": "Venkata Rao Dechiraju"
+
+ ,"url": "https:&#x2F;&#x2F;verade.xyz"
+
+ }
+
+ }
+ </script><link title="atom feed for Venkata Rao Dechiraju" href=https://veradec.xyz/atom.xml rel=alternate type=application/atom+xml><link title="rss feed for Venkata Rao Dechiraju" href=https://veradec.xyz/rss.xml rel=alternate type=application/rss+xml><link href=https://veradec.xyz/style.css rel=stylesheet><body><div class=background-container><img alt class=background-image src=Raja_Ravi_Varma,_Sakunthala_Pathralekhan.jpg></div><div aria-label="Reading progress" class=reading-progress id=reading-progress role=progressbar></div><a class=skip-to-content href=#content>skip to content</a><div class=wrap><header><a href=https://veradec.xyz/ id=home-link> <span aria-hidden=true id=back-icon> <svg viewbox="0 0 24 24" fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2><polyline points="15 18 9 12 15 6"></polyline></svg> </span> <span id=back-text>back</span> </a></header><div id=content><div class=hero><h1>Categories</h1><p class=hero-description>blog categories</div><div class=taxonomy-grid><a class=taxonomy-item href=https://veradec.xyz/categories/quality-of-life/> <h3>quality of life</h3> <span class=count>1 post</span> </a></div></div><div class=bottom-menu><p><a href=/posts>posts</a> <a href=/about>about</a> <a href=https://github.com/veradec>github</a> <a href=/authors>authors</a> <a href=/tags>tags</a> <a href=/categories>categories</a></div><button aria-label="Scroll to top" id=scroll-to-top><svg viewbox="0 0 24 24" aria-hidden=true fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2><polyline points="18 15 12 9 6 15"></polyline></svg></button><footer><div class=sam-footer>Built using Zola & Prism theme</div></footer></div><script>'use strict';
+
+(function() {
+ const SVG_ICONS = {
+ copy: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>',
+ check: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><polyline points="20 6 9 17 4 12"></polyline></svg>',
+ error: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>'
+ };
+
+ function debounce(func, wait) {
+ let timeout;
+ return function executedFunction(...args) {
+ clearTimeout(timeout);
+ timeout = setTimeout(() => func(...args), wait);
+ };
+ }
+
+ function initNavigation() {
+ try {
+ const homeLink = document.getElementById('home-link');
+ const backIcon = document.getElementById('back-icon');
+ const backText = document.getElementById('back-text');
+
+ if (!homeLink) return;
+
+ const homeText = 'back';
+ const isHomePage = window.location.pathname === '/' || window.location.pathname === '/index.html';
+
+ if (backIcon && isHomePage) {
+ backIcon.style.display = 'none';
+ }
+
+ if (backText) {
+ backText.textContent = homeText;
+ }
+
+ homeLink.setAttribute('aria-label', `Go to ${homeText.toLowerCase()} page`);
+ } catch (error) {
+ console.error('Navigation init failed:', error);
+ }
+ }
+
+ function initScrollToTop() {
+ try {
+ const scrollToTopBtn = document.getElementById('scroll-to-top');
+ if (!scrollToTopBtn) return;
+
+ const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
+
+ const toggleVisibility = debounce(() => {
+ if (window.scrollY > 300) {
+ scrollToTopBtn.classList.add('visible');
+ } else {
+ scrollToTopBtn.classList.remove('visible');
+ }
+ }, 100);
+
+ window.addEventListener('scroll', toggleVisibility, { passive: true });
+ toggleVisibility();
+
+ scrollToTopBtn.addEventListener('click', () => {
+ window.scrollTo({
+ top: 0,
+ behavior: prefersReducedMotion ? 'auto' : 'smooth'
+ });
+ });
+ } catch (error) {
+ console.error('Scroll to top init failed:', error);
+ }
+ }
+
+
+ function initCopyCodeButtons() {
+ try {
+ const codeBlocks = document.querySelectorAll('pre code');
+
+ codeBlocks.forEach((codeBlock) => {
+ const pre = codeBlock.parentElement;
+
+ const wrapper = document.createElement('div');
+ wrapper.className = 'code-block-wrapper';
+ pre.parentNode.insertBefore(wrapper, pre);
+ wrapper.appendChild(pre);
+
+ const copyButton = document.createElement('button');
+ copyButton.className = 'copy-code-button';
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ copyButton.setAttribute('title', 'Copy code');
+
+ wrapper.appendChild(copyButton);
+
+ copyButton.addEventListener('click', async () => {
+ const code = codeBlock.textContent;
+
+ try {
+ if (navigator.clipboard && window.isSecureContext) {
+ await navigator.clipboard.writeText(code);
+ } else {
+ const textArea = document.createElement('textarea');
+ textArea.value = code;
+ textArea.style.position = 'fixed';
+ textArea.style.left = '-999999px';
+ document.body.appendChild(textArea);
+ textArea.select();
+ document.execCommand('copy');
+ document.body.removeChild(textArea);
+ }
+
+ copyButton.innerHTML = SVG_ICONS.check;
+ copyButton.classList.add('copied');
+ copyButton.setAttribute('aria-label', 'Code copied');
+
+ setTimeout(() => {
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.classList.remove('copied');
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ }, 2000);
+ } catch (err) {
+ console.error('Failed to copy code:', err);
+
+ copyButton.innerHTML = SVG_ICONS.error;
+ copyButton.classList.add('error');
+ copyButton.setAttribute('aria-label', 'Copy failed');
+
+ setTimeout(() => {
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.classList.remove('error');
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ }, 2000);
+ }
+ });
+ });
+ } catch (error) {
+ console.error('Copy code buttons init failed:', error);
+ }
+ }
+
+
+
+ function initSmoothScroll() {
+ try {
+ const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
+ if (prefersReducedMotion) return;
+
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
+ anchor.addEventListener('click', function (e) {
+ const href = this.getAttribute('href');
+ if (href === '#' || href.length <= 1) return;
+
+ e.preventDefault();
+ const target = document.querySelector(href);
+
+ if (target) {
+ const offset = 80;
+ const targetPosition = target.getBoundingClientRect().top + window.pageYOffset - offset;
+
+ window.scrollTo({
+ top: targetPosition,
+ behavior: 'smooth'
+ });
+
+ if (window.history.pushState) {
+ window.history.pushState(null, null, href);
+ }
+
+ if (!target.hasAttribute('tabindex')) {
+ target.setAttribute('tabindex', '-1');
+ }
+ target.focus({ preventScroll: true });
+ }
+ });
+ });
+ } catch (error) {
+ console.error('Smooth scroll init failed:', error);
+ }
+ }
+
+
+
+ function initReadingProgress() {
+ try {
+ const progressBar = document.getElementById('reading-progress');
+ if (!progressBar) return;
+
+ const updateProgressBar = debounce(() => {
+ const winScroll = document.body.scrollTop || document.documentElement.scrollTop;
+ const height = document.documentElement.scrollHeight - document.documentElement.clientHeight;
+ const scrolled = height > 0 ? (winScroll / height) * 100 : 0;
+ progressBar.style.width = scrolled + '%';
+ }, 16);
+
+ window.addEventListener('scroll', updateProgressBar, { passive: true });
+ updateProgressBar();
+ } catch (error) {
+ console.error('Reading progress init failed:', error);
+ }
+ }
+
+
+ function initPageLoadingState() {
+ try {
+ document.addEventListener('click', (e) => {
+ const link = e.target.closest('a[href^="/"], a[href^="https:&#x2F;&#x2F;veradec.xyz&#x2F;"]');
+ if (link && !link.target && !link.getAttribute('download')) {
+ document.body.classList.add('page-loading');
+ }
+ });
+
+ window.addEventListener('pageshow', () => {
+ document.body.classList.remove('page-loading');
+ });
+ } catch (error) {
+ console.error('Page loading state init failed:', error);
+ }
+ }
+
+ function init() {
+ initNavigation();
+ initScrollToTop();
+ initPageLoadingState();
+
+
+ initCopyCodeButtons();
+
+
+
+ initSmoothScroll();
+
+
+
+ initReadingProgress();
+
+ }
+
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', init);
+ } else {
+ init();
+ }
+})();</script> \ No newline at end of file
diff --git a/public/categories/quality-of-life/atom.xml b/public/categories/quality-of-life/atom.xml
new file mode 100644
index 0000000..550cd9e
--- /dev/null
+++ b/public/categories/quality-of-life/atom.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
+ <title>Venkata Rao Dechiraju - quality of life</title>
+ <subtitle>made by a actual human</subtitle>
+ <link rel="self" type="application/atom+xml" href="https://veradec.xyz/categories/quality-of-life/atom.xml"/>
+ <link rel="alternate" type="text/html" href="https://veradec.xyz/"/>
+ <generator uri="https://www.getzola.org/">Zola</generator>
+ <updated>2026-05-24T00:00:00+00:00</updated>
+ <id>https://veradec.xyz/categories/quality-of-life/atom.xml</id>
+ <entry xml:lang="en">
+ <title>Hello, World</title>
+ <published>2026-05-24T00:00:00+00:00</published>
+ <updated>2026-05-24T00:00:00+00:00</updated>
+
+ <author>
+ <name>
+
+ Unknown
+
+ </name>
+ </author>
+
+ <link rel="alternate" type="text/html" href="https://veradec.xyz/posts/hello/"/>
+ <id>https://veradec.xyz/posts/hello/</id>
+
+ <content type="html" xml:base="https://veradec.xyz/posts/hello/">&lt;p&gt;a (hopefully) final revamp of the website, given it’s not very ugly to look at now, maybe i’ll start writing more here? i ain’t sure about that and yes, i’ll be copying all the content from the previous website here, so i’ll not lose what was&lt;&#x2F;p&gt;
+</content>
+
+ </entry>
+</feed>
diff --git a/public/categories/quality-of-life/index.html b/public/categories/quality-of-life/index.html
new file mode 100644
index 0000000..9a5fb14
--- /dev/null
+++ b/public/categories/quality-of-life/index.html
@@ -0,0 +1,265 @@
+<!doctype html><html lang=en><head><meta charset=utf-8><meta content="width=device-width,initial-scale=1.0" name=viewport><title>
+quality of life - Categories - Venkata Rao Dechiraju
+</title><meta content="made by a actual human" name=description><link href=https://veradec.xyz/categories/quality-of-life/ rel=canonical><link href=https://veradec.xyz/favicon/favicon.ico rel=icon type=image/x-icon><link href=https://veradec.xyz/favicon/favicon-16x16.png rel=icon sizes=16x16 type=image/png><link href=https://veradec.xyz/favicon/favicon-32x32.png rel=icon sizes=32x32 type=image/png><link href=https://veradec.xyz/favicon/apple-touch-icon.png rel=apple-touch-icon sizes=180x180><link href=https://veradec.xyz/favicon/site.webmanifest rel=manifest><link as=style href=https://veradec.xyz/style.css rel=preload><link href=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css rel=stylesheet><script defer src=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js></script><script onload="renderMathInElement(document.body, {
+ delimiters: [
+ {left: '$$', right: '$$', display: true},
+ {left: '$', right: '$', display: false}
+ ]
+ });" defer src=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/contrib/auto-render.min.js></script><meta content="blog, tech, programming" name=keywords><meta content="Venkata Rao Dechiraju" name=author><meta content="index, follow" name=robots><meta content=#1e3a8a name=theme-color><meta content=website property=og:type><meta content=https://veradec.xyz/categories/quality-of-life/ property=og:url><meta content="Venkata Rao Dechiraju" property=og:title><meta content="made by a actual human" property=og:description><meta content="Venkata Rao Dechiraju" property=og:site_name><meta content=https://veradec.xyz/static/banner.png property=og:image><meta content=summary_large_image name=twitter:card><meta content="Venkata Rao Dechiraju" name=twitter:title><meta content="made by a actual human" name=twitter:description><meta content=https://veradec.xyz/static/banner.png name=twitter:image><script type=application/ld+json>
+ {
+ "@context": "https://schema.org",
+ "@type": "WebSite",
+ "name": "Venkata Rao Dechiraju",
+ "url": "https:&#x2F;&#x2F;veradec.xyz&#x2F;",
+ "description": "made by a actual human"
+
+ ,"author": {
+ "@type": "Person",
+ "name": "Venkata Rao Dechiraju"
+
+ ,"url": "https:&#x2F;&#x2F;verade.xyz"
+
+ }
+
+ }
+ </script><link title="atom feed for Venkata Rao Dechiraju" href=https://veradec.xyz/atom.xml rel=alternate type=application/atom+xml><link title="rss feed for Venkata Rao Dechiraju" href=https://veradec.xyz/rss.xml rel=alternate type=application/rss+xml><link href=https://veradec.xyz/style.css rel=stylesheet><body><div class=background-container><img alt class=background-image src=Raja_Ravi_Varma,_Sakunthala_Pathralekhan.jpg></div><div aria-label="Reading progress" class=reading-progress id=reading-progress role=progressbar></div><a class=skip-to-content href=#content>skip to content</a><div class=wrap><header><a href=https://veradec.xyz/ id=home-link> <span aria-hidden=true id=back-icon> <svg viewbox="0 0 24 24" fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2><polyline points="15 18 9 12 15 6"></polyline></svg> </span> <span id=back-text>back</span> </a></header><div id=content><div class=hero><h1>quality of life</h1><p class=hero-description>1 Post In Categories</div><div class=post-grid><a class=card href=https://veradec.xyz/posts/hello/> <h3>Hello, World</h3> <p>a (hopefully) final revamp of the website, given it’s not very ugly to look at now, maybe i’ll start writing more here? i ain’t sure about that and ye…</p> <div class=meta><span> Sun May 24, 2026 </span><span>1 min read</span></div> </a></div></div><div class=bottom-menu><p><a href=/posts>posts</a> <a href=/about>about</a> <a href=https://github.com/veradec>github</a> <a href=/authors>authors</a> <a href=/tags>tags</a> <a href=/categories>categories</a></div><button aria-label="Scroll to top" id=scroll-to-top><svg viewbox="0 0 24 24" aria-hidden=true fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2><polyline points="18 15 12 9 6 15"></polyline></svg></button><footer><div class=sam-footer>Built using Zola & Prism theme</div></footer></div><script>'use strict';
+
+(function() {
+ const SVG_ICONS = {
+ copy: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>',
+ check: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><polyline points="20 6 9 17 4 12"></polyline></svg>',
+ error: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>'
+ };
+
+ function debounce(func, wait) {
+ let timeout;
+ return function executedFunction(...args) {
+ clearTimeout(timeout);
+ timeout = setTimeout(() => func(...args), wait);
+ };
+ }
+
+ function initNavigation() {
+ try {
+ const homeLink = document.getElementById('home-link');
+ const backIcon = document.getElementById('back-icon');
+ const backText = document.getElementById('back-text');
+
+ if (!homeLink) return;
+
+ const homeText = 'back';
+ const isHomePage = window.location.pathname === '/' || window.location.pathname === '/index.html';
+
+ if (backIcon && isHomePage) {
+ backIcon.style.display = 'none';
+ }
+
+ if (backText) {
+ backText.textContent = homeText;
+ }
+
+ homeLink.setAttribute('aria-label', `Go to ${homeText.toLowerCase()} page`);
+ } catch (error) {
+ console.error('Navigation init failed:', error);
+ }
+ }
+
+ function initScrollToTop() {
+ try {
+ const scrollToTopBtn = document.getElementById('scroll-to-top');
+ if (!scrollToTopBtn) return;
+
+ const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
+
+ const toggleVisibility = debounce(() => {
+ if (window.scrollY > 300) {
+ scrollToTopBtn.classList.add('visible');
+ } else {
+ scrollToTopBtn.classList.remove('visible');
+ }
+ }, 100);
+
+ window.addEventListener('scroll', toggleVisibility, { passive: true });
+ toggleVisibility();
+
+ scrollToTopBtn.addEventListener('click', () => {
+ window.scrollTo({
+ top: 0,
+ behavior: prefersReducedMotion ? 'auto' : 'smooth'
+ });
+ });
+ } catch (error) {
+ console.error('Scroll to top init failed:', error);
+ }
+ }
+
+
+ function initCopyCodeButtons() {
+ try {
+ const codeBlocks = document.querySelectorAll('pre code');
+
+ codeBlocks.forEach((codeBlock) => {
+ const pre = codeBlock.parentElement;
+
+ const wrapper = document.createElement('div');
+ wrapper.className = 'code-block-wrapper';
+ pre.parentNode.insertBefore(wrapper, pre);
+ wrapper.appendChild(pre);
+
+ const copyButton = document.createElement('button');
+ copyButton.className = 'copy-code-button';
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ copyButton.setAttribute('title', 'Copy code');
+
+ wrapper.appendChild(copyButton);
+
+ copyButton.addEventListener('click', async () => {
+ const code = codeBlock.textContent;
+
+ try {
+ if (navigator.clipboard && window.isSecureContext) {
+ await navigator.clipboard.writeText(code);
+ } else {
+ const textArea = document.createElement('textarea');
+ textArea.value = code;
+ textArea.style.position = 'fixed';
+ textArea.style.left = '-999999px';
+ document.body.appendChild(textArea);
+ textArea.select();
+ document.execCommand('copy');
+ document.body.removeChild(textArea);
+ }
+
+ copyButton.innerHTML = SVG_ICONS.check;
+ copyButton.classList.add('copied');
+ copyButton.setAttribute('aria-label', 'Code copied');
+
+ setTimeout(() => {
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.classList.remove('copied');
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ }, 2000);
+ } catch (err) {
+ console.error('Failed to copy code:', err);
+
+ copyButton.innerHTML = SVG_ICONS.error;
+ copyButton.classList.add('error');
+ copyButton.setAttribute('aria-label', 'Copy failed');
+
+ setTimeout(() => {
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.classList.remove('error');
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ }, 2000);
+ }
+ });
+ });
+ } catch (error) {
+ console.error('Copy code buttons init failed:', error);
+ }
+ }
+
+
+
+ function initSmoothScroll() {
+ try {
+ const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
+ if (prefersReducedMotion) return;
+
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
+ anchor.addEventListener('click', function (e) {
+ const href = this.getAttribute('href');
+ if (href === '#' || href.length <= 1) return;
+
+ e.preventDefault();
+ const target = document.querySelector(href);
+
+ if (target) {
+ const offset = 80;
+ const targetPosition = target.getBoundingClientRect().top + window.pageYOffset - offset;
+
+ window.scrollTo({
+ top: targetPosition,
+ behavior: 'smooth'
+ });
+
+ if (window.history.pushState) {
+ window.history.pushState(null, null, href);
+ }
+
+ if (!target.hasAttribute('tabindex')) {
+ target.setAttribute('tabindex', '-1');
+ }
+ target.focus({ preventScroll: true });
+ }
+ });
+ });
+ } catch (error) {
+ console.error('Smooth scroll init failed:', error);
+ }
+ }
+
+
+
+ function initReadingProgress() {
+ try {
+ const progressBar = document.getElementById('reading-progress');
+ if (!progressBar) return;
+
+ const updateProgressBar = debounce(() => {
+ const winScroll = document.body.scrollTop || document.documentElement.scrollTop;
+ const height = document.documentElement.scrollHeight - document.documentElement.clientHeight;
+ const scrolled = height > 0 ? (winScroll / height) * 100 : 0;
+ progressBar.style.width = scrolled + '%';
+ }, 16);
+
+ window.addEventListener('scroll', updateProgressBar, { passive: true });
+ updateProgressBar();
+ } catch (error) {
+ console.error('Reading progress init failed:', error);
+ }
+ }
+
+
+ function initPageLoadingState() {
+ try {
+ document.addEventListener('click', (e) => {
+ const link = e.target.closest('a[href^="/"], a[href^="https:&#x2F;&#x2F;veradec.xyz&#x2F;"]');
+ if (link && !link.target && !link.getAttribute('download')) {
+ document.body.classList.add('page-loading');
+ }
+ });
+
+ window.addEventListener('pageshow', () => {
+ document.body.classList.remove('page-loading');
+ });
+ } catch (error) {
+ console.error('Page loading state init failed:', error);
+ }
+ }
+
+ function init() {
+ initNavigation();
+ initScrollToTop();
+ initPageLoadingState();
+
+
+ initCopyCodeButtons();
+
+
+
+ initSmoothScroll();
+
+
+
+ initReadingProgress();
+
+ }
+
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', init);
+ } else {
+ init();
+ }
+})();</script> \ No newline at end of file
diff --git a/public/categories/quality-of-life/rss.xml b/public/categories/quality-of-life/rss.xml
new file mode 100644
index 0000000..b62eae1
--- /dev/null
+++ b/public/categories/quality-of-life/rss.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
+ <channel>
+ <title>Venkata Rao Dechiraju - quality of life</title>
+ <link>https://veradec.xyz/</link>
+ <description>made by a actual human</description>
+ <generator>Zola</generator>
+ <language>en</language>
+ <atom:link href="https://veradec.xyz/categories/quality-of-life/rss.xml" rel="self" type="application/rss+xml"/>
+ <lastBuildDate>Sun, 24 May 2026 00:00:00 +0000</lastBuildDate>
+ <item>
+ <title>Hello, World</title>
+ <pubDate>Sun, 24 May 2026 00:00:00 +0000</pubDate>
+ <author>Unknown</author>
+ <link>https://veradec.xyz/posts/hello/</link>
+ <guid>https://veradec.xyz/posts/hello/</guid>
+ <description xml:base="https://veradec.xyz/posts/hello/">&lt;p&gt;a (hopefully) final revamp of the website, given it’s not very ugly to look at now, maybe i’ll start writing more here? i ain’t sure about that and yes, i’ll be copying all the content from the previous website here, so i’ll not lose what was&lt;&#x2F;p&gt;
+</description>
+ </item>
+ </channel>
+</rss>
diff --git a/public/dq_sketch.png b/public/dq_sketch.png
new file mode 100644
index 0000000..563ca63
--- /dev/null
+++ b/public/dq_sketch.png
Binary files differ
diff --git a/public/index.html b/public/index.html
new file mode 100644
index 0000000..80a8f2e
--- /dev/null
+++ b/public/index.html
@@ -0,0 +1,23 @@
+<!doctype html><html lang=en><head><meta charset=utf-8><meta content="width=device-width,initial-scale=1.0" name=viewport><title>Venkata Rao Dechiraju</title><meta content="made by a actual human" name=description><link href=https://veradec.xyz/ rel=canonical><link href=https://veradec.xyz/favicon/favicon.ico rel=icon type=image/x-icon><link href=https://veradec.xyz/favicon/favicon-16x16.png rel=icon sizes=16x16 type=image/png><link href=https://veradec.xyz/favicon/favicon-32x32.png rel=icon sizes=32x32 type=image/png><link href=https://veradec.xyz/favicon/apple-touch-icon.png rel=apple-touch-icon sizes=180x180><link href=https://veradec.xyz/favicon/site.webmanifest rel=manifest><link as=style href=https://veradec.xyz/style.css rel=preload><link href=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css rel=stylesheet><script defer src=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js></script><script onload="renderMathInElement(document.body, {
+ delimiters: [
+ {left: '$$', right: '$$', display: true},
+ {left: '$', right: '$', display: false}
+ ]
+ });" defer src=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/contrib/auto-render.min.js></script><meta content="blog, tech, programming" name=keywords><meta content="Venkata Rao Dechiraju" name=author><meta content="index, follow" name=robots><meta content=#1e3a8a name=theme-color><meta content=website property=og:type><meta content=https://veradec.xyz/ property=og:url><meta content="Venkata Rao Dechiraju" property=og:title><meta content="made by a actual human" property=og:description><meta content="Venkata Rao Dechiraju" property=og:site_name><meta content=https://veradec.xyz/static/banner.png property=og:image><meta content=summary_large_image name=twitter:card><meta content="Venkata Rao Dechiraju" name=twitter:title><meta content="made by a actual human" name=twitter:description><meta content=https://veradec.xyz/static/banner.png name=twitter:image><script type=application/ld+json>
+ {
+ "@context": "https://schema.org",
+ "@type": "WebSite",
+ "name": "Venkata Rao Dechiraju",
+ "url": "https:&#x2F;&#x2F;veradec.xyz&#x2F;",
+ "description": "made by a actual human"
+
+ ,"author": {
+ "@type": "Person",
+ "name": "Venkata Rao Dechiraju"
+
+ ,"url": "https:&#x2F;&#x2F;verade.xyz"
+
+ }
+
+ }
+ </script><link title="atom feed for Venkata Rao Dechiraju" href=https://veradec.xyz/atom.xml rel=alternate type=application/atom+xml><link title="rss feed for Venkata Rao Dechiraju" href=https://veradec.xyz/rss.xml rel=alternate type=application/rss+xml><link href=https://veradec.xyz/style.css rel=stylesheet><body><div class=background-container><img alt class=background-image src=Raja_Ravi_Varma,_Sakunthala_Pathralekhan.jpg></div><div aria-label="Reading progress" class=reading-progress id=reading-progress role=progressbar></div><div class=wrap><div id=splash><h1 id=title>Venkata Rao Dechiraju</h1><p class=site-description>made by a actual human<div class=tile-grid><a class=tile href=/posts> <span class=tile-title>posts</span> <span class=tile-desc></span> </a><a class=tile href=/about> <span class=tile-title>about</span> <span class=tile-desc></span> </a><a class=tile href=https://github.com/veradec> <span class=tile-title>github</span> <span class=tile-desc></span> </a><a class=tile href=/authors> <span class=tile-title>authors</span> <span class=tile-desc></span> </a><a class=tile href=/tags> <span class=tile-title>tags</span> <span class=tile-desc></span> </a><a class=tile href=/categories> <span class=tile-title>categories</span> <span class=tile-desc></span> </a></div></div></div> \ No newline at end of file
diff --git a/public/posts/drum-sequencer/index.html b/public/posts/drum-sequencer/index.html
new file mode 100644
index 0000000..385c1cd
--- /dev/null
+++ b/public/posts/drum-sequencer/index.html
@@ -0,0 +1,348 @@
+<!doctype html><html lang=en><head><meta charset=utf-8><meta content="width=device-width,initial-scale=1.0" name=viewport><title>Making a Drum Sequencer - Venkata Rao Dechiraju</title><meta content="I always looked at Teenage Engineering and thought it was pretty cool and given I have a sem break right now, I thought I can make one too. shouldn’t be hard ri…" name=description><link href=https://veradec.xyz/posts/drum-sequencer/ rel=canonical><link href=https://veradec.xyz/favicon/favicon.ico rel=icon type=image/x-icon><link href=https://veradec.xyz/favicon/favicon-16x16.png rel=icon sizes=16x16 type=image/png><link href=https://veradec.xyz/favicon/favicon-32x32.png rel=icon sizes=32x32 type=image/png><link href=https://veradec.xyz/favicon/apple-touch-icon.png rel=apple-touch-icon sizes=180x180><link href=https://veradec.xyz/favicon/site.webmanifest rel=manifest><link as=style href=https://veradec.xyz/style.css rel=preload><link href=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css rel=stylesheet><script defer src=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js></script><script onload="renderMathInElement(document.body, {
+ delimiters: [
+ {left: '$$', right: '$$', display: true},
+ {left: '$', right: '$', display: false}
+ ]
+ });" defer src=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/contrib/auto-render.min.js></script><meta content="blog, tech, programming" name=keywords><meta content="Venkata Rao Dechiraju" name=author><meta content="index, follow" name=robots><meta content=#1e3a8a name=theme-color><meta content=article property=og:type><meta content=https://veradec.xyz/posts/drum-sequencer/ property=og:url><meta content="Making a Drum Sequencer" property=og:title><meta content="I always looked at Teenage Engineering and thought it was pretty cool and given I have a sem break right now, I thought I can make one too. shouldn’t be hard ri…" property=og:description><meta content="Venkata Rao Dechiraju" property=og:site_name><meta content=https://veradec.xyz/static/banner.png property=og:image><meta content=summary_large_image name=twitter:card><meta content="Making a Drum Sequencer" name=twitter:title><meta content="I always looked at Teenage Engineering and thought it was pretty cool and given I have a sem break right now, I thought I can make one too. shouldn’t be hard ri…" name=twitter:description><meta content=https://veradec.xyz/static/banner.png name=twitter:image><script type=application/ld+json>
+ {
+ "@context": "https://schema.org",
+ "@type": "WebSite",
+ "name": "Venkata Rao Dechiraju",
+ "url": "https:&#x2F;&#x2F;veradec.xyz&#x2F;",
+ "description": "made by a actual human"
+
+ ,"author": {
+ "@type": "Person",
+ "name": "Venkata Rao Dechiraju"
+
+ ,"url": "https:&#x2F;&#x2F;verade.xyz"
+
+ }
+
+ }
+ </script><link title="atom feed for Venkata Rao Dechiraju" href=https://veradec.xyz/atom.xml rel=alternate type=application/atom+xml><link title="rss feed for Venkata Rao Dechiraju" href=https://veradec.xyz/rss.xml rel=alternate type=application/rss+xml><link href=https://veradec.xyz/style.css rel=stylesheet><script type=application/ld+json>
+{
+ "@context": "https://schema.org",
+ "@type": "BlogPosting",
+ "headline": "Making a Drum Sequencer",
+ "url": "https:&#x2F;&#x2F;veradec.xyz&#x2F;posts&#x2F;drum-sequencer&#x2F;"
+
+ ,"datePublished": "2026-05-27T00:00:00Z"
+
+
+
+ ,"author": {
+ "@type": "Person",
+ "name": "Venkata Rao Dechiraju"
+
+ ,"url": "https:&#x2F;&#x2F;verade.xyz"
+
+ }
+
+}
+</script><body><div class=background-container><img alt class=background-image src=Raja_Ravi_Varma,_Sakunthala_Pathralekhan.jpg></div><div aria-label="Reading progress" class=reading-progress id=reading-progress role=progressbar></div><a class=skip-to-content href=#content>skip to content</a><div class=wrap><header><a href=https://veradec.xyz/ id=home-link> <span aria-hidden=true id=back-icon> <svg viewbox="0 0 24 24" fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2><polyline points="15 18 9 12 15 6"></polyline></svg> </span> <span id=back-text>back</span> </a></header><div id=content><div class=hero><h1>Making a Drum Sequencer</h1><div class=hero-meta><span> Wed May 27, 2026 </span><span>·</span><span>2 min read</span><span>·</span><span>375 words</span></div></div><nav aria-label="Table of contents" class=table-of-contents><div class=toc-header><span class=toc-title>Contents</span></div><ul class=toc-list><li class=toc-item><a class=toc-link data-target=the-design href=#the-design>The Design</a><li class=toc-item><a class=toc-link data-target=the-prototyping href=#the-prototyping>The Prototyping</a></ul></nav><script>'use strict';
+
+ (function() {
+ const toc = document.querySelector('.table-of-contents');
+ if (!toc) return;
+
+ function initTableOfContents() {
+ const links = document.querySelectorAll('.toc-link');
+
+ if (!links.length) return;
+
+ requestAnimationFrame(() => {
+ toc.classList.add('visible');
+ });
+
+ const headingMap = new Map();
+ let observerInstance = null;
+
+ links.forEach(link => {
+ const targetId = link.dataset.target;
+ const heading = document.getElementById(targetId);
+ if (heading) {
+ headingMap.set(targetId, { link, heading });
+ }
+ });
+
+ const observerOptions = {
+ rootMargin: '-40% 0px -50% 0px',
+ threshold: 0
+ };
+
+ observerInstance = new IntersectionObserver((entries) => {
+ entries.forEach(entry => {
+ if (entry.isIntersecting) {
+ links.forEach(link => link.classList.remove('toc-link--active'));
+
+ const targetId = entry.target.id;
+ const item = headingMap.get(targetId);
+ if (item) {
+ item.link.classList.add('toc-link--active');
+ }
+ }
+ });
+ }, observerOptions);
+
+ headingMap.forEach(({ heading }) => {
+ observerInstance.observe(heading);
+ });
+
+ const cleanup = () => {
+ if (observerInstance) {
+ observerInstance.disconnect();
+ observerInstance = null;
+ }
+ };
+
+ window.addEventListener('beforeunload', cleanup);
+ window.addEventListener('pagehide', cleanup);
+ }
+
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', initTableOfContents);
+ } else {
+ initTableOfContents();
+ }
+ })();</script><article><p>I always looked at Teenage Engineering and thought it was pretty cool and given I have a sem break right now, I thought I can make one too. shouldn’t be hard right?<br> and after i started composing music, Techno was a genre I always wanted to try but i couldn’t, and then an idea popped up, maybe I can create a suite of instruments<blockquote><p>a Synth</blockquote><blockquote><p>a Drum Sequencer</blockquote><blockquote><p>a Vocoder</blockquote><p>and start making techno on them? Sounds nice innit?<br> <br><h1 id=the-design>The Design</h1><p>I wanted the design to look a little retro 80’s esque, and I wanted it to be little simpler (because I will have suite of appliances to generate different sounds, so would rather have one that is simple and does it job well) and I drew a few sketches and ended with something that looks very nice<div style=justify-content:center;display:flex><img alt="Drum Sequencer Rough Sketch" src=/dq_sketch.png style=width:50%;transform:rotate(-90deg)></div><h1 id=the-prototyping>The Prototyping</h1><p>with the <em>beautifully</em> crafted picture in hand, now the plan is to prototype<p>I needed around 16 Buttons – which I am going to pull of some keyboards i archived (They paid off innit?).<p>I might need to get some more potentiometers and find a way to make a matrix the LEDs and Buttons, Once That is done, Getting the whole thing shouldn’t be that tough (atleast I hope it isn’t)</article></div><div class=bottom-menu><p><a href=/posts>posts</a> <a href=/about>about</a> <a href=https://github.com/veradec>github</a> <a href=/authors>authors</a> <a href=/tags>tags</a> <a href=/categories>categories</a></div><button aria-label="Scroll to top" id=scroll-to-top><svg viewbox="0 0 24 24" aria-hidden=true fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2><polyline points="18 15 12 9 6 15"></polyline></svg></button><footer><div class=sam-footer>Built using Zola & Prism theme</div></footer></div><script>'use strict';
+
+(function() {
+ const SVG_ICONS = {
+ copy: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>',
+ check: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><polyline points="20 6 9 17 4 12"></polyline></svg>',
+ error: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>'
+ };
+
+ function debounce(func, wait) {
+ let timeout;
+ return function executedFunction(...args) {
+ clearTimeout(timeout);
+ timeout = setTimeout(() => func(...args), wait);
+ };
+ }
+
+ function initNavigation() {
+ try {
+ const homeLink = document.getElementById('home-link');
+ const backIcon = document.getElementById('back-icon');
+ const backText = document.getElementById('back-text');
+
+ if (!homeLink) return;
+
+ const homeText = 'back';
+ const isHomePage = window.location.pathname === '/' || window.location.pathname === '/index.html';
+
+ if (backIcon && isHomePage) {
+ backIcon.style.display = 'none';
+ }
+
+ if (backText) {
+ backText.textContent = homeText;
+ }
+
+ homeLink.setAttribute('aria-label', `Go to ${homeText.toLowerCase()} page`);
+ } catch (error) {
+ console.error('Navigation init failed:', error);
+ }
+ }
+
+ function initScrollToTop() {
+ try {
+ const scrollToTopBtn = document.getElementById('scroll-to-top');
+ if (!scrollToTopBtn) return;
+
+ const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
+
+ const toggleVisibility = debounce(() => {
+ if (window.scrollY > 300) {
+ scrollToTopBtn.classList.add('visible');
+ } else {
+ scrollToTopBtn.classList.remove('visible');
+ }
+ }, 100);
+
+ window.addEventListener('scroll', toggleVisibility, { passive: true });
+ toggleVisibility();
+
+ scrollToTopBtn.addEventListener('click', () => {
+ window.scrollTo({
+ top: 0,
+ behavior: prefersReducedMotion ? 'auto' : 'smooth'
+ });
+ });
+ } catch (error) {
+ console.error('Scroll to top init failed:', error);
+ }
+ }
+
+
+ function initCopyCodeButtons() {
+ try {
+ const codeBlocks = document.querySelectorAll('pre code');
+
+ codeBlocks.forEach((codeBlock) => {
+ const pre = codeBlock.parentElement;
+
+ const wrapper = document.createElement('div');
+ wrapper.className = 'code-block-wrapper';
+ pre.parentNode.insertBefore(wrapper, pre);
+ wrapper.appendChild(pre);
+
+ const copyButton = document.createElement('button');
+ copyButton.className = 'copy-code-button';
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ copyButton.setAttribute('title', 'Copy code');
+
+ wrapper.appendChild(copyButton);
+
+ copyButton.addEventListener('click', async () => {
+ const code = codeBlock.textContent;
+
+ try {
+ if (navigator.clipboard && window.isSecureContext) {
+ await navigator.clipboard.writeText(code);
+ } else {
+ const textArea = document.createElement('textarea');
+ textArea.value = code;
+ textArea.style.position = 'fixed';
+ textArea.style.left = '-999999px';
+ document.body.appendChild(textArea);
+ textArea.select();
+ document.execCommand('copy');
+ document.body.removeChild(textArea);
+ }
+
+ copyButton.innerHTML = SVG_ICONS.check;
+ copyButton.classList.add('copied');
+ copyButton.setAttribute('aria-label', 'Code copied');
+
+ setTimeout(() => {
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.classList.remove('copied');
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ }, 2000);
+ } catch (err) {
+ console.error('Failed to copy code:', err);
+
+ copyButton.innerHTML = SVG_ICONS.error;
+ copyButton.classList.add('error');
+ copyButton.setAttribute('aria-label', 'Copy failed');
+
+ setTimeout(() => {
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.classList.remove('error');
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ }, 2000);
+ }
+ });
+ });
+ } catch (error) {
+ console.error('Copy code buttons init failed:', error);
+ }
+ }
+
+
+
+ function initSmoothScroll() {
+ try {
+ const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
+ if (prefersReducedMotion) return;
+
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
+ anchor.addEventListener('click', function (e) {
+ const href = this.getAttribute('href');
+ if (href === '#' || href.length <= 1) return;
+
+ e.preventDefault();
+ const target = document.querySelector(href);
+
+ if (target) {
+ const offset = 80;
+ const targetPosition = target.getBoundingClientRect().top + window.pageYOffset - offset;
+
+ window.scrollTo({
+ top: targetPosition,
+ behavior: 'smooth'
+ });
+
+ if (window.history.pushState) {
+ window.history.pushState(null, null, href);
+ }
+
+ if (!target.hasAttribute('tabindex')) {
+ target.setAttribute('tabindex', '-1');
+ }
+ target.focus({ preventScroll: true });
+ }
+ });
+ });
+ } catch (error) {
+ console.error('Smooth scroll init failed:', error);
+ }
+ }
+
+
+
+ function initReadingProgress() {
+ try {
+ const progressBar = document.getElementById('reading-progress');
+ if (!progressBar) return;
+
+ const updateProgressBar = debounce(() => {
+ const winScroll = document.body.scrollTop || document.documentElement.scrollTop;
+ const height = document.documentElement.scrollHeight - document.documentElement.clientHeight;
+ const scrolled = height > 0 ? (winScroll / height) * 100 : 0;
+ progressBar.style.width = scrolled + '%';
+ }, 16);
+
+ window.addEventListener('scroll', updateProgressBar, { passive: true });
+ updateProgressBar();
+ } catch (error) {
+ console.error('Reading progress init failed:', error);
+ }
+ }
+
+
+ function initPageLoadingState() {
+ try {
+ document.addEventListener('click', (e) => {
+ const link = e.target.closest('a[href^="/"], a[href^="https:&#x2F;&#x2F;veradec.xyz&#x2F;"]');
+ if (link && !link.target && !link.getAttribute('download')) {
+ document.body.classList.add('page-loading');
+ }
+ });
+
+ window.addEventListener('pageshow', () => {
+ document.body.classList.remove('page-loading');
+ });
+ } catch (error) {
+ console.error('Page loading state init failed:', error);
+ }
+ }
+
+ function init() {
+ initNavigation();
+ initScrollToTop();
+ initPageLoadingState();
+
+
+ initCopyCodeButtons();
+
+
+
+ initSmoothScroll();
+
+
+
+ initReadingProgress();
+
+ }
+
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', init);
+ } else {
+ init();
+ }
+})();</script> \ No newline at end of file
diff --git a/public/posts/hello/index.html b/public/posts/hello/index.html
new file mode 100644
index 0000000..47a7bf5
--- /dev/null
+++ b/public/posts/hello/index.html
@@ -0,0 +1,283 @@
+<!doctype html><html lang=en><head><meta charset=utf-8><meta content="width=device-width,initial-scale=1.0" name=viewport><title>Hello, World - Venkata Rao Dechiraju</title><meta content="a (hopefully) final revamp of the website, given it’s not very ugly to look at now, maybe i’ll start writing more here? i ain’t sure about that and yes, i’ll be…" name=description><link href=https://veradec.xyz/posts/hello/ rel=canonical><link href=https://veradec.xyz/favicon/favicon.ico rel=icon type=image/x-icon><link href=https://veradec.xyz/favicon/favicon-16x16.png rel=icon sizes=16x16 type=image/png><link href=https://veradec.xyz/favicon/favicon-32x32.png rel=icon sizes=32x32 type=image/png><link href=https://veradec.xyz/favicon/apple-touch-icon.png rel=apple-touch-icon sizes=180x180><link href=https://veradec.xyz/favicon/site.webmanifest rel=manifest><link as=style href=https://veradec.xyz/style.css rel=preload><link href=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css rel=stylesheet><script defer src=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js></script><script onload="renderMathInElement(document.body, {
+ delimiters: [
+ {left: '$$', right: '$$', display: true},
+ {left: '$', right: '$', display: false}
+ ]
+ });" defer src=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/contrib/auto-render.min.js></script><meta content="blog, tech, programming" name=keywords><meta content="Venkata Rao Dechiraju" name=author><meta content="index, follow" name=robots><meta content=#1e3a8a name=theme-color><meta content=article property=og:type><meta content=https://veradec.xyz/posts/hello/ property=og:url><meta content="Hello, World" property=og:title><meta content="a (hopefully) final revamp of the website, given it’s not very ugly to look at now, maybe i’ll start writing more here? i ain’t sure about that and yes, i’ll be…" property=og:description><meta content="Venkata Rao Dechiraju" property=og:site_name><meta content=https://veradec.xyz/static/banner.png property=og:image><meta content=summary_large_image name=twitter:card><meta content="Hello, World" name=twitter:title><meta content="a (hopefully) final revamp of the website, given it’s not very ugly to look at now, maybe i’ll start writing more here? i ain’t sure about that and yes, i’ll be…" name=twitter:description><meta content=https://veradec.xyz/static/banner.png name=twitter:image><script type=application/ld+json>
+ {
+ "@context": "https://schema.org",
+ "@type": "WebSite",
+ "name": "Venkata Rao Dechiraju",
+ "url": "https:&#x2F;&#x2F;veradec.xyz&#x2F;",
+ "description": "made by a actual human"
+
+ ,"author": {
+ "@type": "Person",
+ "name": "Venkata Rao Dechiraju"
+
+ ,"url": "https:&#x2F;&#x2F;verade.xyz"
+
+ }
+
+ }
+ </script><link title="atom feed for Venkata Rao Dechiraju" href=https://veradec.xyz/atom.xml rel=alternate type=application/atom+xml><link title="rss feed for Venkata Rao Dechiraju" href=https://veradec.xyz/rss.xml rel=alternate type=application/rss+xml><link href=https://veradec.xyz/style.css rel=stylesheet><script type=application/ld+json>
+{
+ "@context": "https://schema.org",
+ "@type": "BlogPosting",
+ "headline": "Hello, World",
+ "url": "https:&#x2F;&#x2F;veradec.xyz&#x2F;posts&#x2F;hello&#x2F;"
+
+ ,"datePublished": "2026-05-24T00:00:00Z"
+
+
+
+ ,"author": {
+ "@type": "Person",
+ "name": "Venkata Rao Dechiraju"
+
+ ,"url": "https:&#x2F;&#x2F;verade.xyz"
+
+ }
+
+}
+</script><body><div class=background-container><img alt class=background-image src=Raja_Ravi_Varma,_Sakunthala_Pathralekhan.jpg></div><div aria-label="Reading progress" class=reading-progress id=reading-progress role=progressbar></div><a class=skip-to-content href=#content>skip to content</a><div class=wrap><header><a href=https://veradec.xyz/ id=home-link> <span aria-hidden=true id=back-icon> <svg viewbox="0 0 24 24" fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2><polyline points="15 18 9 12 15 6"></polyline></svg> </span> <span id=back-text>back</span> </a></header><div id=content><div class=hero><h1>Hello, World</h1><div class=hero-meta><span> Sun May 24, 2026 </span><span>·</span><span>1 min read</span><span>·</span><span>46 words</span></div><div class=authors-list>By <a class=author-link href=https://veradec.xyz/authors/venkata-rao-dechiraju/>Venkata Rao Dechiraju</a></div></div><article><p>a (hopefully) final revamp of the website, given it’s not very ugly to look at now, maybe i’ll start writing more here? i ain’t sure about that and yes, i’ll be copying all the content from the previous website here, so i’ll not lose what was</article><hr class=comments-divider></div><div class=bottom-menu><p><a href=/posts>posts</a> <a href=/about>about</a> <a href=https://github.com/veradec>github</a> <a href=/authors>authors</a> <a href=/tags>tags</a> <a href=/categories>categories</a></div><button aria-label="Scroll to top" id=scroll-to-top><svg viewbox="0 0 24 24" aria-hidden=true fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2><polyline points="18 15 12 9 6 15"></polyline></svg></button><footer><div class=sam-footer>Built using Zola & Prism theme</div></footer></div><script>'use strict';
+
+(function() {
+ const SVG_ICONS = {
+ copy: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>',
+ check: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><polyline points="20 6 9 17 4 12"></polyline></svg>',
+ error: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>'
+ };
+
+ function debounce(func, wait) {
+ let timeout;
+ return function executedFunction(...args) {
+ clearTimeout(timeout);
+ timeout = setTimeout(() => func(...args), wait);
+ };
+ }
+
+ function initNavigation() {
+ try {
+ const homeLink = document.getElementById('home-link');
+ const backIcon = document.getElementById('back-icon');
+ const backText = document.getElementById('back-text');
+
+ if (!homeLink) return;
+
+ const homeText = 'back';
+ const isHomePage = window.location.pathname === '/' || window.location.pathname === '/index.html';
+
+ if (backIcon && isHomePage) {
+ backIcon.style.display = 'none';
+ }
+
+ if (backText) {
+ backText.textContent = homeText;
+ }
+
+ homeLink.setAttribute('aria-label', `Go to ${homeText.toLowerCase()} page`);
+ } catch (error) {
+ console.error('Navigation init failed:', error);
+ }
+ }
+
+ function initScrollToTop() {
+ try {
+ const scrollToTopBtn = document.getElementById('scroll-to-top');
+ if (!scrollToTopBtn) return;
+
+ const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
+
+ const toggleVisibility = debounce(() => {
+ if (window.scrollY > 300) {
+ scrollToTopBtn.classList.add('visible');
+ } else {
+ scrollToTopBtn.classList.remove('visible');
+ }
+ }, 100);
+
+ window.addEventListener('scroll', toggleVisibility, { passive: true });
+ toggleVisibility();
+
+ scrollToTopBtn.addEventListener('click', () => {
+ window.scrollTo({
+ top: 0,
+ behavior: prefersReducedMotion ? 'auto' : 'smooth'
+ });
+ });
+ } catch (error) {
+ console.error('Scroll to top init failed:', error);
+ }
+ }
+
+
+ function initCopyCodeButtons() {
+ try {
+ const codeBlocks = document.querySelectorAll('pre code');
+
+ codeBlocks.forEach((codeBlock) => {
+ const pre = codeBlock.parentElement;
+
+ const wrapper = document.createElement('div');
+ wrapper.className = 'code-block-wrapper';
+ pre.parentNode.insertBefore(wrapper, pre);
+ wrapper.appendChild(pre);
+
+ const copyButton = document.createElement('button');
+ copyButton.className = 'copy-code-button';
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ copyButton.setAttribute('title', 'Copy code');
+
+ wrapper.appendChild(copyButton);
+
+ copyButton.addEventListener('click', async () => {
+ const code = codeBlock.textContent;
+
+ try {
+ if (navigator.clipboard && window.isSecureContext) {
+ await navigator.clipboard.writeText(code);
+ } else {
+ const textArea = document.createElement('textarea');
+ textArea.value = code;
+ textArea.style.position = 'fixed';
+ textArea.style.left = '-999999px';
+ document.body.appendChild(textArea);
+ textArea.select();
+ document.execCommand('copy');
+ document.body.removeChild(textArea);
+ }
+
+ copyButton.innerHTML = SVG_ICONS.check;
+ copyButton.classList.add('copied');
+ copyButton.setAttribute('aria-label', 'Code copied');
+
+ setTimeout(() => {
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.classList.remove('copied');
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ }, 2000);
+ } catch (err) {
+ console.error('Failed to copy code:', err);
+
+ copyButton.innerHTML = SVG_ICONS.error;
+ copyButton.classList.add('error');
+ copyButton.setAttribute('aria-label', 'Copy failed');
+
+ setTimeout(() => {
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.classList.remove('error');
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ }, 2000);
+ }
+ });
+ });
+ } catch (error) {
+ console.error('Copy code buttons init failed:', error);
+ }
+ }
+
+
+
+ function initSmoothScroll() {
+ try {
+ const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
+ if (prefersReducedMotion) return;
+
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
+ anchor.addEventListener('click', function (e) {
+ const href = this.getAttribute('href');
+ if (href === '#' || href.length <= 1) return;
+
+ e.preventDefault();
+ const target = document.querySelector(href);
+
+ if (target) {
+ const offset = 80;
+ const targetPosition = target.getBoundingClientRect().top + window.pageYOffset - offset;
+
+ window.scrollTo({
+ top: targetPosition,
+ behavior: 'smooth'
+ });
+
+ if (window.history.pushState) {
+ window.history.pushState(null, null, href);
+ }
+
+ if (!target.hasAttribute('tabindex')) {
+ target.setAttribute('tabindex', '-1');
+ }
+ target.focus({ preventScroll: true });
+ }
+ });
+ });
+ } catch (error) {
+ console.error('Smooth scroll init failed:', error);
+ }
+ }
+
+
+
+ function initReadingProgress() {
+ try {
+ const progressBar = document.getElementById('reading-progress');
+ if (!progressBar) return;
+
+ const updateProgressBar = debounce(() => {
+ const winScroll = document.body.scrollTop || document.documentElement.scrollTop;
+ const height = document.documentElement.scrollHeight - document.documentElement.clientHeight;
+ const scrolled = height > 0 ? (winScroll / height) * 100 : 0;
+ progressBar.style.width = scrolled + '%';
+ }, 16);
+
+ window.addEventListener('scroll', updateProgressBar, { passive: true });
+ updateProgressBar();
+ } catch (error) {
+ console.error('Reading progress init failed:', error);
+ }
+ }
+
+
+ function initPageLoadingState() {
+ try {
+ document.addEventListener('click', (e) => {
+ const link = e.target.closest('a[href^="/"], a[href^="https:&#x2F;&#x2F;veradec.xyz&#x2F;"]');
+ if (link && !link.target && !link.getAttribute('download')) {
+ document.body.classList.add('page-loading');
+ }
+ });
+
+ window.addEventListener('pageshow', () => {
+ document.body.classList.remove('page-loading');
+ });
+ } catch (error) {
+ console.error('Page loading state init failed:', error);
+ }
+ }
+
+ function init() {
+ initNavigation();
+ initScrollToTop();
+ initPageLoadingState();
+
+
+ initCopyCodeButtons();
+
+
+
+ initSmoothScroll();
+
+
+
+ initReadingProgress();
+
+ }
+
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', init);
+ } else {
+ init();
+ }
+})();</script> \ No newline at end of file
diff --git a/public/posts/index.html b/public/posts/index.html
new file mode 100644
index 0000000..ef3a693
--- /dev/null
+++ b/public/posts/index.html
@@ -0,0 +1,265 @@
+<!doctype html><html lang=en><head><meta charset=utf-8><meta content="width=device-width,initial-scale=1.0" name=viewport><title>
+Posts - Venkata Rao Dechiraju
+</title><meta content="made by a actual human" name=description><link href=https://veradec.xyz/posts/ rel=canonical><link href=https://veradec.xyz/favicon/favicon.ico rel=icon type=image/x-icon><link href=https://veradec.xyz/favicon/favicon-16x16.png rel=icon sizes=16x16 type=image/png><link href=https://veradec.xyz/favicon/favicon-32x32.png rel=icon sizes=32x32 type=image/png><link href=https://veradec.xyz/favicon/apple-touch-icon.png rel=apple-touch-icon sizes=180x180><link href=https://veradec.xyz/favicon/site.webmanifest rel=manifest><link as=style href=https://veradec.xyz/style.css rel=preload><link href=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css rel=stylesheet><script defer src=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js></script><script onload="renderMathInElement(document.body, {
+ delimiters: [
+ {left: '$$', right: '$$', display: true},
+ {left: '$', right: '$', display: false}
+ ]
+ });" defer src=https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/contrib/auto-render.min.js></script><meta content="blog, tech, programming" name=keywords><meta content="Venkata Rao Dechiraju" name=author><meta content="index, follow" name=robots><meta content=#1e3a8a name=theme-color><meta content=website property=og:type><meta content=https://veradec.xyz/posts/ property=og:url><meta content="Venkata Rao Dechiraju" property=og:title><meta content="made by a actual human" property=og:description><meta content="Venkata Rao Dechiraju" property=og:site_name><meta content=https://veradec.xyz/static/banner.png property=og:image><meta content=summary_large_image name=twitter:card><meta content="Venkata Rao Dechiraju" name=twitter:title><meta content="made by a actual human" name=twitter:description><meta content=https://veradec.xyz/static/banner.png name=twitter:image><script type=application/ld+json>
+ {
+ "@context": "https://schema.org",
+ "@type": "WebSite",
+ "name": "Venkata Rao Dechiraju",
+ "url": "https:&#x2F;&#x2F;veradec.xyz&#x2F;",
+ "description": "made by a actual human"
+
+ ,"author": {
+ "@type": "Person",
+ "name": "Venkata Rao Dechiraju"
+
+ ,"url": "https:&#x2F;&#x2F;verade.xyz"
+
+ }
+
+ }
+ </script><link title="atom feed for Venkata Rao Dechiraju" href=https://veradec.xyz/atom.xml rel=alternate type=application/atom+xml><link title="rss feed for Venkata Rao Dechiraju" href=https://veradec.xyz/rss.xml rel=alternate type=application/rss+xml><link href=https://veradec.xyz/style.css rel=stylesheet><body><div class=background-container><img alt class=background-image src=Raja_Ravi_Varma,_Sakunthala_Pathralekhan.jpg></div><div aria-label="Reading progress" class=reading-progress id=reading-progress role=progressbar></div><a class=skip-to-content href=#content>skip to content</a><div class=wrap><header><a href=https://veradec.xyz/ id=home-link> <span aria-hidden=true id=back-icon> <svg viewbox="0 0 24 24" fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2><polyline points="15 18 9 12 15 6"></polyline></svg> </span> <span id=back-text>back</span> </a></header><div id=content><div class=hero><h1>Posts</h1></div><div class=post-grid><a class=card href=https://veradec.xyz/posts/hello/> <h3>Hello, World</h3> <p>a (hopefully) final revamp of the website, given it’s not very ugly to look at now, maybe i’ll start writing more here? i ain’t sure about that and ye…</p> <div class=meta><span> Sun May 24, 2026 </span><span>1 min read</span></div> </a><a class=card href=https://veradec.xyz/posts/drum-sequencer/> <h3>Making a Drum Sequencer</h3> <p>I always looked at Teenage Engineering and thought it was pretty cool and given I have a sem break right now, I thought I can make one too. shouldn’t …</p> <div class=meta><span> Wed May 27, 2026 </span><span>2 min read</span></div> </a></div></div><div class=bottom-menu><p><a href=/posts>posts</a> <a href=/about>about</a> <a href=https://github.com/veradec>github</a> <a href=/authors>authors</a> <a href=/tags>tags</a> <a href=/categories>categories</a></div><button aria-label="Scroll to top" id=scroll-to-top><svg viewbox="0 0 24 24" aria-hidden=true fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2><polyline points="18 15 12 9 6 15"></polyline></svg></button><footer><div class=sam-footer>Built using Zola & Prism theme</div></footer></div><script>'use strict';
+
+(function() {
+ const SVG_ICONS = {
+ copy: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>',
+ check: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><polyline points="20 6 9 17 4 12"></polyline></svg>',
+ error: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>'
+ };
+
+ function debounce(func, wait) {
+ let timeout;
+ return function executedFunction(...args) {
+ clearTimeout(timeout);
+ timeout = setTimeout(() => func(...args), wait);
+ };
+ }
+
+ function initNavigation() {
+ try {
+ const homeLink = document.getElementById('home-link');
+ const backIcon = document.getElementById('back-icon');
+ const backText = document.getElementById('back-text');
+
+ if (!homeLink) return;
+
+ const homeText = 'back';
+ const isHomePage = window.location.pathname === '/' || window.location.pathname === '/index.html';
+
+ if (backIcon && isHomePage) {
+ backIcon.style.display = 'none';
+ }
+
+ if (backText) {
+ backText.textContent = homeText;
+ }
+
+ homeLink.setAttribute('aria-label', `Go to ${homeText.toLowerCase()} page`);
+ } catch (error) {
+ console.error('Navigation init failed:', error);
+ }
+ }
+
+ function initScrollToTop() {
+ try {
+ const scrollToTopBtn = document.getElementById('scroll-to-top');
+ if (!scrollToTopBtn) return;
+
+ const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
+
+ const toggleVisibility = debounce(() => {
+ if (window.scrollY > 300) {
+ scrollToTopBtn.classList.add('visible');
+ } else {
+ scrollToTopBtn.classList.remove('visible');
+ }
+ }, 100);
+
+ window.addEventListener('scroll', toggleVisibility, { passive: true });
+ toggleVisibility();
+
+ scrollToTopBtn.addEventListener('click', () => {
+ window.scrollTo({
+ top: 0,
+ behavior: prefersReducedMotion ? 'auto' : 'smooth'
+ });
+ });
+ } catch (error) {
+ console.error('Scroll to top init failed:', error);
+ }
+ }
+
+
+ function initCopyCodeButtons() {
+ try {
+ const codeBlocks = document.querySelectorAll('pre code');
+
+ codeBlocks.forEach((codeBlock) => {
+ const pre = codeBlock.parentElement;
+
+ const wrapper = document.createElement('div');
+ wrapper.className = 'code-block-wrapper';
+ pre.parentNode.insertBefore(wrapper, pre);
+ wrapper.appendChild(pre);
+
+ const copyButton = document.createElement('button');
+ copyButton.className = 'copy-code-button';
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ copyButton.setAttribute('title', 'Copy code');
+
+ wrapper.appendChild(copyButton);
+
+ copyButton.addEventListener('click', async () => {
+ const code = codeBlock.textContent;
+
+ try {
+ if (navigator.clipboard && window.isSecureContext) {
+ await navigator.clipboard.writeText(code);
+ } else {
+ const textArea = document.createElement('textarea');
+ textArea.value = code;
+ textArea.style.position = 'fixed';
+ textArea.style.left = '-999999px';
+ document.body.appendChild(textArea);
+ textArea.select();
+ document.execCommand('copy');
+ document.body.removeChild(textArea);
+ }
+
+ copyButton.innerHTML = SVG_ICONS.check;
+ copyButton.classList.add('copied');
+ copyButton.setAttribute('aria-label', 'Code copied');
+
+ setTimeout(() => {
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.classList.remove('copied');
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ }, 2000);
+ } catch (err) {
+ console.error('Failed to copy code:', err);
+
+ copyButton.innerHTML = SVG_ICONS.error;
+ copyButton.classList.add('error');
+ copyButton.setAttribute('aria-label', 'Copy failed');
+
+ setTimeout(() => {
+ copyButton.innerHTML = SVG_ICONS.copy;
+ copyButton.classList.remove('error');
+ copyButton.setAttribute('aria-label', 'Copy code to clipboard');
+ }, 2000);
+ }
+ });
+ });
+ } catch (error) {
+ console.error('Copy code buttons init failed:', error);
+ }
+ }
+
+
+
+ function initSmoothScroll() {
+ try {
+ const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
+ if (prefersReducedMotion) return;
+
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
+ anchor.addEventListener('click', function (e) {
+ const href = this.getAttribute('href');
+ if (href === '#' || href.length <= 1) return;
+
+ e.preventDefault();
+ const target = document.querySelector(href);
+
+ if (target) {
+ const offset = 80;
+ const targetPosition = target.getBoundingClientRect().top + window.pageYOffset - offset;
+
+ window.scrollTo({
+ top: targetPosition,
+ behavior: 'smooth'
+ });
+
+ if (window.history.pushState) {
+ window.history.pushState(null, null, href);
+ }
+
+ if (!target.hasAttribute('tabindex')) {
+ target.setAttribute('tabindex', '-1');
+ }
+ target.focus({ preventScroll: true });
+ }
+ });
+ });
+ } catch (error) {
+ console.error('Smooth scroll init failed:', error);
+ }
+ }
+
+
+
+ function initReadingProgress() {
+ try {
+ const progressBar = document.getElementById('reading-progress');
+ if (!progressBar) return;
+
+ const updateProgressBar = debounce(() => {
+ const winScroll = document.body.scrollTop || document.documentElement.scrollTop;
+ const height = document.documentElement.scrollHeight - document.documentElement.clientHeight;
+ const scrolled = height > 0 ? (winScroll / height) * 100 : 0;
+ progressBar.style.width = scrolled + '%';
+ }, 16);
+
+ window.addEventListener('scroll', updateProgressBar, { passive: true });
+ updateProgressBar();
+ } catch (error) {
+ console.error('Reading progress init failed:', error);
+ }
+ }
+
+
+ function initPageLoadingState() {
+ try {
+ document.addEventListener('click', (e) => {
+ const link = e.target.closest('a[href^="/"], a[href^="https:&#x2F;&#x2F;veradec.xyz&#x2F;"]');
+ if (link && !link.target && !link.getAttribute('download')) {
+ document.body.classList.add('page-loading');
+ }
+ });
+
+ window.addEventListener('pageshow', () => {
+ document.body.classList.remove('page-loading');
+ });
+ } catch (error) {
+ console.error('Page loading state init failed:', error);
+ }
+ }
+
+ function init() {
+ initNavigation();
+ initScrollToTop();
+ initPageLoadingState();
+
+
+ initCopyCodeButtons();
+
+
+
+ initSmoothScroll();
+
+
+
+ initReadingProgress();
+
+ }
+
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', init);
+ } else {
+ init();
+ }
+})();</script> \ No newline at end of file
diff --git a/public/robots.txt b/public/robots.txt
new file mode 100644
index 0000000..bdf5d15
--- /dev/null
+++ b/public/robots.txt
@@ -0,0 +1,4 @@
+User-agent: *
+Disallow:
+Allow: /
+Sitemap: https://veradec.xyz/sitemap.xml
diff --git a/public/rss.xml b/public/rss.xml
new file mode 100644
index 0000000..67b103d
--- /dev/null
+++ b/public/rss.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
+ <channel>
+ <title>Venkata Rao Dechiraju</title>
+ <link>https://veradec.xyz/</link>
+ <description>made by a actual human</description>
+ <generator>Zola</generator>
+ <language>en</language>
+ <atom:link href="https://veradec.xyz/rss.xml" rel="self" type="application/rss+xml"/>
+ <lastBuildDate>Wed, 27 May 2026 00:00:00 +0000</lastBuildDate>
+ <item>
+ <title>Making a Drum Sequencer</title>
+ <pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate>
+ <author>Unknown</author>
+ <link>https://veradec.xyz/posts/drum-sequencer/</link>
+ <guid>https://veradec.xyz/posts/drum-sequencer/</guid>
+ <description xml:base="https://veradec.xyz/posts/drum-sequencer/">&lt;p&gt;I always looked at Teenage Engineering and thought it was pretty cool and given I have a sem break right now, I thought I can make one too. shouldn’t be hard right?&lt;br &#x2F;&gt;
+and after i started composing music, Techno was a genre I always wanted to try but i couldn’t, and then an idea popped up, maybe I can create a suite of instruments&lt;&#x2F;p&gt;
+&lt;blockquote&gt;
+&lt;p&gt;a Synth&lt;&#x2F;p&gt;
+&lt;&#x2F;blockquote&gt;
+&lt;blockquote&gt;
+&lt;p&gt;a Drum Sequencer&lt;&#x2F;p&gt;
+&lt;&#x2F;blockquote&gt;
+&lt;blockquote&gt;
+&lt;p&gt;a Vocoder&lt;&#x2F;p&gt;
+&lt;&#x2F;blockquote&gt;
+&lt;p&gt;and start making techno on them? Sounds nice innit?&lt;br &#x2F;&gt;
+&lt;br&gt;&lt;&#x2F;p&gt;
+&lt;h1 id=&quot;the-design&quot;&gt;The Design&lt;&#x2F;h1&gt;
+&lt;p&gt;I wanted the design to look a little retro 80’s esque, and I wanted it to be little simpler (because I will have suite of appliances to generate different sounds, so would rather have one that is simple and does it job well)
+and I drew a few sketches and ended with something that looks very nice&lt;&#x2F;p&gt;
+&lt;div style=&quot;display: flex; justify-content: center;&quot;&gt;
+ &lt;img src=&quot;&#x2F;dq_sketch.png&quot; alt=&quot;Drum Sequencer Rough Sketch&quot; style=&quot;transform: rotate(-90deg); width: 50%;&quot; &#x2F;&gt;
+&lt;&#x2F;div&gt;
+&lt;h1 id=&quot;the-prototyping&quot;&gt;The Prototyping&lt;&#x2F;h1&gt;
+&lt;p&gt;with the &lt;em&gt;beautifully&lt;&#x2F;em&gt; crafted picture in hand, now the plan is to prototype&lt;&#x2F;p&gt;
+&lt;p&gt;I needed around 16 Buttons – which I am going to pull of some keyboards i archived (They paid off innit?).&lt;&#x2F;p&gt;
+&lt;p&gt;I might need to get some more potentiometers and find a way to make a matrix the LEDs and Buttons, Once That is done, Getting the whole thing shouldn’t be that tough (atleast I hope it isn’t)&lt;&#x2F;p&gt;
+&lt;!-- -- 28 May 02:00 AM --&gt;
+&lt;!-- I am about to order stuff from flyrobo and i found this website called [ifuturetech](https:&#x2F;&#x2F;ifuturetech.org) which i am really unsure is legitimate, but yes. I might order from it, the total cost excluding the MicroProcessor and the Speaker (which i might borrow from a friend for prototyping) come around to 616. --&gt;
+&lt;!-- Including the speaker and the MCU let&#x27;s call it a even 900? and then the chassis -- with a good cnc machine and alumium -- would roll everything up to a nice 1500 - 1700? That still is cheaper than Teenage Engineering or any SOTA, selling it for around 2400-2500 should make up some good profit. this is getting exciting. --&gt;
+&lt;!-- I look forward to any outliers that would increase the cost by 10x -- i don&#x27;t see a reason something like this would but yes. --&gt;
+</description>
+ </item>
+ <item>
+ <title>About verade</title>
+ <pubDate>Sun, 24 May 2026 00:00:00 +0000</pubDate>
+ <author>Unknown</author>
+ <link>https://veradec.xyz/about/</link>
+ <guid>https://veradec.xyz/about/</guid>
+ <description xml:base="https://veradec.xyz/about/">&lt;p&gt;I am Venkata Rao Dechiraju, A Low-Level Perfomance Developer based off 🇮🇳, I heavily fw Compilers, Motorsports and Low Level Programming.&lt;&#x2F;p&gt;
+&lt;p&gt;You can find all the weird stuff i do on &lt;a rel=&quot;noopener nofollow noreferrer external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;veradec&#x2F;&quot;&gt;my github&lt;&#x2F;a&gt; (Even though I am trying to move to something like codeberg)&lt;&#x2F;p&gt;
+&lt;p&gt;I hope you find yourself intriguied after reading through my posts – that’s the intention of the whole website.&lt;&#x2F;p&gt;
+&lt;p&gt;(Just because I use em-dashes doesn’t mean it wasn’t written by LLMs, I find the concept of em-dashes rather convenient, and I find myself at positions against LLMs for menial tasks such as writing blog posts, so cheers!)&lt;&#x2F;p&gt;
+&lt;p&gt;Contact:&lt;&#x2F;p&gt;
+&lt;p&gt;Mail -&amp;gt; venkatraodechiraju@gmail.com&lt;&#x2F;p&gt;
+</description>
+ </item>
+ <item>
+ <title>Hello, World</title>
+ <pubDate>Sun, 24 May 2026 00:00:00 +0000</pubDate>
+ <author>Unknown</author>
+ <link>https://veradec.xyz/posts/hello/</link>
+ <guid>https://veradec.xyz/posts/hello/</guid>
+ <description xml:base="https://veradec.xyz/posts/hello/">&lt;p&gt;a (hopefully) final revamp of the website, given it’s not very ugly to look at now, maybe i’ll start writing more here? i ain’t sure about that and yes, i’ll be copying all the content from the previous website here, so i’ll not lose what was&lt;&#x2F;p&gt;
+</description>
+ </item>
+ </channel>
+</rss>
diff --git a/public/screenshot.png b/public/screenshot.png
new file mode 100644
index 0000000..c910bca
--- /dev/null
+++ b/public/screenshot.png
Binary files differ
diff --git a/public/sitemap.xml b/public/sitemap.xml
new file mode 100644
index 0000000..9bd2053
--- /dev/null
+++ b/public/sitemap.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
+ <url>
+ <loc>https://veradec.xyz/</loc>
+ </url>
+ <url>
+ <loc>https://veradec.xyz/about/</loc>
+ <lastmod>2026-05-24</lastmod>
+ </url>
+ <url>
+ <loc>https://veradec.xyz/authors/</loc>
+ </url>
+ <url>
+ <loc>https://veradec.xyz/authors/venkata-rao-dechiraju/</loc>
+ </url>
+ <url>
+ <loc>https://veradec.xyz/categories/</loc>
+ </url>
+ <url>
+ <loc>https://veradec.xyz/categories/quality-of-life/</loc>
+ </url>
+ <url>
+ <loc>https://veradec.xyz/posts/</loc>
+ </url>
+ <url>
+ <loc>https://veradec.xyz/posts/drum-sequencer/</loc>
+ <lastmod>2026-05-27</lastmod>
+ </url>
+ <url>
+ <loc>https://veradec.xyz/posts/hello/</loc>
+ <lastmod>2026-05-24</lastmod>
+ </url>
+ <url>
+ <loc>https://veradec.xyz/tags/</loc>
+ </url>
+</urlset>
diff --git a/public/style.css b/public/style.css
new file mode 100644
index 0000000..07bb47d
--- /dev/null
+++ b/public/style.css
@@ -0,0 +1 @@
+:root{--glass-base: rgba(255, 255, 255, 0.03);--glass-hover: rgba(255, 255, 255, 0.06);--glass-active: rgba(255, 255, 255, 0.09);--glass-border: rgba(255, 255, 255, 0.1);--glass-border-hover: rgba(255, 255, 255, 0.18);--blur-light: blur(10px);--blur-strength: blur(12px);--text-primary: rgba(245, 243, 240, 0.96);--text-secondary: rgba(245, 243, 240, 0.65);--shadow-subtle: 0 4px 16px rgba(0, 0, 0, 0.1);--shadow-medium: 0 8px 24px rgba(0, 0, 0, 0.15);--shadow-strong: 0 12px 28px rgba(0, 0, 0, 0.18);--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 10px;--radius-pill: 20px;--font-heading: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace;--space-xs: clamp(0.35rem, 0.25rem + 0.5vw, 0.5rem);--space-sm: clamp(0.65rem, 0.4rem + 0.8vw, 1rem);--space-md: clamp(0.85rem, 0.5rem + 1vw, 1.5rem);--space-lg: clamp(1.25rem, 0.8rem + 1.2vw, 2rem);--space-xl: clamp(1.75rem, 1rem + 1.8vw, 3rem);--space-2xl: clamp(2rem, 1.2rem + 2.2vw, 4rem);--space-3xl: clamp(2.5rem, 1.5rem + 3vw, 6rem);--text-base: clamp(0.9rem, 0.8rem + 0.25vw, 1rem);--text-sm: clamp(0.78rem, 0.7rem + 0.2vw, 0.85rem);--text-xs: clamp(0.68rem, 0.6rem + 0.2vw, 0.75rem);--wrap-padding: clamp(1rem, 0.5rem + 2vw, 2rem);--card-padding: clamp(1.25rem, 0.8rem + 1.2vw, 2rem);--grid-gap: clamp(0.75rem, 0.5rem + 1vw, 1.5rem);--card-min-width: clamp(200px, 40vw, 320px);--tile-min-width: clamp(130px, 25vw, 280px);--z-background: -1;--z-base: 1;--z-header: 10;--z-scroll-button: 20;--z-progress: 30;--z-modal: 100;--z-tooltip: 200;--transition-fast: 0.2s;--transition-base: 0.3s;--transition-slow: 0.4s;--bg-body: #0a0a0a}:root{--glass-base: rgba(255, 255, 255, 0.03);--glass-hover: rgba(255, 255, 255, 0.06);--glass-active: rgba(255, 255, 255, 0.09);--glass-border: rgba(255, 255, 255, 0.1);--glass-border-hover: rgba(255, 255, 255, 0.18);--blur-light: blur(10px);--blur-strength: blur(12px);--text-primary: rgba(245, 243, 240, 0.96);--text-secondary: rgba(245, 243, 240, 0.65);--shadow-subtle: 0 4px 16px rgba(0, 0, 0, 0.1);--shadow-medium: 0 8px 24px rgba(0, 0, 0, 0.15);--shadow-strong: 0 12px 28px rgba(0, 0, 0, 0.18);--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 10px;--radius-pill: 20px;--font-heading: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace;--space-xs: clamp(0.35rem, 0.25rem + 0.5vw, 0.5rem);--space-sm: clamp(0.65rem, 0.4rem + 0.8vw, 1rem);--space-md: clamp(0.85rem, 0.5rem + 1vw, 1.5rem);--space-lg: clamp(1.25rem, 0.8rem + 1.2vw, 2rem);--space-xl: clamp(1.75rem, 1rem + 1.8vw, 3rem);--space-2xl: clamp(2rem, 1.2rem + 2.2vw, 4rem);--space-3xl: clamp(2.5rem, 1.5rem + 3vw, 6rem);--text-base: clamp(0.9rem, 0.8rem + 0.25vw, 1rem);--text-sm: clamp(0.78rem, 0.7rem + 0.2vw, 0.85rem);--text-xs: clamp(0.68rem, 0.6rem + 0.2vw, 0.75rem);--wrap-padding: clamp(1rem, 0.5rem + 2vw, 2rem);--card-padding: clamp(1.25rem, 0.8rem + 1.2vw, 2rem);--grid-gap: clamp(0.75rem, 0.5rem + 1vw, 1.5rem);--card-min-width: clamp(200px, 40vw, 320px);--tile-min-width: clamp(130px, 25vw, 280px);--z-background: -1;--z-base: 1;--z-header: 10;--z-scroll-button: 20;--z-progress: 30;--z-modal: 100;--z-tooltip: 200;--transition-fast: 0.2s;--transition-base: 0.3s;--transition-slow: 0.4s;--bg-body: #0a0a0a}:root{--glass-base: rgba(255, 255, 255, 0.03);--glass-hover: rgba(255, 255, 255, 0.06);--glass-active: rgba(255, 255, 255, 0.09);--glass-border: rgba(255, 255, 255, 0.1);--glass-border-hover: rgba(255, 255, 255, 0.18);--blur-light: blur(10px);--blur-strength: blur(12px);--text-primary: rgba(245, 243, 240, 0.96);--text-secondary: rgba(245, 243, 240, 0.65);--shadow-subtle: 0 4px 16px rgba(0, 0, 0, 0.1);--shadow-medium: 0 8px 24px rgba(0, 0, 0, 0.15);--shadow-strong: 0 12px 28px rgba(0, 0, 0, 0.18);--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 10px;--radius-pill: 20px;--font-heading: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace;--space-xs: clamp(0.35rem, 0.25rem + 0.5vw, 0.5rem);--space-sm: clamp(0.65rem, 0.4rem + 0.8vw, 1rem);--space-md: clamp(0.85rem, 0.5rem + 1vw, 1.5rem);--space-lg: clamp(1.25rem, 0.8rem + 1.2vw, 2rem);--space-xl: clamp(1.75rem, 1rem + 1.8vw, 3rem);--space-2xl: clamp(2rem, 1.2rem + 2.2vw, 4rem);--space-3xl: clamp(2.5rem, 1.5rem + 3vw, 6rem);--text-base: clamp(0.9rem, 0.8rem + 0.25vw, 1rem);--text-sm: clamp(0.78rem, 0.7rem + 0.2vw, 0.85rem);--text-xs: clamp(0.68rem, 0.6rem + 0.2vw, 0.75rem);--wrap-padding: clamp(1rem, 0.5rem + 2vw, 2rem);--card-padding: clamp(1.25rem, 0.8rem + 1.2vw, 2rem);--grid-gap: clamp(0.75rem, 0.5rem + 1vw, 1.5rem);--card-min-width: clamp(200px, 40vw, 320px);--tile-min-width: clamp(130px, 25vw, 280px);--z-background: -1;--z-base: 1;--z-header: 10;--z-scroll-button: 20;--z-progress: 30;--z-modal: 100;--z-tooltip: 200;--transition-fast: 0.2s;--transition-base: 0.3s;--transition-slow: 0.4s;--bg-body: #0a0a0a}:root{--glass-base: rgba(255, 255, 255, 0.03);--glass-hover: rgba(255, 255, 255, 0.06);--glass-active: rgba(255, 255, 255, 0.09);--glass-border: rgba(255, 255, 255, 0.1);--glass-border-hover: rgba(255, 255, 255, 0.18);--blur-light: blur(10px);--blur-strength: blur(12px);--text-primary: rgba(245, 243, 240, 0.96);--text-secondary: rgba(245, 243, 240, 0.65);--shadow-subtle: 0 4px 16px rgba(0, 0, 0, 0.1);--shadow-medium: 0 8px 24px rgba(0, 0, 0, 0.15);--shadow-strong: 0 12px 28px rgba(0, 0, 0, 0.18);--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 10px;--radius-pill: 20px;--font-heading: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace;--space-xs: clamp(0.35rem, 0.25rem + 0.5vw, 0.5rem);--space-sm: clamp(0.65rem, 0.4rem + 0.8vw, 1rem);--space-md: clamp(0.85rem, 0.5rem + 1vw, 1.5rem);--space-lg: clamp(1.25rem, 0.8rem + 1.2vw, 2rem);--space-xl: clamp(1.75rem, 1rem + 1.8vw, 3rem);--space-2xl: clamp(2rem, 1.2rem + 2.2vw, 4rem);--space-3xl: clamp(2.5rem, 1.5rem + 3vw, 6rem);--text-base: clamp(0.9rem, 0.8rem + 0.25vw, 1rem);--text-sm: clamp(0.78rem, 0.7rem + 0.2vw, 0.85rem);--text-xs: clamp(0.68rem, 0.6rem + 0.2vw, 0.75rem);--wrap-padding: clamp(1rem, 0.5rem + 2vw, 2rem);--card-padding: clamp(1.25rem, 0.8rem + 1.2vw, 2rem);--grid-gap: clamp(0.75rem, 0.5rem + 1vw, 1.5rem);--card-min-width: clamp(200px, 40vw, 320px);--tile-min-width: clamp(130px, 25vw, 280px);--z-background: -1;--z-base: 1;--z-header: 10;--z-scroll-button: 20;--z-progress: 30;--z-modal: 100;--z-tooltip: 200;--transition-fast: 0.2s;--transition-base: 0.3s;--transition-slow: 0.4s;--bg-body: #0a0a0a}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}body{background:var(--bg-body);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-base);min-height:100dvh;display:flex;flex-direction:column;overflow-x:hidden;width:100%;max-width:100%;position:relative;word-break:break-word;overflow-wrap:anywhere;hyphens:auto}body.page-loading{cursor:wait}body.page-loading::after{content:"";position:fixed;top:0;left:0;width:100%;height:3px;background:var(--text-primary);animation:loading 1.2s cubic-bezier(.4, 0, .2, 1) infinite;z-index:var(--z-progress)}@keyframes loading{0%{transform:translateX(-100%)}50%{transform:translateX(100%)}100%{transform:translateX(100%)}}.skip-to-content{position:absolute;top:-100px;left:0;background:var(--glass-active);color:var(--text-primary);padding:var(--space-sm) var(--space-lg);border-radius:0 0 var(--radius-md) 0;z-index:var(--z-progress);transition:top var(--transition-base) cubic-bezier(.25, .1, .25, 1)}.skip-to-content:focus{top:0}.background-container{position:fixed;top:0;left:0;width:100%;height:100%;z-index:var(--z-background);overflow:hidden}.background-image,.background-gradient{position:absolute;top:0;left:0;width:100%;height:100%}.background-image{object-fit:cover;border-radius:0}.reading-progress{position:fixed;top:0;left:0;width:0%;height:2px;background:rgba(245,243,240,.3);z-index:var(--z-progress);transition:width var(--transition-fast) cubic-bezier(.25, .1, .25, 1);pointer-events:none}a{color:var(--text-primary);text-decoration:none;transition:color var(--transition-fast) cubic-bezier(.25, .1, .25, 1)}a:focus-visible{outline:2px solid var(--text-primary);outline-offset:3px;border-radius:3px}a:hover{color:var(--text-primary)}.wrap{max-width:1100px;margin:0 auto;padding:0 var(--wrap-padding);position:relative;z-index:var(--z-base);width:100%;box-sizing:border-box}@media (min-width: 1440px){.wrap{max-width:1200px}}header{padding:var(--space-lg) 0;display:flex;justify-content:space-between;align-items:center}#home-link{display:inline-flex;align-items:center;gap:clamp(.3rem,.2rem + .3vw,.5rem);padding:clamp(.5rem,.3rem + .4vw,.6rem) clamp(1rem,.6rem + .8vw,1.5rem);background:var(--glass-hover);border:1px solid var(--glass-border);transition:background var(--transition-base) cubic-bezier(.25, .1, .25, 1),border-color var(--transition-base) cubic-bezier(.25, .1, .25, 1);border-radius:var(--radius-pill);color:var(--text-secondary);font-family:var(--font-heading);font-size:var(--text-sm);font-weight:600;transition:background var(--transition-fast) cubic-bezier(.25, .1, .25, 1),border-color var(--transition-fast) cubic-bezier(.25, .1, .25, 1),color var(--transition-fast) cubic-bezier(.25, .1, .25, 1),box-shadow var(--transition-fast) cubic-bezier(.25, .1, .25, 1);letter-spacing:1px}#home-link:focus-visible{outline:2px solid var(--text-primary);outline-offset:3px;border-radius:3px}#home-link #back-icon{display:inline-flex;align-items:center;justify-content:center;width:clamp(.9rem,.8rem + .3vw,1.1rem);height:clamp(.9rem,.8rem + .3vw,1.1rem);transition:transform var(--transition-fast) cubic-bezier(.25, .1, .25, 1)}#home-link #back-icon svg{width:100%;height:100%;stroke:currentColor}#home-link:hover{background:var(--glass-active);border-color:var(--glass-border-hover);color:var(--text-primary);box-shadow:var(--shadow-medium)}#home-link:hover #back-icon{transform:translateX(-2px)}.btn{display:inline-block;padding:clamp(.6rem,.4rem + .4vw,.8rem) clamp(1.2rem,.8rem + .8vw,1.8rem);background:var(--glass-hover);border:1px solid var(--glass-border);transition:background var(--transition-base) cubic-bezier(.25, .1, .25, 1),border-color var(--transition-base) cubic-bezier(.25, .1, .25, 1);border-radius:var(--radius-pill);color:var(--text-primary);font-family:var(--font-heading);font-weight:600;font-size:var(--text-sm);transition:background var(--transition-fast) cubic-bezier(.25, .1, .25, 1),border-color var(--transition-fast) cubic-bezier(.25, .1, .25, 1),box-shadow var(--transition-fast) cubic-bezier(.25, .1, .25, 1);letter-spacing:1px;cursor:pointer;min-height:44px}.btn:focus-visible{outline:2px solid var(--text-primary);outline-offset:3px;border-radius:3px}.btn:hover{background:var(--glass-active);border-color:var(--glass-border-hover);box-shadow:var(--shadow-subtle)}#splash{min-height:100dvh;display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:var(--space-2xl);text-align:center}#title{font-family:var(--font-heading);font-size:clamp(1.5rem, 2vw + 0.5rem, 3.5rem);font-weight:900;letter-spacing:clamp(1px,.1vw,2px);color:var(--text-primary);margin-bottom:var(--space-lg);text-transform:none;line-height:1.1;text-shadow:0 0 40px rgba(0,0,0,.3)}.site-description{text-align:center;color:var(--text-secondary);font-size:clamp(.85rem,.4rem + 1.4vw,1.05rem);margin-top:calc(var(--space-sm)*-1);margin-bottom:var(--space-xl);max-width:600px;margin-left:auto;margin-right:auto;padding:0 var(--space-xs)}.tile-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(var(--tile-min-width), 1fr));gap:var(--grid-gap);width:100%;max-width:900px;margin:var(--space-xl) auto}.post-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(var(--card-min-width), 1fr));gap:var(--grid-gap);margin:var(--space-xl) 0;align-items:stretch}.taxonomy-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(var(--card-min-width), 1fr));gap:var(--grid-gap);margin-top:var(--space-lg);align-items:stretch}.tile,.card,.taxonomy-item{background:var(--glass-hover);border:1px solid var(--glass-border);transition:background var(--transition-base) cubic-bezier(.25, .1, .25, 1),border-color var(--transition-base) cubic-bezier(.25, .1, .25, 1);border-radius:var(--radius-xl);transition:background var(--transition-fast) cubic-bezier(.25, .1, .25, 1),border-color var(--transition-fast) cubic-bezier(.25, .1, .25, 1),box-shadow var(--transition-fast) cubic-bezier(.25, .1, .25, 1);display:flex;flex-direction:column;position:relative;overflow:hidden;color:var(--text-primary)}.tile:focus-visible,.card:focus-visible,.taxonomy-item:focus-visible{outline:2px solid var(--text-primary);outline-offset:3px;border-radius:3px}.tile:hover,.card:hover,.taxonomy-item:hover{background:var(--glass-active);border-color:var(--glass-border-hover);box-shadow:var(--shadow-medium)}.tile{padding:var(--space-lg) var(--space-md);align-items:center;justify-content:center;min-height:clamp(90px,15vw,120px)}@supports (backdrop-filter: blur(10px)){.tile{backdrop-filter:var(--blur-light);-webkit-backdrop-filter:var(--blur-light)}}@supports not (backdrop-filter: blur(10px)){.tile{background:rgba(255,255,255,.1)}}.tile .tile-title{font-family:var(--font-heading);font-size:clamp(.95rem,.6rem + 1.2vw,1.5rem);font-weight:700;margin-bottom:var(--space-xs);word-break:break-word;overflow-wrap:anywhere;hyphens:auto}.tile .tile-desc{font-size:clamp(.7rem,.5rem + .5vw,.9rem);color:var(--text-secondary)}.card{padding:var(--card-padding);height:100%;box-sizing:border-box}.card h3{font-size:clamp(1rem, 2vw + 0.5rem, 1.4rem);line-height:1.2;color:var(--text-primary);word-break:break-word;overflow-wrap:anywhere;hyphens:auto}.card p{color:var(--text-secondary);font-size:clamp(.85rem,.75rem + .3vw,.95rem);line-height:1.6;margin-bottom:var(--space-md);flex-grow:1}.card .meta{font-size:var(--text-xs);color:var(--text-secondary);margin-top:auto;padding-top:var(--space-md);display:flex;justify-content:space-between;border-top:1px solid var(--glass-border);font-family:var(--font-heading);font-weight:500}.taxonomy-item{padding:var(--space-md);align-items:center;justify-content:center;text-align:center;min-height:clamp(80px,12vw,100px)}.taxonomy-item h3{font-family:var(--font-heading);font-size:clamp(1.05rem,.8rem + .6vw,1.3rem);font-weight:700;margin:0 0 .75rem 0;color:var(--text-primary)}.taxonomy-item .count{font-size:clamp(.75rem,.6rem + .3vw,.9rem);color:var(--text-secondary);font-family:var(--font-heading);font-weight:500}#content{background:rgba(255,255,255,.06);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-xl);margin-top:var(--space-lg);max-width:100%;box-sizing:border-box;overflow:hidden}@supports (backdrop-filter: blur(12px)){#content{backdrop-filter:var(--blur-strength);-webkit-backdrop-filter:var(--blur-strength)}}@supports not (backdrop-filter: blur(12px)){#content{background:rgba(255,255,255,.14)}}#content article{font-size:clamp(.9rem,.4rem + .8vw,1.06rem);line-height:1.7;color:var(--text-primary);font-weight:400;letter-spacing:.3px;word-break:break-word;overflow-wrap:anywhere;hyphens:auto}#content article p{margin-bottom:clamp(.7rem,.5rem + .3vw,.9rem)}#content article ul,#content article ol{margin:.5rem 0 1rem 1.2rem}#content article li{margin-bottom:.3rem}#content article a{color:var(--text-primary);text-decoration:none;border-bottom:1px solid var(--text-secondary);transition:border-color var(--transition-fast) cubic-bezier(.25, .1, .25, 1),color var(--transition-fast) cubic-bezier(.25, .1, .25, 1)}#content article a:focus-visible{outline:2px solid var(--text-primary);outline-offset:3px;border-radius:3px}#content article a:hover{border-bottom-color:var(--text-primary);color:var(--text-primary)}#content article a[target=_blank]::after{content:" ↗";font-size:.85em;opacity:.7;margin-left:.2em}#content article strong,#content article b{color:var(--text-primary);font-weight:700}#content article em,#content article i{color:var(--text-primary);font-style:italic}#content article mark{background:var(--glass-hover);color:var(--text-primary);padding:.1rem .3rem;border-radius:3px}#content h1{font-family:var(--font-heading);font-size:clamp(1.35rem, 2vw + 0.5rem, 2.6rem);margin-bottom:var(--space-xs);letter-spacing:-.5px;line-height:1.1;font-weight:800;color:var(--text-primary);word-break:break-word;overflow-wrap:anywhere;hyphens:auto}#content h2{font-family:var(--font-heading);font-size:clamp(1.15rem, 2vw + 0.5rem, 1.9rem);color:var(--text-primary);margin-top:var(--space-xl);margin-bottom:var(--space-sm);font-weight:700;letter-spacing:-.3px;word-break:break-word;overflow-wrap:anywhere;hyphens:auto}#content h3{font-family:var(--font-heading);font-size:clamp(1.05rem, 2vw + 0.5rem, 1.5rem);color:var(--text-primary);margin-top:var(--space-xl);margin-bottom:var(--space-sm);font-weight:700;word-break:break-word;overflow-wrap:anywhere;hyphens:auto}#content h4{font-family:var(--font-heading);font-size:clamp(.95rem, 2vw + 0.5rem, 1.3rem);color:var(--text-primary);margin-top:var(--space-lg);margin-bottom:var(--space-xs);font-weight:600;word-break:break-word;overflow-wrap:anywhere;hyphens:auto}#content .hero{text-align:center;margin-bottom:var(--space-2xl);padding-bottom:var(--space-xl);border-bottom:1px solid var(--glass-border)}#content .hero .hero-meta{color:var(--text-secondary);font-size:var(--text-base);margin-top:var(--space-md);font-family:var(--font-heading);font-weight:500}#content .hero .hero-meta span{margin:0 clamp(.3rem,.2rem + .3vw,.625rem)}#content .hero-description{color:var(--text-secondary);margin-top:var(--space-sm);font-size:var(--text-base)}#content .authors-list{margin-top:var(--space-sm);color:var(--text-secondary);font-size:.9rem}#content .authors-list .author-link{color:var(--text-primary);border-bottom:1px solid var(--glass-border);transition:opacity var(--transition-fast) cubic-bezier(.25, .1, .25, 1),border-color var(--transition-fast) cubic-bezier(.25, .1, .25, 1)}#content .authors-list .author-link:hover{opacity:.8;border-color:var(--text-primary)}#content .comments-divider{border-color:var(--glass-border);margin:var(--space-xl) 0}.tags-cloud{display:flex;flex-wrap:wrap;gap:var(--space-xs);justify-content:center;margin:var(--space-md) 0}.tags-cloud.tags-cloud--page{margin-top:var(--space-xl)}.tag{display:inline-flex;align-items:center;padding:clamp(.5rem,.3rem + .3vw,.5rem) clamp(1rem,.6rem + .6vw,1.25rem);border-radius:var(--radius-pill);background:var(--glass-hover);border:1px solid var(--glass-border);color:var(--text-secondary);font-size:var(--text-sm);font-weight:500;font-family:var(--font-heading);transition:background var(--transition-fast) cubic-bezier(.25, .1, .25, 1),color var(--transition-fast) cubic-bezier(.25, .1, .25, 1),border-color var(--transition-fast) cubic-bezier(.25, .1, .25, 1),box-shadow var(--transition-fast) cubic-bezier(.25, .1, .25, 1);min-height:44px}@supports (backdrop-filter: blur(10px)){.tag{backdrop-filter:var(--blur-light);-webkit-backdrop-filter:var(--blur-light)}}@supports not (backdrop-filter: blur(10px)){.tag{background:rgba(255,255,255,.1)}}.tag:focus-visible{outline:2px solid var(--text-primary);outline-offset:3px;border-radius:3px}.tag:hover{background:var(--glass-active);border-color:var(--glass-border-hover);box-shadow:var(--shadow-subtle)}.tag:hover{color:var(--text-primary)}.tag-count{opacity:.6;font-size:.85em;margin-left:.3em}.empty-state{text-align:center;color:var(--text-secondary);margin-top:var(--space-xl)}.subsections{margin-top:var(--space-2xl)}.subsections h2{font-family:var(--font-heading);margin-bottom:var(--space-lg)}footer{margin-top:var(--space-3xl);padding:var(--space-lg) 0;text-align:center;color:var(--text-secondary);font-size:var(--text-sm);border-top:1px solid var(--glass-border)}#scroll-to-top{position:fixed;bottom:var(--space-lg);right:var(--space-lg);width:clamp(2.5rem,2rem + 1vw,3rem);height:clamp(2.5rem,2rem + 1vw,3rem);background:var(--glass-hover);border:1px solid var(--glass-border);transition:background var(--transition-base) cubic-bezier(.25, .1, .25, 1),border-color var(--transition-base) cubic-bezier(.25, .1, .25, 1);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(100px);transition:opacity var(--transition-fast) cubic-bezier(.25, .1, .25, 1),visibility var(--transition-fast) cubic-bezier(.25, .1, .25, 1),transform var(--transition-fast) cubic-bezier(.25, .1, .25, 1),background var(--transition-fast) cubic-bezier(.25, .1, .25, 1),border-color var(--transition-fast) cubic-bezier(.25, .1, .25, 1),box-shadow var(--transition-fast) cubic-bezier(.25, .1, .25, 1);z-index:var(--z-scroll-button);box-shadow:var(--shadow-medium)}@supports (backdrop-filter: blur(10px)){#scroll-to-top{backdrop-filter:var(--blur-light);-webkit-backdrop-filter:var(--blur-light)}}@supports not (backdrop-filter: blur(10px)){#scroll-to-top{background:rgba(255,255,255,.1)}}#scroll-to-top:focus-visible{outline:2px solid var(--text-primary);outline-offset:3px;border-radius:3px}#scroll-to-top.visible{opacity:.8;visibility:visible;transform:translateY(0)}#scroll-to-top:hover{background:var(--glass-active);border-color:var(--glass-border-hover);box-shadow:var(--shadow-medium)}#scroll-to-top svg{width:clamp(1.15rem,1rem + .3vw,1.5rem);height:clamp(1.15rem,1rem + .3vw,1.5rem);stroke:var(--text-secondary);transition:stroke var(--transition-fast) cubic-bezier(.25, .1, .25, 1)}#scroll-to-top:hover svg{stroke:var(--text-primary)}.bottom-menu{margin-top:var(--space-xl);padding:var(--space-lg) 0;border-top:1px solid var(--glass-border)}.bottom-menu p{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:var(--grid-gap);margin:0}.bottom-menu p a{display:inline-flex;align-items:center;padding:clamp(.5rem,.3rem + .3vw,.6rem) clamp(1rem,.6rem + .6vw,1.5rem);background:var(--glass-hover);border:1px solid var(--glass-border);transition:background var(--transition-base) cubic-bezier(.25, .1, .25, 1),border-color var(--transition-base) cubic-bezier(.25, .1, .25, 1);border-radius:var(--radius-pill);color:var(--text-secondary);font-family:var(--font-heading);font-size:var(--text-sm);font-weight:600;transition:background var(--transition-fast) cubic-bezier(.25, .1, .25, 1),color var(--transition-fast) cubic-bezier(.25, .1, .25, 1),border-color var(--transition-fast) cubic-bezier(.25, .1, .25, 1),box-shadow var(--transition-fast) cubic-bezier(.25, .1, .25, 1);letter-spacing:.5px;min-height:44px}@supports (backdrop-filter: blur(10px)){.bottom-menu p a{backdrop-filter:var(--blur-light);-webkit-backdrop-filter:var(--blur-light)}}@supports not (backdrop-filter: blur(10px)){.bottom-menu p a{background:rgba(255,255,255,.1)}}.bottom-menu p a:focus-visible{outline:2px solid var(--text-primary);outline-offset:3px;border-radius:3px}.bottom-menu p a:hover{background:var(--glass-active);border-color:var(--glass-border-hover);box-shadow:var(--shadow-subtle)}.bottom-menu p a:hover{color:var(--text-primary)}.code-block-wrapper{position:relative;margin:var(--space-lg) 0}.code-block-wrapper pre{margin:0}.code-block-wrapper:hover .copy-code-button,.code-block-wrapper:focus-within .copy-code-button{opacity:1}.copy-code-button{position:absolute;top:.4rem;right:.4rem;padding:.3rem .6rem;background:var(--glass-hover);border:1px solid var(--glass-border);transition:background var(--transition-base) cubic-bezier(.25, .1, .25, 1),border-color var(--transition-base) cubic-bezier(.25, .1, .25, 1);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast) cubic-bezier(.25, .1, .25, 1),color var(--transition-fast) cubic-bezier(.25, .1, .25, 1),opacity var(--transition-fast) cubic-bezier(.25, .1, .25, 1);display:flex;align-items:center;justify-content:center;gap:.3rem;z-index:10;opacity:0;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.5px;white-space:nowrap;line-height:1;min-height:0;min-width:0}@supports (backdrop-filter: blur(10px)){.copy-code-button{backdrop-filter:var(--blur-light);-webkit-backdrop-filter:var(--blur-light)}}@supports not (backdrop-filter: blur(10px)){.copy-code-button{background:rgba(255,255,255,.1)}}.copy-code-button:focus-visible{outline:2px solid var(--text-primary);outline-offset:3px;border-radius:3px}.copy-code-button svg{width:.85rem;height:.85rem;stroke:currentColor;flex-shrink:0;transition:stroke var(--transition-fast) cubic-bezier(.25, .1, .25, 1)}.copy-code-button:hover{background:var(--glass-active);color:var(--text-primary)}.copy-code-button.copied{color:var(--text-primary);opacity:1}.copy-code-button.error{color:#ff6b6b;opacity:1}pre{background:var(--glass-active);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--space-md);padding-right:clamp(1rem,.5rem + 3vw,4rem);overflow-x:auto;margin:var(--space-lg) 0;white-space:pre;box-shadow:var(--shadow-subtle);max-width:100%}@supports (backdrop-filter: blur(12px)){pre{backdrop-filter:var(--blur-strength);-webkit-backdrop-filter:var(--blur-strength)}}@supports not (backdrop-filter: blur(12px)){pre{background:rgba(255,255,255,.14)}}pre code{font-family:var(--font-mono);font-size:clamp(.8rem,.7rem + .2vw,.9rem);line-height:1.6;color:var(--text-primary)}code{background:var(--glass-hover);border:1px solid var(--glass-border);padding:.2rem .5rem;border-radius:4px;font-family:var(--font-mono);font-size:.9em;color:var(--text-primary)}#content pre code{display:block;padding:0;background:rgba(0,0,0,0);border:none;color:var(--text-primary)}blockquote{border-left:3px solid var(--glass-border);padding-left:var(--space-md);margin:var(--space-lg) 0;color:var(--text-secondary);font-style:italic}#content table{width:100%;border-collapse:collapse;margin:var(--space-lg) 0;background:var(--glass-hover);border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--glass-border)}@supports (backdrop-filter: blur(12px)){#content table{backdrop-filter:var(--blur-strength);-webkit-backdrop-filter:var(--blur-strength)}}@supports not (backdrop-filter: blur(12px)){#content table{background:rgba(255,255,255,.14)}}@media (max-width: 767px){#content table{display:block;overflow-x:auto;white-space:nowrap}}#content th{padding:var(--space-sm);text-align:left;font-family:var(--font-heading);font-weight:600;color:var(--text-primary);border-bottom:2px solid var(--glass-border);background:var(--glass-hover)}#content td{padding:.875rem var(--space-sm);border-bottom:1px solid var(--glass-border);color:var(--text-primary)}#content tbody tr{transition:background var(--transition-fast) cubic-bezier(.25, .1, .25, 1)}#content tbody tr:hover{background:var(--glass-hover)}img,video,iframe{max-width:100%;height:auto;display:block;border-radius:var(--radius-lg)}@media (max-width: 767px){.table-of-contents{position:static;top:auto;max-height:none}.table-of-contents .toc-list::before{display:none}.toc-link{border-left:2px solid var(--glass-border);margin-left:0}}@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}}:root{--glass-base: rgba(255, 255, 255, 0.03);--glass-hover: rgba(255, 255, 255, 0.06);--glass-active: rgba(255, 255, 255, 0.09);--glass-border: rgba(255, 255, 255, 0.1);--glass-border-hover: rgba(255, 255, 255, 0.18);--blur-light: blur(10px);--blur-strength: blur(12px);--text-primary: rgba(245, 243, 240, 0.96);--text-secondary: rgba(245, 243, 240, 0.65);--shadow-subtle: 0 4px 16px rgba(0, 0, 0, 0.1);--shadow-medium: 0 8px 24px rgba(0, 0, 0, 0.15);--shadow-strong: 0 12px 28px rgba(0, 0, 0, 0.18);--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 10px;--radius-pill: 20px;--font-heading: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace;--space-xs: clamp(0.35rem, 0.25rem + 0.5vw, 0.5rem);--space-sm: clamp(0.65rem, 0.4rem + 0.8vw, 1rem);--space-md: clamp(0.85rem, 0.5rem + 1vw, 1.5rem);--space-lg: clamp(1.25rem, 0.8rem + 1.2vw, 2rem);--space-xl: clamp(1.75rem, 1rem + 1.8vw, 3rem);--space-2xl: clamp(2rem, 1.2rem + 2.2vw, 4rem);--space-3xl: clamp(2.5rem, 1.5rem + 3vw, 6rem);--text-base: clamp(0.9rem, 0.8rem + 0.25vw, 1rem);--text-sm: clamp(0.78rem, 0.7rem + 0.2vw, 0.85rem);--text-xs: clamp(0.68rem, 0.6rem + 0.2vw, 0.75rem);--wrap-padding: clamp(1rem, 0.5rem + 2vw, 2rem);--card-padding: clamp(1.25rem, 0.8rem + 1.2vw, 2rem);--grid-gap: clamp(0.75rem, 0.5rem + 1vw, 1.5rem);--card-min-width: clamp(200px, 40vw, 320px);--tile-min-width: clamp(130px, 25vw, 280px);--z-background: -1;--z-base: 1;--z-header: 10;--z-scroll-button: 20;--z-progress: 30;--z-modal: 100;--z-tooltip: 200;--transition-fast: 0.2s;--transition-base: 0.3s;--transition-slow: 0.4s;--bg-body: #0a0a0a}:root{--glass-base: rgba(255, 255, 255, 0.03);--glass-hover: rgba(255, 255, 255, 0.06);--glass-active: rgba(255, 255, 255, 0.09);--glass-border: rgba(255, 255, 255, 0.1);--glass-border-hover: rgba(255, 255, 255, 0.18);--blur-light: blur(10px);--blur-strength: blur(12px);--text-primary: rgba(245, 243, 240, 0.96);--text-secondary: rgba(245, 243, 240, 0.65);--shadow-subtle: 0 4px 16px rgba(0, 0, 0, 0.1);--shadow-medium: 0 8px 24px rgba(0, 0, 0, 0.15);--shadow-strong: 0 12px 28px rgba(0, 0, 0, 0.18);--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 10px;--radius-pill: 20px;--font-heading: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace;--space-xs: clamp(0.35rem, 0.25rem + 0.5vw, 0.5rem);--space-sm: clamp(0.65rem, 0.4rem + 0.8vw, 1rem);--space-md: clamp(0.85rem, 0.5rem + 1vw, 1.5rem);--space-lg: clamp(1.25rem, 0.8rem + 1.2vw, 2rem);--space-xl: clamp(1.75rem, 1rem + 1.8vw, 3rem);--space-2xl: clamp(2rem, 1.2rem + 2.2vw, 4rem);--space-3xl: clamp(2.5rem, 1.5rem + 3vw, 6rem);--text-base: clamp(0.9rem, 0.8rem + 0.25vw, 1rem);--text-sm: clamp(0.78rem, 0.7rem + 0.2vw, 0.85rem);--text-xs: clamp(0.68rem, 0.6rem + 0.2vw, 0.75rem);--wrap-padding: clamp(1rem, 0.5rem + 2vw, 2rem);--card-padding: clamp(1.25rem, 0.8rem + 1.2vw, 2rem);--grid-gap: clamp(0.75rem, 0.5rem + 1vw, 1.5rem);--card-min-width: clamp(200px, 40vw, 320px);--tile-min-width: clamp(130px, 25vw, 280px);--z-background: -1;--z-base: 1;--z-header: 10;--z-scroll-button: 20;--z-progress: 30;--z-modal: 100;--z-tooltip: 200;--transition-fast: 0.2s;--transition-base: 0.3s;--transition-slow: 0.4s;--bg-body: #0a0a0a}.table-of-contents{padding:0;margin:var(--space-lg) 0;position:sticky;top:var(--space-lg);max-height:calc(100vh - 4rem);overflow-y:auto;opacity:0;transform:translateY(10px);transition:opacity var(--transition-fast) cubic-bezier(.25, .1, .25, 1),transform var(--transition-fast) cubic-bezier(.25, .1, .25, 1);will-change:opacity,transform;scrollbar-width:thin;scrollbar-color:var(--glass-border) rgba(0,0,0,0)}.table-of-contents::-webkit-scrollbar{width:4px}.table-of-contents::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.table-of-contents::-webkit-scrollbar-thumb{background:var(--glass-border);border-radius:4px}.table-of-contents::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.table-of-contents.visible{opacity:1;transform:translateY(0)}.toc-header{margin-bottom:.75rem;padding-left:var(--space-sm)}.toc-title{font-family:var(--font-heading);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:1.2px;color:var(--text-secondary);opacity:.9}.toc-list{list-style:none;padding:0;margin:0;position:relative}.toc-list::before{content:"";position:absolute;top:0;bottom:0;left:0;width:1px;background:var(--glass-border);opacity:.5}.toc-item{margin:0}.toc-item.toc-item--nested{margin-left:0}.toc-link{display:block;padding:.35rem var(--space-sm);color:var(--text-secondary);font-size:clamp(.78rem,.5rem + .4vw,.9rem);text-decoration:none;border-left:2px solid rgba(0,0,0,0);transition:color var(--transition-fast) cubic-bezier(.25, .1, .25, 1),border-left-color var(--transition-fast) cubic-bezier(.25, .1, .25, 1),background var(--transition-fast) cubic-bezier(.25, .1, .25, 1);margin-left:-1px}.toc-link:focus-visible{outline:2px solid var(--text-primary);outline-offset:3px;border-radius:3px}.toc-link:hover{color:var(--text-primary);border-left-color:var(--text-secondary);background:var(--glass-hover)}.toc-link.toc-link--active{color:var(--text-primary);border-left-color:var(--text-primary);font-weight:500;background:var(--glass-hover)}.toc-link.toc-link--nested{font-size:clamp(.76rem,.52rem + .3vw,.85rem);padding-top:.25rem;padding-bottom:.25rem;padding-left:var(--space-md)}.toc-link.toc-link--nested.toc-link--active{color:var(--text-primary);border-left-color:var(--text-primary)}@font-face{font-family:"Science Gothic";src:url("/Science_Gothic/ScienceGothic-VariableFont_CTRS,slnt,wdth,wght.ttf") format("truetype");font-weight:100 900;font-style:normal;font-display:swap}:root{--font-heading: "Science Gothic", sans-serif;--font-body: "Science Gothic", sans-serif;--font-mono: "Science Gothic", monospace}#content h1,#content h2,#content h3,#content h4,#title{font-variation-settings:"wdth" 125,"wght" 800,"CTRS" 0}#home-link,.bottom-menu p a,.tag,.tile-title{font-variation-settings:"wdth" 90,"wght" 600}body,article p,.card p{font-variation-settings:"wdth" 100,"wght" 600}code,pre,pre code{font-variation-settings:"wdth" 90,"wght" 600,"CTRS" 50;letter-spacing:.02em} \ No newline at end of file
diff --git a/static/Raja_Ravi_Varma,_Sakunthala_Pathralekhan.jpg b/static/Raja_Ravi_Varma,_Sakunthala_Pathralekhan.jpg
new file mode 100644
index 0000000..1a883f6
--- /dev/null
+++ b/static/Raja_Ravi_Varma,_Sakunthala_Pathralekhan.jpg
Binary files differ
diff --git a/static/dq_sketch.png b/static/dq_sketch.png
new file mode 100644
index 0000000..563ca63
--- /dev/null
+++ b/static/dq_sketch.png
Binary files differ
diff --git a/themes/prism b/themes/prism
new file mode 160000
+Subproject d04bba3f8de16c19d3652a5e6a4d90ca85ee538
diff --git a/zola.toml b/zola.toml
new file mode 100644
index 0000000..fdb4e7d
--- /dev/null
+++ b/zola.toml
@@ -0,0 +1,99 @@
+base_url = "https://veradec.xyz/" # Your site URL
+title = "Venkata Rao Dechiraju" # Site title (shown in header)
+description = "made by a actual human" # Meta description for SEO
+default_language = "en" # Site language code (en, ru, etc)
+
+compile_sass = true # Compile Sass to CSS
+minify_html = true # Minify HTML output for performance
+
+
+generate_feeds = true # RSS/Atom feed
+feed_filenames = ["atom.xml", "rss.xml"]
+
+theme = "prism"
+
+# TAXONOMIES - Categories, tags, authors
+taxonomies = [
+ { name = "tags", feed = true }, # Enable tags with RSS feed
+ { name = "authors", feed = true }, # Enable authors with RSS feed
+ { name = "categories", feed = true } # Enable categories with RSS feed
+]
+
+# MARKDOWN SETTINGS
+[markdown]
+render_emoji = true # Convert :smile: to 😊
+external_links_target_blank = true # Open external links in new tab
+external_links_no_follow = true # Add rel="nofollow" to external links
+external_links_no_referrer = true # Add rel="noreferrer" for privacy
+smart_punctuation = true # Convert -- to em-dash, etc
+
+# Syntax highlighting, see https://github.com/getzola/giallo for options
+highlighting = { theme = "github-dark" }
+
+# THEME SETTINGS [extra]
+[extra]
+
+# Navigation
+home = "back" # Text for home button (e.g., "home", "back", "←")
+
+# Background options (choose ONE):
+background_image = "Raja_Ravi_Varma,_Sakunthala_Pathralekhan.jpg" # URL to background image
+# OR
+# background_gradient = "linear-gradient(135deg, #1e3a8a 0%, #7c3aed 50%, #ec4899 100%)"
+
+# Table of Contents
+show_toc = true # Show table of contents on posts
+
+# Main navigation menu
+sam_menu = [
+ { text = "about", link = "/about" },
+ { text = "projects", link = "/projects" },
+ { text = "git", link = "https://git.veradec.xyz" },
+ { text = "resume", link = "/resume" },
+ { text = "posts", link = "/posts" },
+ { text = "services", link = "https://services.veradec.xyz" }
+]
+
+sam_bottom_menu = true # Show navigation menu at page bottom
+
+# Post metadata display
+show_word_count = true # Display word count on posts
+show_reading_time = true # Display estimated reading time
+
+# Comments
+comments = true # Enable/disable Giscus comments globally
+
+# SEO & Meta
+keywords = "blog, tech, programming" # Meta keywords (optional)
+banner = "static/banner.png" # OG:image for social media (optional)
+
+# GISCUS COMMENTS - GitHub-based comments system
+# [extra.giscus]
+# enabled = true # Enable Giscus comments
+# repo = "username/repo" # GitHub repo for comments
+# repo_id = "R_xxxxx" # GitHub repo ID (get from giscus.app)
+# category = "Announcements" # Discussion category
+# category_id = "DIC_xxxxx" # Category ID (get from giscus.app)
+# mapping = "pathname" # Map comments to: pathname, url, title, og:title
+# strict = "0" # Strict title matching (0 or 1)
+# reactions_enabled = "1" # Enable reactions (0 or 1)
+# emit_metadata = "0" # Emit discussion metadata (0 or 1)
+# input_position = "bottom" # Comment input: top or bottom
+# theme = "catppuccin_frappe" # Giscus theme (see giscus.app for options)
+# lang = "en" # Language code
+
+# FOOTER
+[extra.sam_footer]
+text = "Built using Zola & Prism theme" # Footer text (supports HTML)
+
+# AUTHOR INFO - Used in meta tags and structured data
+[extra.author]
+name = "Venkata Rao Dechiraju" # Author name
+email = "venkatraodechiraju@gmail.com" # Author email (optional)
+url = "https://verade.xyz" # Author website (optional)
+
+# FEATURES - Toggle theme features on/off
+[extra.features]
+copy_code_button = true # Show copy button on code blocks
+reading_progress_bar = true # Show reading progress bar at top
+smooth_scroll = true # Enable smooth scrolling for anchor links