Apps that workwhen thenetwork won't
I'm Awoyemi Raphael — a full-stack developer in Ibadan, Nigeria, building mobile and web products with Flutter, React and Firebase. Lately that means software for shops that can't count on the network.
- Years building
- 0+ Years building
- Public repositories
- 0+ Public repositories
- Languages in daily use
- 0 Languages in daily use
Things I've built and still stand behind.
Mostly solo builds — a point-of-sale app in daily-driver shape, a few full-stack experiments, and the projects I learned the back end on. All of it is public on GitHub.
- 01
Shoka
2026An offline-first point-of-sale and inventory tracker for small Nigerian shops — record a sale in under five seconds while the customer waits. No account, no backend, no network: everything lives in SQLite on the device, and a sale writes its line items and stock decrements in one transaction that rolls back rather than let stock go negative.
- Expo
- React Native
- SQLite
- Reanimated
- 02
Moon Directory
2025A directory where founders pitch startup ideas and the community votes them up. Built on the Next.js App Router with NextAuth for sessions and a Radix-based component layer.
- Next.js
- NextAuth
- TypeScript
- Tailwind
Full-stack - 03
MoonConvert
2025One upload box for every file type. An Express backend routes each job to the right engine — sharp for images, ffmpeg for audio and video, LibreOffice for documents — behind a React and Vite front end.
- React
- Vite
- Express
- FFmpeg
Full-stack - 04
Notes
2025A Flutter notes app with local persistence through sqflite. Create, edit and delete notes that survive a restart, with the database layer kept behind a single module and no cloud dependency.
- Flutter
- Dart
- sqflite
Mobile - 05
Node Blog
2025A server-rendered blog with full CRUD on Express and MongoDB — EJS templates, Mongoose models, and method-override so plain HTML forms can still issue PUT and DELETE.
- Node.js
- Express
- MongoDB
- EJS
Backend - 06
Weather
2025A weather lookup built on the OpenWeatherMap API in plain JavaScript — no framework, no build step. Fetch, handle the error states properly, and keep the layout responsive.
- JavaScript
- REST API
- CSS
Front-end
Ibadan-based, Flutter-first, and stubborn about apps that survive a dead signal.
I'm Ayotunde Raphael Awoyemi, and I build cross-platform products under the name Moontech — Flutter and Dart on mobile, React and Next.js on the web, Node and Firebase behind both. Most of what I ship is aimed at people on cheap Android phones and unreliable connections, which turns offline-first from a nice-to-have into the actual design constraint.
That shows up in the work. Shoka, my point-of-sale app, has no server at all: every sale is a single SQLite transaction that rolls back rather than let stock go negative. I care about the same things on the web — clean, maintainable code, a user-first interface, and no spinner where a local read would do.
- Deepening advanced Flutter patterns and Firebase architecture
- Adding cloud backup, Paystack and barcode scanning to Shoka
- Exploring AI/ML features inside mobile apps
Tools I reach for without thinking.
Flutter first on mobile, React and Next.js on the web, Node and Firebase underneath. The list matters less than knowing when not to add to it.
Mobile
Flutter · Dart · React Native · Expo · SQLite · Android Studio
Web
React · Next.js · TypeScript · JavaScript · Tailwind CSS · HTML · CSS
Backend & data
Node.js · Express · Firebase · Supabase · MongoDB · MySQL · PHP · Laravel
Tooling
Git · GitHub · VS Code · Postman · Vite · UI/UX design
Self-taught, in public.
No bootcamp and no agency — just a couple of years of shipping, with every step of it visible in the commit history.
- 03
Building for real users
2026Moved from practice projects to software meant to be used daily by people who are not developers.
- Shipped Shoka, an offline-first POS and inventory tracker for small shops
- Designed a zero-backend architecture around SQLite in WAL mode
- Made soft deletes and denormalised sale history keep past receipts intact
- 02
The full-stack year
2025Worked across the whole stack in one run — Next.js on the front, Express and MongoDB behind it, Flutter on mobile.
- Built Moon Directory on the Next.js App Router with NextAuth sessions
- Wrote MoonConvert's conversion backend around sharp, ffmpeg and LibreOffice
- Shipped a Flutter notes app backed by local sqflite storage
- 01
Foundations
2024Learned the server side first — authentication, templating and databases — before moving up to frameworks.
- Built authentication from scratch with Node.js rather than a library
- Worked through PHP and Laravel alongside the JavaScript track
- Started publishing everything publicly on GitHub
Got something you want built?
I take on freelance projects and collaborations. Tell me what you're making — email works, and WhatsApp is usually faster.