WiSiHe — my portfolio and playground in one. Illustration, client work, and experiments on a Next.js monorepo with Sanity CMS, design tokens, Algolia search, and Motion.
Started March 2021, still in progress. I rebuild sections whenever I learn something worth shipping — no finish line, and that is the point.
This one's personal. WiSiHe is my own website — the place where illustration and development share one home that's entirely mine. I started building it in March 2021 with a simple goal: stop renting space on other platforms and make something that actually feels like me. Five years later it's still evolving, and honestly I think it always will be.
There's something uniquely strange about building your own portfolio. You're the client, the designer, the developer, and the critic all at once. Every decision is both a creative choice and a technical one. I've rebuilt whole sections more times than I can count — not because they were broken, but because I got better. That's the point.
I wanted one URL that could hold paintings, client work, experiments, recipes, and the occasional WebGL rabbit hole — without forcing everything into separate tools or templates. The site is the portfolio, but it is also where I try ideas first: motion, search, CMS modelling, design tokens, whatever I am learning that week.
What started as a single Next.js app is now a pnpm monorepo orchestrated with Turborepo. The live site, Sanity Studio, shared packages, and Storybook docs all live in one workspace so changes to tokens or components propagate without copy-paste.
apps/
nextjs-portfolio/ # wisihe.no — paintings, projects, recipes, 3D
sanity-studio/ # content editing + Algolia sync scripts
packages/
tokens/ # Style Dictionary → CSS + Tailwind v4 themes
ui-react/ # shared React components (Button, PaintingCard, …)
sanity-queries/ # typed GROQ for the Next.js app
utils/ # small shared helpersThe stack is deliberately modern — I use this site as a live testbed for tools I care about. A few names that show up in the codebase today:
Because the site is never "done", the interesting work is incremental. Recent passes have focused on making the homepage and project pages feel more editorial — tighter cards, better image treatment, case-study typography — while keeping performance sane.
Almost everything public-facing is editable in Sanity: project summaries and long-form case studies, painting metadata, homepage sections, SEO fields, and connected live URLs. Shared GROQ lives in packages/sanity-queries so the Next.js app and scripts query the same shapes.
Draft mode and Sanity Live Preview let me review changes on wisihe.no before publishing. Studio runs at wisihe.sanity.studio. Paintings and projects index to Algolia via studio scripts — search stays fast without loading the entire catalogue into the browser.
You're looking at a project with no finish line, and I'm completely fine with that. Every time I ship a client design system or a shader demo, something useful tends to flow back here — a component, a content pattern, or a lesson about what not to over-build. The site is the notebook.