{
  "posts": [
    {
      "slug": "2026-10-12-358-commits-crimes-againt-swe",
      "title": "358 Commits, ∞ crimes againt SWE",
      "date": "2026-10-12",
      "author": "Admin",
      "category": "IT",
      "readTime": 12,
      "featured": false,
      "cover": "https://assets.ashwaracing.org/images/blog/2026-10-12-358-commits-crimes-againt-swe-image-1.jpg",
      "coverAlt": "Side Profile Man Staring Closely Intensely Stock Photo 481976482 |  Shutterstock",
      "excerpt": "I read every commit message on our website repo so you don’t have to. Some of them are funny. Some of them are a cry for help. One of them literally says “help me”.",
      "content": [
        {
          "type": "image",
          "alt": "Side Profile Man Staring Closely Intensely Stock Photo 481976482 |  Shutterstock",
          "src": "https://assets.ashwaracing.org/images/blog/2026-10-12-358-commits-crimes-againt-swe-image-1.jpg",
          "caption": ""
        },
        {
          "type": "paragraph",
          "text": "**358 COMMITS, 3 PRAYERS, 1 “HELP ME”**"
        },
        {
          "type": "paragraph",
          "text": "*The unofficial biography of our website, told through the git log*"
        },
        {
          "type": "paragraph",
          "text": "In which a team that promised “no build step” builds three of them, a driver in a halo gets blamed for everything, and one man is quietly banned from an easter egg."
        },
        {
          "type": "paragraph",
          "text": "Reading time: about 8 minutes. Sanity required: none."
        },
        {
          "type": "paragraph",
          "text": "**Prologue: a promise was made**"
        },
        {
          "type": "paragraph",
          "text": "Every project starts with a lie. Ours is in the README, and it’s a good one: **“No framework. No build step. Open index.html and it works.”**"
        },
        {
          "type": "paragraph",
          "text": "I want you to hold on to that sentence, because I spent an evening reading the repo from the first commit to the latest, and that sentence did not survive. By October the “no build step” website had build_site.py, a Wrangler config, a Cloudflare R2 bucket, a nightly bot, two Google Apps Script projects and 33 CSS files. It is the only website I know with a README that reads like a before-and-after photo."
        },
        {
          "type": "image",
          "alt": "readme.png",
          "src": "https://assets.ashwaracing.org/images/blog/2026-10-12-358-commits-crimes-againt-swe-image-2.png",
          "caption": ""
        },
        {
          "type": "paragraph",
          "text": "*Left: February. Right: what February did not see coming.*"
        },
        {
          "type": "paragraph",
          "text": "The README also says the custom domain “is not currently configured” and that the site lives at the default URL. Which is, technically, what a custom domain is. But we’re not here to nitpick. We’re here to nitpick for eight more pages."
        },
        {
          "type": "heading",
          "level": 1,
          "text": "**Act I: Optimism**"
        },
        {
          "type": "paragraph",
          "text": "The first commit is, with great dignity, “Initial Commit”. Then comes a stretch of people who believed in themselves. “Some more changes.” “Some image optimizations.” Then “Some more image optimizations.” Then, in a bold act of variety, “some image optimizations” with a lowercase s."
        },
        {
          "type": "paragraph",
          "text": "There is also “Currently being built to all the pages”, which is a sentence in the way a car with three wheels is a car. You get where it’s going. You don’t want to be a passenger."
        },
        {
          "type": "paragraph",
          "text": "This is the honeymoon phase. Nobody has typed a keyboard smash yet. The CSS is young and the !importants are few. Savour it."
        },
        {
          "type": "heading",
          "level": 1,
          "text": "**Act II: The prayer era**"
        },
        {
          "type": "paragraph",
          "text": "Somewhere around February, the commit messages stopped describing the work and started negotiating with a higher power."
        },
        {
          "type": "paragraph",
          "text": "*“claude css :pray fix”*"
        },
        {
          "type": "paragraph",
          "text": "*“Verification for website, don’t delete the google file :pray”*"
        },
        {
          "type": "paragraph",
          "text": "*“Styling fixes are upto god :pray”*"
        },
        {
          "type": "paragraph",
          "text": "Three prayers, one per commit, and honestly the most honest documentation in the repo. If you want to know which parts of our CSS are load-bearing and which are decorative, the answer is: nobody knows, God knows, and God has not pushed to main."
        },
        {
          "type": "paragraph",
          "text": "My favourite of the era is “Fixed a lot of errors written by me using Claude, goated ?!” That is a bug fix, a confession and a code review in a single line, finished off with a question mark and an exclamation mark because the author could not decide how they felt. Same, honestly."
        },
        {
          "type": "paragraph",
          "text": "And then there is the file. google65122155159fc983.html sits in the root of the site, a Google verification file that must never be deleted. It has a commit message begging us to leave it alone and no other explanation. It is our Stonehenge. We don’t know who built it, but we know what happens if you move it."
        },
        {
          "type": "heading",
          "level": 1,
          "text": "**Act III: March 14th, a day I would like to forget**"
        },
        {
          "type": "paragraph",
          "text": "Let me set the scene. It’s a Saturday. Someone wants the team page to pull its roster from a Google Form. This is a reasonable thing to want. What follows is not."
        },
        {
          "type": "image",
          "alt": "terminal.png",
          "src": "https://assets.ashwaracing.org/images/blog/2026-10-12-358-commits-crimes-againt-swe-image-3.png",
          "caption": ""
        },
        {
          "type": "paragraph",
          "text": "*Seventeen commits. One day. One cry for help, timestamped.*"
        },
        {
          "type": "paragraph",
          "text": "Read the log top to bottom and you can watch a person’s hope leave their body in real time. “Google form sync tryout ?” is a man with a plan. “pullfix” is a man with a problem. “sync changes”, “Some more changes”, “Some changes for stupid” (stupid is a recipient now) and then “more changes wtf”, which is the commit equivalent of staring at the ceiling."
        },
        {
          "type": "paragraph",
          "text": "And at 15:38, seventy-seven minutes after the first commit, just two words: **“help me”.**"
        },
        {
          "type": "paragraph",
          "text": "Nobody replied. In the meantime, our nightly bot kept quietly committing “Auto-sync team data” with the date and an emoji, like a very polite coworker who keeps filing timesheets while the building is on fire. The bot, I should say, has the best commit messages in the repo. It has never once written “bruh”."
        },
        {
          "type": "heading",
          "level": 1,
          "text": "**The cardiogram**"
        },
        {
          "type": "paragraph",
          "text": "If you plot the commits per month, you get something that looks suspiciously like a heart monitor in a medical drama."
        },
        {
          "type": "image",
          "alt": "months.png",
          "src": "https://assets.ashwaracing.org/images/blog/2026-10-12-358-commits-crimes-againt-swe-image-4.png",
          "caption": ""
        },
        {
          "type": "paragraph",
          "text": "*January: silence. June: we don’t talk about June.*"
        },
        {
          "type": "paragraph",
          "text": "There is the exam-season flatline, the March spike, a quiet summer and then the October rocket: 57 commits in 12 days. That last bit is the Cloudflare sprint, which we’ll get to. For now, just note that the team’s productivity follows the same law as every student project in history: nothing, nothing, nothing, panic, everything."
        },
        {
          "type": "paragraph",
          "text": "And if you plot how sane the commit messages are over the same period, you get this, which I measured very scientifically:"
        },
        {
          "type": "image",
          "alt": "sanity.png",
          "src": "https://assets.ashwaracing.org/images/blog/2026-10-12-358-commits-crimes-againt-swe-image-5.png",
          "caption": ""
        },
        {
          "type": "paragraph",
          "text": "*Axes are accurate. Methodology is not.*"
        },
        {
          "type": "heading",
          "level": 1,
          "text": "**A short dictionary of our commit messages**"
        },
        {
          "type": "paragraph",
          "text": "For future contributors, here is a translation guide. I have been doing this for a while and I’m fairly confident in it."
        },
        {
          "type": "list",
          "items": [
            "**What the commit said** — **What it meant**"
          ],
          "ordered": false
        },
        {
          "type": "list",
          "items": [
            "“asda” / “asdsa” — I fell asleep on the keyboard, but only just"
          ],
          "ordered": false
        },
        {
          "type": "list",
          "items": [
            "“bruh” — The build failed for the third time and I’m a different person now"
          ],
          "ordered": false
        },
        {
          "type": "list",
          "items": [
            "“she” — I don’t remember. It was important. It’s gone."
          ],
          "ordered": false
        },
        {
          "type": "list",
          "items": [
            "“Some changes for stupid” — A bug, addressed personally"
          ],
          "ordered": false
        },
        {
          "type": "list",
          "items": [
            "“LCP fixes for a faster tomorrow :)” — A motivational poster that happens to be a commit"
          ],
          "ordered": false
        },
        {
          "type": "list",
          "items": [
            "“Updated www to nothing” — The most philosophical commit in the repo"
          ],
          "ordered": false
        },
        {
          "type": "list",
          "items": [
            "“broken update” — A hazard sign, left on main for travellers"
          ],
          "ordered": false
        },
        {
          "type": "list",
          "items": [
            "“I am tired boss” — Cannot argue with this one"
          ],
          "ordered": false
        },
        {
          "type": "paragraph",
          "text": "There is also a short and noble tradition of the SEO saga. On May 11th alone we had “Added canonical urls”, then “Added the canonical urls” (the is new), then “Updated and added canonical url”. It is the same commit being made three times by someone who is slowly losing faith in the word “canonical”. The case was finally closed in October with a custom 404 page, five months later. Justice is slow but it has a lovely 404 page."
        },
        {
          "type": "heading",
          "level": 1,
          "text": "**The Rube Goldberg blog machine**"
        },
        {
          "type": "paragraph",
          "text": "Now we get to the part where we got a bit carried away. We wanted a blog. A normal person would write a Markdown file and push it. We built this:"
        },
        {
          "type": "image",
          "alt": "machine.png",
          "src": "https://assets.ashwaracing.org/images/blog/2026-10-12-358-commits-crimes-againt-swe-image-6.png",
          "caption": ""
        },
        {
          "type": "paragraph",
          "text": "*Six services. Eight steps. One article.*"
        },
        {
          "type": "paragraph",
          "text": "A Google Form feeds an Apps Script that interrogates a DOCX through the Docs API, flattens it into Markdown, ships the images to R2, commits it to GitHub, wakes up a Cloudflare build, and runs a Python script that finally spits out a JSON file. All of this to publish exactly one article at the time of writing: “RZ-XX7-C: Beyond the Engine”."
        },
        {
          "type": "paragraph",
          "text": "I checked the documentation, too. Both Apps Script projects have their own SETUP.md. The blog pipeline has more documentation than a few of the subsystems on the actual car. Toyota would call this overengineered. NASA would call it a promising start."
        },
        {
          "type": "paragraph",
          "text": "Credit where it’s due, though. Near the end of this pipeline the robot started writing its own commit messages and managed “Add Add article image” six times in a row. Six images, six “Add Add”s. Even the automation stutters when it’s nervous."
        },
        {
          "type": "heading",
          "level": 1,
          "text": "**The CSS: a field guide**"
        },
        {
          "type": "paragraph",
          "text": "The site has 33 CSS files for roughly 20 pages. The 404 page has its own stylesheet. It has its own design system, for a page nobody wants to see. To be fair, it’s the best copywriting on the whole website: “Off the track. This page isn’t here.” We saved our best writing for our worst day."
        },
        {
          "type": "paragraph",
          "text": "Then there is subsystem-refresh.css, which is the name you give a file when you already have subsystem.css and subsystem-landing.css and no energy left to fix either. It’s a sequel with no plot. There are 24 !important declarations across the stylesheets, each one a tiny act of distrust in the cascade, and in us."
        },
        {
          "type": "paragraph",
          "text": "And then the z-index. I’d like to present this as evidence."
        },
        {
          "type": "image",
          "alt": "zindex.png",
          "src": "https://assets.ashwaracing.org/images/blog/2026-10-12-358-commits-crimes-againt-swe-image-7.png",
          "caption": ""
        },
        {
          "type": "paragraph",
          "text": "*This is not a design system. This is an auction.*"
        },
        {
          "type": "paragraph",
          "text": "1200, 2500, 9999, 9999 again (someone didn’t trust the first one), and finally 99999. If your modal needs to be that high up, it isn’t a layer anymore, it’s a satellite."
        },
        {
          "type": "paragraph",
          "text": "Meanwhile, loader.js runs to 664 lines. For a loading screen. It preloads every sponsor logo, tracks every image and stylesheet, waits for fonts and tries to buffer the audio and video before it lets you see the site. We spent March chasing a perfect LCP score and even deleted the hero video to get there, and then wrote a 664-line bouncer that makes you wait for every single asset anyway. We sprinted to the start line and then locked the gate."
        },
        {
          "type": "heading",
          "level": 1,
          "text": "**The Vibin situation**"
        },
        {
          "type": "paragraph",
          "text": "I saved the best for here. Deep in scripts/sync.py, the script that syncs our 372-person roster, there is a config block called MANUAL_FLAGS. It has exactly one entry."
        },
        {
          "type": "image",
          "alt": "vibin.png",
          "src": "https://assets.ashwaracing.org/images/blog/2026-10-12-358-commits-crimes-againt-swe-image-8.png",
          "caption": ""
        },
        {
          "type": "paragraph",
          "text": "*372 people. One exemption. No explanation.*"
        },
        {
          "type": "paragraph",
          "text": "Out of 372 team members, one is hard-coded by name, and the only thing the code says about him is that he does not get the easter egg. We have a full 3D easter egg on the team page and one man was personally, explicitly, in Python, ruled out of it."
        },
        {
          "type": "paragraph",
          "text": "Was it a request? A penalty? A protest? Did he earn it? I have asked around and nobody remembers, which only makes it better. Vibin, if you’re reading this: the flag stays. It’s part of the heritage now. We love you."
        },
        {
          "type": "heading",
          "level": 1,
          "text": "**Smaller sagas worth a mention**"
        },
        {
          "type": "paragraph",
          "text": "**The font saga.** February: Google Fonts added. March 31: “better loading times due to no fonts”. April 9: “switched to a swap method”. September 30: “Added fonts”. October 2: “To alleviate CORS for fonts”. That is a seven-month relationship with typography: loved, dumped, taken back, and finally a restraining order from the browser."
        },
        {
          "type": "paragraph",
          "text": "**The great prototype photo upload.** On August 6th we uploaded eight cars’ worth of photos in eight consecutive commits, one per car. Then someone cleaned up most of them. It’s the Git version of ordering everything on the menu and asking for a to-go box."
        },
        {
          "type": "paragraph",
          "text": "**The merge handshakes.** More than twenty commits read “Merge branch ‘main’ of…” followed by a personal fork. The org repo and a fork spent the year bumping into each other in a hallway, each time saying “oh, you’re here too?”"
        },
        {
          "type": "paragraph",
          "text": "**The R2 trilogy.** May: “migrate assets to Cloudflare R2”. August: “Update Cloudflare R2 links”. October: “Publish blog articles and images to R2”. R2 is the promised land and the images keep sneaking back across the border."
        },
        {
          "type": "paragraph",
          "text": "**The weirdly kind ones.** “fix: July edition taken down” sounds like a newspaper issuing a correction. “code: fixed up heights of short kings :crown” is the most inclusive CSS fix I have ever seen. “Removed launch teaser; added good looking brolls :love” has a feature, a typo and a confession in one line."
        },
        {
          "type": "heading",
          "level": 1,
          "text": "**The October speedrun**"
        },
        {
          "type": "paragraph",
          "text": "And then, around the 10th, something happened. In roughly 72 hours the repo went from “Prepare Cloudflare Pages build” to deleting the CNAME, retiring the old GitHub Pages workflow, and shipping a crowdfunding page, a minimisable blog popup, an interactive newsletter reader, shareable team profiles and generated SEO pages."
        },
        {
          "type": "paragraph",
          "text": "Suddenly the commits were in Conventional Commits. feat(crowdfunding): add rewards and contribution tracking flow. fix(ui): improve update popup section layout. Same repo, same team, but now it owns a blazer. Three days earlier one of those people had typed “help me”."
        },
        {
          "type": "paragraph",
          "text": "I don’t know whether a deadline appeared or someone slept, and I have decided not to ask. Some mysteries are better left in the log."
        },
        {
          "type": "heading",
          "level": 1,
          "text": "**Credit where it’s due**"
        },
        {
          "type": "paragraph",
          "text": "I’ve been joking for pages, so let me be sincere for a paragraph. This codebase is better than its commit messages. The theme toggle wraps localStorage in a try/catch so it works in browsers that block storage, which a lot of production sites don’t bother with. The build script’s front-matter parser reports errors with file names and line numbers. The sync script promises it will never wipe manual entries, and then actually keeps that promise. There is not a single TODO in the repo."
        },
        {
          "type": "paragraph",
          "text": "Going from “asdsa” to a custom build pipeline on Cloudflare Workers in under a year, while also building a car, is a real achievement. Most people can’t get a working deploy in that time. We did it with prayers, stubbornness and one very busy bot."
        },
        {
          "type": "heading",
          "level": 1,
          "text": "**Epilogue**"
        },
        {
          "type": "paragraph",
          "text": "So, 358 commits. Three prayers. One “help me”. Thirty-three CSS files, one z-index of 99999, and exactly one man who isn’t allowed an easter egg. All of it exists to tell the world about a car."
        },
        {
          "type": "paragraph",
          "text": "If you’re a new member reading this before touching the repo: welcome. Commit often, write your messages like someone will read them, and for the love of God, don’t delete the Google file."
        },
        {
          "type": "paragraph",
          "text": "And please, whatever happens, leave “help me” in the history. It’s the best commit message we have."
        },
        {
          "type": "paragraph",
          "text": "**git commit -m \"finally done\"**"
        }
      ]
    },
    {
      "slug": "2026-07-16-celebrating-racing-heritage",
      "title": "Celebrating racing heritage",
      "date": "2026-07-16",
      "author": "Admin",
      "category": "Sponsorship, Marketing & Public Relations",
      "readTime": 2,
      "featured": false,
      "cover": "https://assets.ashwaracing.org/images/blog/2026-07-16-celebrating-racing-heritage-image-1.png",
      "coverAlt": "Cover of the July 2026 Ashwa Racing newsletter, celebrating racing heritage",
      "excerpt": "The July 2026 edition celebrates Ashwa Racing’s heritage and the knowledge, teamwork, and ambition passed between generations of members.",
      "content": [
        {
          "type": "image",
          "alt": "Cover of the July 2026 Ashwa Racing newsletter, celebrating racing heritage",
          "src": "https://assets.ashwaracing.org/images/blog/2026-07-16-celebrating-racing-heritage-image-1.png",
          "caption": ""
        },
        {
          "type": "heading",
          "level": 1,
          "text": "Celebrating Racing Heritage: The Story Behind July 2026"
        },
        {
          "type": "heading",
          "level": 2,
          "text": "Ashwa Racing?s story is built by generations of students who learn, design, test, and pass their knowledge forward."
        },
        {
          "type": "paragraph",
          "text": "Motorsport is always looking ahead: to the next design, the next test, and the next time a car takes to the track. But every new chapter begins with the work that came before it. The July 2026 edition of the Ashwa Racing newsletter celebrates that connection with its theme: ?Celebrating Racing Heritage.?"
        },
        {
          "type": "paragraph",
          "text": "For a student racing team, heritage is more than a collection of vehicles, photographs, or results. It lives in the knowledge shared between members: how a design evolved, what a test revealed, which assumptions had to be reconsidered, and what the team would do differently next time. These lessons give new members a place to begin and help the team keep moving forward."
        },
        {
          "type": "paragraph",
          "text": "That continuity matters because student teams change every year. People graduate, roles shift, and projects move from one group of hands to another. Clear documentation, thoughtful handovers, and a willingness to teach are part of engineering the team itself. They help preserve useful experience while leaving room for new ideas."
        },
        {
          "type": "paragraph",
          "text": "Racing heritage is not about repeating the past. It is about understanding the choices and effort that brought the team here, then using that understanding to make better decisions. Every generation contributes something: a solution, a fresh perspective, a hard-won lesson, or simply the time spent helping the next person learn."
        },
        {
          "type": "paragraph",
          "text": "The July edition is a reminder to celebrate both the machines and the people behind them. As Ashwa Racing continues its journey, the team?s greatest legacy is the knowledge, curiosity, and shared ambition that its members carry forward."
        }
      ]
    },
    {
      "slug": "2026-06-16-rz-xx7-c-beyond-the-engine",
      "title": "RZ-XX7-C : Beyond the Engine",
      "date": "2026-06-16",
      "author": "Aditeya Sarkar",
      "category": "Electrical & Testing",
      "readTime": 4,
      "featured": false,
      "cover": "https://assets.ashwaracing.org/images/blog/2026-06-16-rz-xx7-c-beyond-the-engine-image-1.png",
      "coverAlt": "Article image 1",
      "excerpt": "Ashwa Racing is building the RZ-XX7-C with a simplified, system-level electrical design: fewer boards, a single Interface Control Unit, a digital APPS, an upgraded BSPD, and a cheaper, more capable Relay Board.   Meanwhile, the IT team launched the club's open-source website and is starting work on an ERP system and driverless vehicle research.",
      "content": [
        {
          "type": "image",
          "alt": "Article image 1",
          "src": "https://assets.ashwaracing.org/images/blog/2026-06-16-rz-xx7-c-beyond-the-engine-image-1.png",
          "caption": ""
        },
        {
          "type": "paragraph",
          "text": "As we move to the end of the RZ-XX6-C post-race testing phase to the manufacturing of the RZ-XX7-C, significant improvements have been incorporated with regard to the design and overall planned execution. The team has learnt a lot and done a lot to rectify the glaring problems with the last prototype."
        },
        {
          "type": "paragraph",
          "text": "Coming to the electrical systems, last year's designs presented significant challenges in terms of system integration, packaging, manufacturability, testing, and cost. To address these shortcomings, the team adopted a completely new design philosophy. Rather than developing each subsystem in isolation, the focus shifted toward a system-level approach, with integration, reliability, and ease of manufacturing taking precedence throughout the design process."
        },
        {
          "type": "paragraph",
          "text": "The redesign begins at the heart of our prototype, the MoTeC M800 ECU. In the previous season, our telemetry architecture relied on more than five separate PCBs. The overall design was far from optimal, resulting in lengthy procurement and manufacturing timelines, higher costs, and a final integration that proved difficult to package and maintain."
        },
        {
          "type": "paragraph",
          "text": "To address these issues, a clear set of pre-design objectives was established before any hardware development began. This year's architecture was designed to:"
        },
        {
          "type": "list",
          "items": [
            "Meet the functional requirements of every subsystem."
          ],
          "ordered": false
        },
        {
          "type": "list",
          "items": [
            "Maximise the utilisation of the features already available within the MoTeC ecosystem."
          ],
          "ordered": false
        },
        {
          "type": "paragraph",
          "text": "Beyond its conventional functions, the MoTeC M800 is now also responsible for acquiring wheel speed and damper travel data."
        },
        {
          "type": "paragraph",
          "text": "All data is transmitted over CAN 2.0 to our Interface Control Unit (ICU), which is our integrated Wireless Telemetry, IMU, Display, and RPM processing unit."
        },
        {
          "type": "image",
          "alt": "Article image 2",
          "src": "https://assets.ashwaracing.org/images/blog/2026-06-16-rz-xx7-c-beyond-the-engine-image-2.png",
          "caption": ""
        },
        {
          "type": "paragraph",
          "text": "The Harness Schematic"
        },
        {
          "type": "paragraph",
          "text": "The Interface Control Unit (ICU) was developed with packaging and integration as the primary design goals. Last year's implementation required three separate boards at the front of the vehicle, adding unnecessary complexity without providing meaningful benefits. The new ICU consolidates these functions into a single compact unit mounted directly behind the display. The ICU is powered directly from the low-voltage (LV+) supply (11–16 V), while the display is powered via the ICU's integrated 5 V buck converter through a USB-C connector."
        },
        {
          "type": "image",
          "alt": "Article image 3",
          "src": "https://assets.ashwaracing.org/images/blog/2026-06-16-rz-xx7-c-beyond-the-engine-image-3.png",
          "caption": ""
        },
        {
          "type": "paragraph",
          "text": "3D Render of ICU (i) Bare (ii) Behind the display"
        },
        {
          "type": "paragraph",
          "text": "In addition to these changes, the vehicle now utilizes a digital APPS. Compared to the previous analog APPS, the digital one offers improved reliability and a more cost-effective solution."
        },
        {
          "type": "image",
          "alt": "Article image 4",
          "src": "https://assets.ashwaracing.org/images/blog/2026-06-16-rz-xx7-c-beyond-the-engine-image-4.png",
          "caption": ""
        },
        {
          "type": "paragraph",
          "text": "3D Render of (i) APPS Board (ii) BSPD"
        },
        {
          "type": "paragraph",
          "text": "Similarly, BSPD has been designed with integrated brake light control functionality. By incorporating brake light actuation directly into the BSPD, the need for a dedicated brake light actuation board has been eliminated, simplifying the electrical architecture."
        },
        {
          "type": "paragraph",
          "text": "We also replaced the power distribution board, which was abominably expensive and only partially functional, with the Relay Board at roughly one-eighth of the cost and twice the functionality. The Relay Board allows us to control all the cooling systems through the MoTeC ECU as well as manually by the driver."
        },
        {
          "type": "image",
          "alt": "Article image 5",
          "src": "https://assets.ashwaracing.org/images/blog/2026-06-16-rz-xx7-c-beyond-the-engine-image-5.png",
          "caption": ""
        },
        {
          "type": "paragraph",
          "text": "Open-top render of  draft MoTeC and Conduit Box"
        },
        {
          "type": "paragraph",
          "text": "The IT team has been working around the clock to get our website up and running at [www.ashwaracing.org](http://www.ashwaracing.org) The website code is fully open source and available at our organization's [GitHub](https://github.com/Ashwa-Racing). The website is fully up and logs our current newsletters, along with a gallery with exclusive images, our prototypes from the beginning of the club, and other details. Do visit the website!"
        },
        {
          "type": "image",
          "alt": "Article image 6",
          "src": "https://assets.ashwaracing.org/images/blog/2026-06-16-rz-xx7-c-beyond-the-engine-image-6.png",
          "caption": ""
        },
        {
          "type": "paragraph",
          "text": "Snippet of our website!"
        },
        {
          "type": "paragraph",
          "text": "Apart from website development, the IT team has been working on a custom ERP software stack while simultaneously advancing the development of our DV systems. Currently, the team is in the pre-design phase, studying research papers, evaluating existing implementations, and analysing their results to establish a strong technical foundation."
        },
        {
          "type": "image",
          "alt": "Article image 7",
          "src": "https://assets.ashwaracing.org/images/blog/2026-06-16-rz-xx7-c-beyond-the-engine-image-7.png",
          "caption": ""
        },
        {
          "type": "paragraph",
          "text": "Snippet of a paper we are referring"
        },
        {
          "type": "paragraph",
          "text": "With a rapidly evolving technological landscape, there is always something new to explore. Ashwa Racing provides the perfect platform to experiment with emerging technologies, enabling members to transform theoretical knowledge into practical engineering solutions."
        }
      ]
    }
  ]
}
