Skip to content

Commit c57e25a

Browse files
committed
Redesign homepage with React
1 parent a165dfb commit c57e25a

7 files changed

Lines changed: 865 additions & 227 deletions

File tree

AGENTS.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
This repository contains Rudramani Singha's personal academic landing page for `singha.io`.
66

7-
The site is a Vite-powered static website. GitHub Pages deployment is Actions-only. Do not preserve or reintroduce GitHub Pages "Deploy from a branch" support.
7+
The site is a Vite + React website. GitHub Pages deployment is Actions-only. Do not preserve or reintroduce GitHub Pages "Deploy from a branch" support.
88

99
## Communication
1010

@@ -16,8 +16,9 @@ The site is a Vite-powered static website. GitHub Pages deployment is Actions-on
1616

1717
## Source of Truth
1818

19-
- `index.html` is the main page and contains the current homepage content.
20-
- `stylesheet.css` is the current styling source.
19+
- `src/main.jsx` is the React app and contains the locked homepage content.
20+
- `index.html` is the Vite HTML entrypoint and contains metadata.
21+
- `stylesheet.css` is the current styling source imported by React.
2122
- `images/` contains the profile and project imagery.
2223
- `scripts/` contains research notebooks and artifacts linked from the site history.
2324
- `tools/` contains small build helpers.
@@ -34,9 +35,9 @@ The site is a Vite-powered static website. GitHub Pages deployment is Actions-on
3435

3536
## Frontend Rules
3637

37-
- Use Vite with npm and Node 24, as pinned by `.node-version`.
38+
- Use Vite, React, npm, and Node 24, as pinned by `.node-version`.
3839
- Keep dependencies minimal. The GitHub Actions path should stay well under 30 seconds whenever possible.
39-
- Do not add React, Svelte, Astro, Tailwind, or another framework without an explicit user decision.
40+
- Do not add Svelte, Astro, Tailwind, or another framework without an explicit user decision.
4041
- Styling work should preserve the current content and improve presentation only.
4142
- Prefer small, plain static-site changes over architectural churn.
4243

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
Personal website for [singha.io](https://singha.io/).
66

7-
The site is a static Vite project. Source files live in the repository; GitHub Actions builds them into `dist/` and deploys that artifact to GitHub Pages.
7+
The site is a Vite + React project. Source files live in the repository; GitHub Actions builds them into `dist/` and deploys that artifact to GitHub Pages.
88

99
## How Publishing Works
1010

@@ -72,7 +72,8 @@ After the push, check the deployment here:
7272
## Important Files
7373

7474
- `index.html`: homepage content and metadata
75-
- `stylesheet.css`: site styling
75+
- `src/main.jsx`: React app and locked homepage content
76+
- `stylesheet.css`: site styling imported by the React app
7677
- `images/`: profile and project images
7778
- `404.html`: custom not-found page
7879
- `CNAME`: custom domain, `singha.io`
@@ -92,6 +93,7 @@ GitHub repository settings should be:
9293
## Notes
9394

9495
- This repo does not use Jekyll.
96+
- React is used for the homepage UI; Vite handles local development and production builds.
9597
- `node_modules/` and `dist/` are ignored.
9698
- Node is pinned in `.node-version`.
9799
- The production site is made by GitHub Actions, not by manually uploading local files.

index.html

Lines changed: 2 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -19,107 +19,9 @@
1919
<link rel="icon" href="favicon.ico" type="image/x-icon">
2020
<link rel="preconnect" href="https://fonts.googleapis.com">
2121
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
22-
<link rel="stylesheet" href="stylesheet.css" type="text/css">
2322
</head>
2423
<body>
25-
<table class="page-shell">
26-
<tbody>
27-
<tr class="row-reset">
28-
<td class="cell-reset">
29-
<table class="content-table">
30-
<tbody>
31-
<tr class="row-reset intro-row">
32-
<td class="intro-text">
33-
<p class="text-center">
34-
<span class="site-name">Rudramani Singha</span>
35-
</p>
36-
<p>
37-
I am a Data Scientist at the <a href="https://memorylongevity.org/" target="_blank" rel="noopener noreferrer">Program in Memory Longevity</a>, UTSW.
38-
I build probabilistic models to understand the brain.
39-
</p>
40-
<p class="text-center">
41-
<a href="mailto:rgs2151@columbia.eu">rgs2151[at]columbia.eu</a> &nbsp;/&nbsp;
42-
<a href="https://github.com/rgs2151" target="_blank" rel="noopener noreferrer">GitHub</a> &nbsp;/&nbsp;
43-
<a href="https://scholar.google.com/citations?user=nN4ARxkAAAAJ&amp;hl=en" target="_blank" rel="noopener noreferrer">Google Scholar</a>
44-
</p>
45-
</td>
46-
<td class="intro-photo">
47-
<img alt="Rudramani Singha profile photo" src="images/hero.jpg" class="profile-image">
48-
</td>
49-
</tr>
50-
</tbody>
51-
</table>
52-
53-
<table class="content-table">
54-
<tbody>
55-
<tr>
56-
<td class="section-cell">
57-
<h2 class="section-title">Selected Projects</h2>
58-
</td>
59-
</tr>
60-
</tbody>
61-
</table>
62-
63-
<table class="content-table">
64-
<tbody>
65-
<tr class="work-row">
66-
<td class="work-image-cell">
67-
<img src="images/marlax.gif" alt="Asymmetric Social Representations in the Prefrontal Cortex for Cooperative Behavior" class="work-thumb">
68-
</td>
69-
<td class="work-content-cell">
70-
<a href="https://doi.org/10.1101/2025.08.27.672249" target="_blank" rel="noopener noreferrer">
71-
<span class="paper-title">Asymmetric Social Representations in the Prefrontal Cortex for Cooperative Behavior</span>
72-
</a>
73-
<p class="paper-authors">
74-
Yuan Cheng, Yusi Chen, Myungji Kwak, Ross P. Kempner, <strong>Rudramani Singha</strong>, Jared Winslow, Runqi Liu, Umais Khan, Tessa Spangler, Alvi Khan, Talmo Pereira, Matthew Whiteway, Evan S. Schaffer, Nuttida Rungratsameetaweemana, Nan Yang, Herbert Zheng Wu
75-
</p>
76-
<p class="paper-links">
77-
<em>links:</em> [<a href="https://doi.org/10.1101/2025.08.27.672249" target="_blank" rel="noopener noreferrer">bioRxiv</a>] [<a href="https://github.com/NuttidaLab/MARLAX" target="_blank" rel="noopener noreferrer">code</a>]
78-
</p>
79-
<p>
80-
We introduce a mouse paradigm to study cooperative behavior where stable leader-follower roles emerge during joint foraging. Using calcium imaging and optogenetic disruption, the study shows medial prefrontal cortex representations are role-specific and critical for cooperation. I developed the forward-modeling framework paired with multi-agent inverse reinforcement learning to decode latent value functions driving cooperative decisions.
81-
</p>
82-
</td>
83-
</tr>
84-
85-
<tr class="work-row">
86-
<td class="work-image-cell">
87-
<img src="images/hmm.gif" alt="Bayesian Modeling Tutorial" class="work-thumb">
88-
</td>
89-
<td class="work-content-cell">
90-
<a href="https://art-of-neuron.github.io/" target="_blank" rel="noopener noreferrer">
91-
<span class="paper-title">Scaling Up Bayesian Models: Regressions, Mixtures, HMMs, and GLM-HMMs</span>
92-
</a>
93-
<p class="paper-authors">
94-
<strong>Rudramani Singha</strong>
95-
</p>
96-
<p class="paper-links">
97-
<em>links:</em> [<a href="https://art-of-neuron.github.io/" target="_blank" rel="noopener noreferrer">website</a>] [<a href="https://github.com/art-of-neuron/art-of-neuron.github.io" target="_blank" rel="noopener noreferrer">code</a>]
98-
</p>
99-
<p>
100-
This tutorial starts with intuitive Bayesian updates and builds to Hidden Markov Models and related latent-variable methods. It includes GLMs, input-driven Gaussian mixture models, and GLM-HMMs with comparisons between MCMC and EM estimation. Implementations cover PyMC, Stan, NumPyro, JAX, and Dynamax.
101-
</p>
102-
</td>
103-
</tr>
104-
</tbody>
105-
</table>
106-
107-
<table class="content-table">
108-
<tbody>
109-
<tr>
110-
<td class="footer-cell">
111-
<br>
112-
<p class="footer-note">
113-
&copy; 2026 Rudramani Singha
114-
</p>
115-
</td>
116-
</tr>
117-
</tbody>
118-
</table>
119-
</td>
120-
</tr>
121-
</tbody>
122-
</table>
24+
<div id="root"></div>
12325

12426
<script>
12527
if (!(window.doNotTrack === "1" || navigator.doNotTrack === "1" || navigator.doNotTrack === "yes" || navigator.msDoNotTrack === "1")) {
@@ -136,5 +38,6 @@ <h2 class="section-title">Selected Projects</h2>
13638
})();
13739
}
13840
</script>
41+
<script type="module" src="/src/main.jsx"></script>
13942
</body>
14043
</html>

package-lock.json

Lines changed: 41 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,10 @@
1111
},
1212
"devDependencies": {
1313
"vite": "^8.0.16"
14+
},
15+
"dependencies": {
16+
"lucide-react": "^1.17.0",
17+
"react": "^19.2.7",
18+
"react-dom": "^19.2.7"
1419
}
1520
}

0 commit comments

Comments
 (0)