work

Akilles

mobile app · 2026
Akilles on mobile
Akilles on mobile
Akilles on mobile
Akilles on mobile
01 / 04

A workout app with one job: open it and know exactly what to do.

Byggkollektivet

web app · 2026
Byggkollektivet
Byggkollektivet on desktop
Byggkollektivet, navet on desktop
Byggkollektivet, projekt on desktop
Byggkollektivet, projekt on desktop
Byggkollektivet, belaggning on desktop
Byggkollektivet, projekt on desktop
Byggkollektivet, hjulet on desktop
Byggkollektivet on mobile
Byggkollektivet, navet on mobile
Byggkollektivet, projekt on mobile
Byggkollektivet, projekt on mobile
Byggkollektivet, belaggning on mobile
Byggkollektivet, projekt on mobile
Byggkollektivet, hjulet on mobile
01 / 07

An internal planning and visualization tool for a construction company, fed by their data in Fortnox.

Gotmap

web app · 2026
amapofthrones.fyi
Gotmap on desktop
Gotmap on desktop
Gotmap on desktop
Gotmap on mobile
Gotmap on mobile
Gotmap on mobile
01 / 03

Interactive map of Westeros.

visit ↗

Michi

mobile app · 2026 · wip
Michi on mobile
Michi on mobile
Michi on mobile
Michi on mobile
Michi on mobile
01 / 05

Japanese learning app.

code ↗

Robo

web app · 2026
edchy.github.io/robo
Robo on desktop
Robo on mobile

A schedule app for a specific workplace. Users upload their PDF schedule and get a clear, easy-to-read monthly summary.

visit ↗

Rolling Dough Palace

website · 2026
edchy.github.io/rolling-dough-palace
Rolling Dough Palace on desktop
Rolling Dough Palace on desktop
Rolling Dough Palace, catering on desktop
Rolling Dough Palace, catering on desktop
Rolling Dough Palace, om oss on desktop
Rolling Dough Palace, om oss on desktop
Rolling Dough Palace on mobile
Rolling Dough Palace on mobile
Rolling Dough Palace, catering on mobile
Rolling Dough Palace, catering on mobile
Rolling Dough Palace, om oss on mobile
Rolling Dough Palace, om oss on mobile
01 / 06

Brochure site for a pizza place. Built with Astro, focused on a warm, appetizing feel and fast static delivery.

visit ↗

Untangled

web app · 2026 · wip
untangled.se
Untangled on desktop
Untangled, 05 nobody can explain it on desktop
Untangled, 05 nobody can explain it on desktop
Untangled, 03 a space of meaning on desktop
Untangled on mobile
Untangled, 05 nobody can explain it on mobile
Untangled, 05 nobody can explain it on mobile
Untangled, 03 a space of meaning on mobile
01 / 04

AI learning plaform.

visit ↗

KetchUp

extension · 2026
github.com/Edchy/KetchUp
Time for a breakNice work. Step away for 17 minutes.KetchUp

Productivity pomodoro style chrome extension.

code ↗

nope.digital

website · 2026
nope.digital
nope.digital on desktop
nope.digital on desktop
nope.digital, work on desktop
nope.digital, about on desktop
nope.digital, about on desktop
nope.digital, room on desktop
nope.digital on mobile
nope.digital on mobile
nope.digital, work on mobile
nope.digital, about on mobile
nope.digital, about on mobile
nope.digital, room on mobile
01 / 06

Website for NØPE, my one-person digital practice. Built with Astro in a monorepo alongside the blog.

visit ↗

Tiny Coding Agent

cli · 2026
tiny-coding-agent — python
$ python agent.py
Tiny coding agent starting...
You: list
[{'name': 'hello.py', 'type': 'file'}, {'name': 'agent.py', 'type': 'file'}, {'name': 'llm.py', 'type': 'file'}, {'name': 'tools.py', 'type': 'file'}, {'name': 'commands.py', 'type': 'file'}]
You: ask read hello.py and turn it into a friendly greeting program in demo.py
Model: openai/gpt-4o-mini
Tool: read_file({'filename': 'hello.py'})
Tool: edit_file({'filename': 'demo.py', 'content': '#!/usr/bin/env python3\n"""\nPolished Greeting Program\n…'})
Assistant: Done. demo.py asks for your name, checks it, and greets you based on the time of day.
You: exit
Goodbye
$ python demo.py
============================================================
🌟 Welcome to the Tiny Coding Agent Greeting Program! 🌟
============================================================
📝 I'll create a personalized greeting just for you!

Please enter your name: ada
Would you like a formal greeting? (y/n) [default: n]: n

🎊 Good afternoon, Ada! Welcome to the Tiny Coding Agent. 🎉 🎊

The smallest possible coding agent. Built this to better understanding the inner workings and overall idea of how agent works. Very educational.

code ↗

J.Ro

website · 2026
edchy.github.io/J.Ro
J.Ro on desktop
J.Ro on desktop
J.Ro, contact on desktop
J.Ro, contact on desktop
J.Ro on mobile
J.Ro on mobile
J.Ro, contact on mobile
J.Ro, contact on mobile
01 / 04

Conceptual re-design for a standalone website. First iteration.

visit ↗

to.w

website · 2026
tovewatte.se
to.w on desktop
to.w on desktop
to.w on desktop
to.w on desktop
to.w, kurser on desktop
to.w, bark on desktop
to.w, bark on desktop
to.w on mobile
to.w on mobile
to.w on mobile
to.w on mobile
to.w, kurser on mobile
to.w, bark on mobile
to.w, bark on mobile
01 / 07

Website and brand identity for TO.W, silversmith Tove Wätte: handmade silver rings, ordered by email, and ring-making workshops.

visit ↗

Le Palais de Poche

website · 2026
edchy.github.io/palais-de-poche
Le Palais de Poche on desktop
Le Palais de Poche on desktop
Le Palais de Poche on desktop
Le Palais de Poche on desktop
Le Palais de Poche on mobile
01 / 04

Simple brochure site for my tiny house. Built with vanilla HTML, CSS, and JavaScript. It was fun to build without any framework.

visit ↗

Who Here...?

mobile app · 2026
Who Here...? on mobile
Who Here...?, decks on mobile
Who Here...?, categories on mobile
Who Here...?, curated partner on mobile
Who Here...?, curated partner on mobile
Who Here...?, curated partner on mobile
01 / 06

Mobile app concept built for a friend with an idea. Super simple, but a fun way to explore mobile design and development with React Native.

visit ↗

Interstellar Ice

website · 2025
nopedigital.netlify.app
Interstellar Ice on desktop
Interstellar Ice on desktop
Interstellar Ice, blog on desktop
Interstellar Ice, me on desktop
Interstellar Ice on mobile
Interstellar Ice on mobile
Interstellar Ice, blog on mobile
Interstellar Ice, me on mobile
01 / 04

A deeper exploration and experimentation with Astro. Basically a playground for me to test out new features and ideas.

visit ↗

Järna Rosteri

website · 2025
jarnarost-v3.vercel.app
Järna Rosteri on desktop
Järna Rosteri on desktop
Järna Rosteri on desktop
Järna Rosteri on mobile
Järna Rosteri on mobile
Järna Rosteri on mobile
01 / 03

A simple site built with Astro for a local coffee roastery.

visit ↗

Wordle Clone

web app · 2025
github.com/Edchy/wordle-test

I just wanted to see if i could recreate Wordle without looking up anything. No guides, no tutorials, no AI. Just me and my brain. Challenging myself to see if i actually know how to write code. Go ahead, hit play and see if you can guess the word.

code ↗
Archive(08)
  1. 2025web appReact, TypeScript, Vite, Tailwind CSS, shadcn/ui, React Hook Form, Zodcode ↗
  2. 2025web appTypeScript, Vite, Tailwind CSS, Express, Socket.IOcode ↗
  3. 2025web appJavaScript, Vitevisit ↗
  4. 2025web appReact, TypeScript, Vite, Axios, Digi design systemcode ↗
  5. 2025web appAstro, React, Tailwind CSS, shadcn/ui, TypeScript, Node.js, Express, MongoDBcode ↗
  6. 2024web appPHP, MySQLcode ↗
  7. 2024mobile appReact Native, Expo, Node.js, Express, MongoDBcode ↗
  8. 2023web appReact, Vite, React Routervisit ↗

Akilles

mobile app · 2026

stack
React Native · Expo · Expo Router · TypeScript · AsyncStorage

A workout app with one job: open it and know exactly what to do. I built it for myself, for the moment between sets with a phone in a sweaty hand, when I don’t want to plan, pick or think. One exercise on screen at a time, with the weight and the reps already decided.

The app does the arithmetic. You log a set by tapping its circle, and your reps decide what happens next time: hit every set and you climb a rep ladder, top it out and the weight goes up, fall short and it holds, fall short twice and it drops 10%. Progression follows the exercise and the rep range, so swapping barbell bench for dumbbells gives you the dumbbells’ own numbers, and swapping back picks up exactly where you left off.

The program is a cycle that only moves forward when you train, so a missed day creates no debt and nothing to make up. Warm-up sets are worked out for you, arms and abs close each session, and mobility runs as a deck of cards with a countdown. Everything is editable in the app: the workouts, their order, and what fills each slot.

Akilles also has a voice of its own: cheeky, blunt and a bit harsh about the lifting, never about you. Try to skip a warm-up and it will have a word. The promise is simple: open the app, do the next useful thing, leave before you hate it.

Built with React Native and Expo, and all your training stays on the phone.

Byggkollektivet

web app · 2026

stack
Next.js · PostgreSQL · Railway · Fortnox API

An internal tool for Byggkollektivet, a construction company, for planning their work and seeing it at a glance.

The company’s data lives in Fortnox, their accounting system. The tool connects to it, fetches that data and keeps it in its own Postgres database, where it can be planned around and visualized. An hourly cron job keeps it in sync with Fortnox.

It’s a Next.js app. It’s internal, so there’s no public link.

Gotmap

web app · 2026

stack
TypeScript · Vite · MapLibre GL · GeoJSON
link
amapofthrones.fyi ↗

This one came straight out of watching Game of Thrones. I kept pausing to google maps of Westeros, trying to work out where everyone was, where they were heading and how far apart things actually were. So I built the map I kept wishing I had: an interactive atlas for that exact moment, when you’ve paused an episode, want to know where a place is, what it’s near and who holds it, and then want to get back to the show.

That moment shaped every decision. It’s a second-screen tool, so it has to work one-handed on a phone in a dark room. It opens straight onto the map with no instructions, and the interface stays out of the way until you search, zoom or tap something. There’s a night theme and a proper daylight atlas, designed separately rather than inverted.

Under the hood it’s a MapLibre GL map drawn from GeoJSON: regions, rivers, roads, lakes, islands, the Wall and 241 named places. A small data pipeline fetches and cleans the upstream map data, fixes misspelled place names, and checks every name against the wiki, so a place only links out when its page actually exists. The fonts are compiled to SDF glyphs so labels stay crisp at any zoom.

The fiddliest part was colour. Neighbouring regions have to stay distinguishable in colour and in greyscale, so the region fills sit on a three-step lightness ladder, and a contrast check runs on every build and fails it if two neighbours get too close.

It’s a fan project and non-commercial by necessity: the map data is CC BY-NC-SA, and the world belongs to George R.R. Martin.

Michi

mobile app · 2026 · wip

stack
React Native · Expo · TypeScript · MMKV · Vitest
link
github.com/Edchy/michi-rn ↗

My son wants to learn Japanese, so I’m building him an app to learn it with. That set the rules from the start: short, easy lessons, nothing on screen to distract him, and spaced repetition so what he learns actually sticks. No streaks, points, punishment or any of the usual engagement tricks.

It started as a Next.js web app, which I’ve since frozen and am now rebuilding natively in React Native with Expo. The learning core (the course content, a spaced-repetition engine and the session planner) doesn’t import anything from React or the DOM, so it moved over untouched: 197 of the web build’s 205 tests pass in the native build without a single change.

The first native slice is the vowel station, with teaching, practice, a checkpoint and saved progress, using real recordings for 46 kana and a handful of words. Getting the audio right was its own detour. Taps have to sound instantly, retrigger without queueing, and keep consonants like ち and つ intact, so the audio layer runs on react-native-audio-api and was verified on a physical iPhone.

Still to come: the world map that ties the stations together, and a general runner so every station works like the first one.

Robo

web app · 2026

stack
React · TypeScript · Vite · pdf.js
link
edchy.github.io/robo ↗

This started as my own problem. At my workplace the whole month’s schedule arrives by email as one dense PDF, and finding your own shifts means squinting through everyone else’s rows. So I built Robo for myself: drop in the PDF, pick your initials, and see only your own shifts, with the next one as the headline. Then my colleagues saw it, and now pretty much everyone at work wants to use it.

Everything happens on the phone. The PDF is parsed locally with pdf.js and never uploaded, and there’s no analytics, no accounts and not even a font from a CDN, so the privacy promise stays literally true. Once the page has loaded, it keeps working in airplane mode.

Two ways to take your schedule with you, both entirely in the browser:

  • Add to calendar generates an .ics file for Apple, Google or Outlook. Night shifts become single events that span midnight, which the PDF can’t show, and re-importing a corrected month updates the events instead of duplicating them.
  • Print uses a print stylesheet that turns the month into a clean sheet, so “Save as PDF” works without a PDF library in the bundle.

The shift types (morning, day, evening and night) are the only colour in the interface, and each one also has a label and an icon so it survives colour blindness and a black-and-white printout. It’s in Swedish and built for one-handed use in a hallway. Two interface directions were tested side by side before this one won.

Rolling Dough Palace

website · 2026

stack
Astro · CSS · GitHub Pages
link
edchy.github.io/rolling-dough-palace ↗

A concept, and a slightly cheeky one. I came across a mobile, wood-fired pizza caterer (an oven on wheels that turns up at weddings, festivals and company events and bakes on the spot), thought their website deserved better, and redesigned it without asking. Then I emailed them to show them. They never wrote back, so the name here is made up.

The original was a sprawling Wix site of around sixteen pages that mostly repeated the same pitch, with cities duplicated under several addresses and three overlapping ways to book. The redesign collapses it into four pages: home, a single page for everything they do (festivals, private parties, company events and workshops as sections), their story, and contact. Booking comes first everywhere, and the navigation fits in one glance.

The brief was “not a traditional pizza place”. So it’s type-led and a little brutalist: flat blocks of candy colour (pink, mint, lilac and yellow) divided by ink rules, a big serif headline, and monospace labels as texture. Every colour is a token, and two alternative palettes are one attribute away.

Built with Astro, in Swedish, and deployed to GitHub Pages.

Untangled

web app · 2026 · wip

stack
Next.js · React · TypeScript · MDX · Tailwind CSS · Motion · Three.js · Vercel AI SDK
link
untangled.se ↗

A free, nonprofit, interactive course that helps people with no technical background build a real mental model of AI. It starts with switches and bits and works its way up, through the history, neural networks, embeddings and attention, to today’s language models and agents.

It reads more like an illustrated nonfiction book than a course platform. The core journey is ten modules, from The Machine and Can Machines Think? through The Long Winter and Paying Attention to Agents, told in short MDX slides where every slide has exactly one job. There are no accounts, badges or leaderboards, and your progress lives in your browser.

The interactive parts are there to show the mechanism, not to gamify it: a live tokenizer, small code labs, 3D illustrations, and open-ended questions where you can get AI feedback on your answer, streamed from a rate-limited API route.

Most of the work isn’t code, though. It’s the curriculum: repeated audits of every module for accuracy, sources and pacing, so each idea builds on the last and nobody has to make two conceptual jumps at once.

KetchUp

extension · 2026

stack
JavaScript · Chrome Extensions (MV3)
link
github.com/Edchy/KetchUp ↗

I noticed I’d more or less stopped taking breaks. There are plenty of pomodoro timers out there, but I wanted the simplest one possible, so I built my own. It was also my first browser extension.

It runs on a 52/17 rhythm: 52 minutes of work, then 17 of rest, based on research into the habits of the most productive workers.

It’s built on Manifest V3. The timer runs on the alarms API in a background service worker, so it keeps going after you close the popup. The time left sits on the toolbar badge, a notification tells you when to switch, and an offscreen document plays the alarm sound, since service workers can’t play audio themselves.

The popup got a loud, comic-book look (big Bangers type on a dark tomato red), because a timer called KetchUp deserved it.

nope.digital

website · 2026

stack
Astro · npm workspaces · Pages CMS · Netlify
link
nope.digital ↗

The website for NØPE, my one-person digital practice for websites, apps and design. The line is “Human. Minimal. Alive.”, and the site tries to be exactly that: a big blue-and-yellow, type-led homepage that says what I do, a short “now making” list, and an easy way to say hello.

It lives in a monorepo alongside my blog. Both are Astro sites in one npm workspace, sharing a single content folder, so projects and posts are written once and used by both. Content is edited in Pages CMS, straight from the repository, and each site deploys on its own to Netlify.

It replaced Interstellar Ice, my earlier and much louder portfolio.

Tiny Coding Agent

cli · 2026

stack
Python · OpenAI SDK · OpenRouter
link
github.com/Edchy/tiny-py-coding-agent ↗

The smallest coding agent I could build, written to understand how agents actually work instead of treating them as magic.

It’s a loop in a few hundred lines of Python. You type a message; the model (any model through OpenRouter, GPT-4o mini by default) decides whether to answer or to call a tool; the tool runs locally; the result goes back into the conversation; and it repeats until there’s an answer. It has three tools: list files, read a file and edit a file. Without an API key it still works as a plain command line for the same tools.

Building it took the mystery out of it. An agent is a model, a loop and a few tools, and it’s the code around the model that decides what it can actually do.

J.Ro

website · 2026

stack
Astro · CSS · GitHub Pages
link
edchy.github.io/J.Ro ↗

A concept redesign for Järna Rosteri, a small roastery just south of Stockholm that roasts organic coffee by hand every week, and the only biodynamic (Demeter) certified roastery in the Nordics. It’s the second site I’ve made for them; the first one is further down, under Järna Rosteri.

I wrote the brief myself: a brochure site that works as a first impression and a handshake, for three kinds of visitor. Café and restaurant owners looking for a supplier, curious locals, and specialty-coffee people checking whether the roastery is serious. No shop, no CMS.

So it leans on restraint. The tone is grounded, unhurried and precise, and real place names, certifications and contact details do the convincing instead of atmosphere. It’s built on the roastery’s own graphic profile, with a redrawn logo mark and a theme picker for trying out colourways.

This is the first iteration.

to.w

website · 2026

stack
Astro · TypeScript · model-viewer · Netlify Forms
link
tovewatte.se ↗

The website for TO.W, the practice of silversmith Tove Wätte. It’s where her rings, the photographs around them and her ring-making workshops live, in Swedish.

It’s an artist’s site with a direct way to order, not a web shop. Every ring is cast in recycled sterling silver and made to order, so a product page is a large photo next to the facts (material, technique, sizes, price) and an email link to order. Workshop interest goes through a Netlify form, and Tove follows up personally.

One detail I enjoyed: each ring has a small 3D stand-in you can turn around. They aren’t scans. A script builds them from simple shapes read off the photos and exports them as GLB files for model-viewer, and the page says plainly that the model is an approximation.

Le Palais de Poche

website · 2026

stack
HTML · CSS · JavaScript · GitHub Pages
link
edchy.github.io/palais-de-poche ↗

A site for selling our tiny house. We built it ourselves in 2021, on actual wheels, and four of us (plus one strong-willed cat) have lived in it since. The kids have now literally outgrown the ceiling, so the house is looking for its next owners.

The site is laid out like a book. You flip through spreads with the arrow buttons, the keyboard or a swipe, and each spread is either a full-bleed photo, a pair or trio of photos, or a text page about the house: its size, insulation, heating and layout. All of it lives in one data file, so reordering the book is just moving lines around.

No framework, only HTML, CSS and JavaScript, deployed to GitHub Pages. A nice reminder of how far plain JavaScript gets you.

Who Here...?

mobile app · 2026

stack
React Native · Expo · Expo Router · Zustand · Reanimated
link
vemhar.expo.app ↗

A party-game concept, built for a friend with an idea. You play it wherever you are (a bar, a train, a café) and the people around you become the game board: “Who here… looks like they carry a deep secret?”

The hard part was making it playful without it turning creepy. The game is about perception, not picking strangers apart, and it’s meant as a private moment between the people playing. There’s even a one-tap button that instantly hides the screen if someone walks past. It was designed around different modes for a date, friends or playing alone, and there’s no login: you open it and play.

Built with React Native and Expo, using Expo Router, Zustand for state, and Reanimated and haptics so it feels physical in the hand. The same code also runs on the web, which is the version linked here.

One of many projects that just ran out in the sand, but it was a fun one to build and a good way to explore mobile design and development with React Native.

Interstellar Ice

website · 2025

stack
Astro · MDX · Front Matter CMS · Vitest
link
nopedigital.netlify.app ↗

My previous portfolio, and the place where I properly learned Astro. It was more playground than portfolio: loud blue, hand-drawn type, a blog with tags, reading times and an RSS feed, generated Open Graph images, a dark mode, and a “fun” page for whatever I felt like trying that week.

It went through 92 commits over about seven months, and a lot of the components were experiments in their own right: a word morph, a chaos section, a scroll progress bar, an icon carousel and, of course, a big red button. Posts and projects were written in Markdown and MDX and edited with Front Matter CMS.

nope.digital has since replaced it, but a lot of what I know about Astro started here.

Järna Rosteri

website · 2025

stack
Astro
link
jarnarost-v3.vercel.app ↗

The old website for Järna Rosteri, a friend’s roastery just south of Stockholm that roasts organic, biodynamic coffee. The site is simple, but fun. Pre-ai era of building things by hand. This was sort of one of the first “real” projects I did, and it was a good one to start with: a small site with a clear goal, and a client who was happy to let me do my thing and also provide me with an office space. Thanks Robin <3!

Wordle Clone

web app · 2025

stack
React · Vite
link
github.com/Edchy/wordle-test ↗

I wanted to see if I could rebuild Wordle without looking anything up. No guides, no tutorials, no AI. Just me and what I actually know.

It’s a small React app: a six-row grid you type into with the keyboard, letters marked as right, misplaced or absent, a random answer from a word list that never repeats the one before, and confetti when you win. A couple of evenings, three commits, and a good check on the basics.

The Last Todo Ever

web app · 2025

stack
React · TypeScript · Vite · Tailwind CSS · shadcn/ui · React Hook Form · Zod
link
github.com/Edchy/the-last-todo-ever ↗

A school assignment (build a todo list in React) that I used as an excuse to try everything. Todos get tags and due dates with a live countdown; you can filter, sort and drag them into a new order; and new ones are added from a drawer with a validated form.

Built with React and TypeScript, Tailwind and shadcn/ui, React Hook Form and Zod, with little sounds and animations throughout.

Auction Site

web app · 2025

stack
TypeScript · Vite · Tailwind CSS · Express · Socket.IO
link
github.com/Edchy/auction-fullstack ↗

A realtime auction site, built as a school group project. You can register, create an auction, place bids, and watch new bids arrive live without reloading.

The backend is an Express API in TypeScript with Socket.IO for the live updates; the frontend is a multi-page Vite app in TypeScript and Tailwind.

Just To Do It

web app · 2025

stack
JavaScript · Vite
link
just-todo-it-gamma.vercel.app ↗

The obligatory todo app, and my first. A school assignment in plain JavaScript: add todos, tick them off, bring them back, sort them, and switch themes. Built with Vite, and yes, there’s confetti.

Af Job and Ed Search

web app · 2025

stack
React · TypeScript · Vite · Axios · Digi design system
link
github.com/Edchy/af-job-ed-search ↗

A school case built on open data from Arbetsförmedlingen, the Swedish Public Employment Service. Search for an education, match it to related occupations with their JobEd Connect API, then see the competencies employers ask for most in each one.

It’s React and TypeScript, with a separate service layer for the API calls, cached search results, and the agency’s open-source Digi design system for the components.

Gym Tracker

web app · 2025

stack
Astro · React · Tailwind CSS · shadcn/ui · TypeScript · Node.js · Express · MongoDB
link
github.com/Edchy/rnld-astro-react ↗

A workout tracker, built front to back. The frontend is Astro with React, Tailwind and shadcn/ui.

The backend is my own REST API in Express and TypeScript on MongoDB. You register and log in with passwords hashed by bcrypt and a JWT in a cookie, then create, read, update and delete your workouts. It has rate limiting on the auth routes, request logging, and Swagger docs for the whole API.

Football Database Cup

web app · 2024

stack
PHP · MySQL
link
github.com/Edchy/db-cup-php ↗

A database for a football cup. I designed the relational schema from scratch, then built PHP pages on top of it for the teams, players, referees, groups, matches and results, plus the top scorers’ list.

The point was the data modeling and writing the SQL by hand, along with server-side forms and validation.

Hoppy Beer

mobile app · 2024

stack
React Native · Expo · Node.js · Express · MongoDB
link
github.com/Edchy/hoppy-beer-react-native ↗

A mobile app for keeping track of beers: browse and search a catalogue, open a beer’s details, keep a list of the ones you’ve had, and add new ones.

The app is React Native with Expo, using stack, tab and drawer navigation, Formik and Yup for the forms, a light and a dark theme, and a few small animations. It talks to a REST API I built in Express and MongoDB, with JWT authentication.

Carboo

web app · 2023

stack
React · Vite · React Router
link
carboo.vercel.app ↗

One of my first real projects, and a special one. My son has type 1 diabetes, and Carboo is a simple calculator that helps him work out the carbohydrates in his food.

Next to the calculator there are short guides on how to use it, diabetes basics and ketones. Built with React and Vite, and I learned a lot of React making it.