Felipe Rohde

Felipe Rohde

I am a senior full-stack engineer, co-founder of bip.marketing, creator of simpleimg.io, embededitor.com, imgapis.com, embedimg.com, litecreator.com, and menublip.com, labs tinkerer, open-source library author, design-obsessed builder, and off-road enthusiast. I've been writing code since I was fifteen.

I build and ship edge-native products — mostly on Cloudflare Workers — with a frontend obsession and a bias for doing more with less. You can find me on GitHub, LinkedIn, or reach me at hey@feliperohde.com.

There are no technical limitations — only challenges yet to be solved.

Senior full-stack engineer

I'm a computer science graduate from Rio Grande do Sul, Brazil, with over two decades of hands-on engineering. I started at Chaordic before finishing college — hired as a frontend engineer, left as full-stack — building recommendation systems at global scale, email editors, and template editors in the pre-AI era. Chaordic was later acquired by Linx.

Today I work on product engineering at easyauth.net, and I co-founded bip.marketing — where I built everything from the marketing site to the full product stack.

I've spoken at events, worked with robotics, and I'm naturally curious about how things work under the hood. I launch my own products to solve real problems I've hit — or simply to understand the mechanics of building and shipping something end-to-end.

Co-founder of bip.marketing

bip.marketing is an email and WhatsApp marketing platform — lead capture, segmentation, campaigns, and delivery analytics, billed per send instead of per contact. It also fires webhook campaigns, so you can plug BIP into anything else in your stack.

It started as an internal need: capture leads and communicate with them intelligently. I added geographic segmentation, advanced filter criteria, API triggers, Meta template sync, webhook delivery, and real-time analytics. We validated the idea and shipped a production product in six months — launched in June 2025.

The entire platform runs on Cloudflare Workers. To segment 500,000 leads, BIP spins up a worker tree: each node handles a slice and forwards jobs downstream until the full audience is segmented. Fast, cheap, and exactly the kind of constraint-driven architecture I enjoy building.

BIP has paying customers today.

Creator of embededitor.com

embededitor.com is a photo editor for the web that feels like the one on your iPhone. One React component — or one function call on any other page — and people crop, filter, hide, frame, and annotate their photos without leaving your app. When they press Save, your code gets the photo back as a File and the edits as JSON.

One photo in under a minute — crop, filter, hide a plate and a face, magnify, annotate, frame, Save

It started as the editor for my own products — the Simple Img uploader, Lite Creator, and best-img-uploader — designed after the iPhone's Photos app, on an engine of my own rendered in WebGL 2. The feel is the product: every change settles with a spring, drags carry momentum, a pinch keeps the point under your fingers, and Undo takes back the whole gesture. On a phone, it opens as a bottom sheet.

On a phone — crop, pinch, straighten, filter, Save
The details — a pinch that stays under your fingers, a flick that coasts, Undo for the whole gesture

The tools are the ones people reach for. Crop with a focus that finds the subject, a straighten ruler, twelve adjustments and a one-tap Auto, filters and frames. Hide faces, plates, and screens with blur, pixelate, or a solid cover. Annotate with numbered steps, rulers, magnifiers, and elbow arrows that stay glued to what they point at. Then put a brand on it: a watermark, a signature, and your own logo, name, and colors in the editor bar.

Crop — ratios, a window that springs back, a straighten ruler
Filters and frames — Vivid Warm, then a black mat
Hide — blur or pixelate faces in a few taps
Annotate — numbered steps, a magnifier, text, and arrows
Watermark and signature — single or grid, placed where you want
White label — your logo, name, and colors in the editor bar

Phones shoot huge photos, so the editor takes them as they come. HEIC, AVIF, and SVG open in every browser, and a photo over 16.7 MP is scaled down once as it opens — a 48 MP iPhone shot edits without running out of memory.

33 MP of Venice — zoom deep, pan, crop

For developers, it is one package with every prop optional. The styles live in the editor's own shadow root — no CSS to import, and nothing leaks either way. React 18.3 and 19 get a component; Vue, Angular, Svelte, or a plain page call mountEditor. Keep the JSON and the photo reopens with every edit still editable. Not to be confused with embedimg.com, which turns React templates into images — Embed Editor puts a photo editor inside your app.

Every video and screenshot here is the real editor at work, not a mock-up. I built a media studio that drives it through scripted scenes — real drags, real Saves — so any demo can be recorded again when the product changes. These are some of the finished edits it keeps:

First commit on September 30, 2026. Version 1.0.1 shipped on November 5 with sales open: four editions from one codebase — Free on npm, plus Lite, Full, and Trial on a private registry — licensed per project, never per developer. Around it, on Cloudflare Workers: the marketing site with its free tools, the npm registry, and the customer portal. About 1,800 commits in five weeks, and 385 spec files that run on Chromium, Firefox, and WebKit.

Open the playground →

Creator of imgapis.com

imgapis.com is an image API at the edge — not an uploader, not an editor. The design constraint was simple: everything available through URLs. Query params, no SDK. If your stack can load a URL, it works — drop it in an <img src> and go. Point it at any source (Cloudflare R2, S3, or HTTPS) and get the result back as another URL. Stop wiring four image services together; one API replaces the stack.

These images load fast because they go through img apis — resized and compacted at the edge. I never had to do that by hand. The source files are large and heavy; what you get is a URL.

Beyond the usual resize, crop, and recompress — each a query param: background removal, AI upscale for sharper quality, multi-image grid composition, a BlurHash API for placeholders, and full metadata extraction — dimensions, format, dominant colors with ready-made WCAG pairs, and Vibrant palettes. Watermarks callers cannot strip. URL screenshots that flow through the same pipeline. Custom hostname, origin allowlists, Accept-header AVIF/WebP — all on Cloudflare Workers across 300+ POPs. Cache hits and repeats cost zero; bandwidth ships with the credits.

This is a different product from simpleimg.io. Simple Img is the embeddable upload + edit stack. img apis is the processing layer you call with a URL — closer to imgix or Cloudinary than to a media manager. Same obsession with images and design; two jobs.

Creator of embedimg.com

The idea started on Pinterest. I was scrolling through post templates — clean layouts, bold type, the kind of creatives people use every day — and my first thought was that you needed Photoshop or Canva to make anything that good. Canva never quite got there for me. Then a better question: why not use code? (Write the template once — or let an AI write it.) Reuse forever, swap the props, and ship a new image without opening a design tool.

That became embedimg.com — first as the creative engine behind Lite Creator, then a product on its own. Props in, images out: real React components as templates, every prop a render URL. And better than anyone at turning a reference image into a template? AI. You can use agents like Claude and Cursor over MCP — or stay inside the product: we are testing a built-in design harness in the editor, so you iterate with AI without an external tool. Paste a look you like, get reusable code.

Personalized emails. OG cards. Avatar generators. Carousel creators. Certificates, stories, banners — whatever you can express as props. Image generation by template, for anything.

Creator of litecreator.com

litecreator.com answers one question: what should I post today?

It is a conversational system that guides you — not a dashboard you have to figure out. A chat walks you through onboarding: where you live, what you do, your brand colors, your website. The system builds your profile, analyzes your presence, and starts proposing content ideas tailored to you. You do not hunt for features; the product conducts the flow.

Think of it as a personal CMO that leads the conversation. Like an idea? Generate static creatives, reel scripts, carousels, or posts — refined step by step through chat and a harness I am actively developing. Add RSS feeds, PDFs, or paste a link; the system extracts, organizes, and turns it into post-worthy ideas. Always aware of the date, local context, holidays, and what is happening in the world.

One Sunday morning I tried a side experiment: describe an ad in plain words and let Jev build it live on Cloudflare Workers. Jev does not write copy — it answers one question per field (layout, format, photo, colors, headline, button, font, energy) and always picks from the catalog. One request, twelve questions, under a second, about $0.0002 per design. Put a headline in "quotes" and a button in [brackets], lock what you like, and shuffle the rest.

Try the Jev demo →

The goal is ideas and output far beyond the obvious — a platform that keeps you moving from "what should I post?" to something published, without losing the thread.

Creator of simpleimg.io

simpleimg.io started right after Chaordic, in freelance. Every client project needed an uploader plugged in, and users still expected Photoshop for basic edits. I had always loved building editors — what began as a small in-browser photo editor grew into a full editing stack over two years, long before AI could help. The insight was simple: one React component that uploads, surfaces everything that user has already uploaded, and lets them edit in place — no external tools, no broken workflow.

Everything had to be self-contained. The UI mounts through transparent iframes in the host app — isolated from external CSS, so it feels native wherever it is embedded — and I could ship updates on my side without clients redeploying their components.

The processor behind it was written in Go — I wanted C-like performance with easy multi-threading on Lambda, and I was curious whether I could manipulate pixels, run interpolation algorithms, and apply k-nearest filters myself. For compression I compiled libavif and other established libraries rather than reinventing codecs from scratch.

I presented the platform to Easy Auth while freelancing with them. They wanted it in their stack immediately — an acqui-hire. Simple Img became the image layer for the entire Easy Auth platform, their other products, and later BIP. It stopped being a public SaaS and became internal infrastructure — still running four years later, now ported to TypeScript and Cloudflare Workers.

easyauth.net

I landed at easyauth.net through our relationship with Simple Img. Their hotspot-v2 effort had been stuck for a year — a team unsure where to go, nowhere near what the platform is today. I came in to deconstruct and rebuild. The old engineering team rejected the approach immediately — every change hurts — but something had to give. What existed was thrown out. No tests, no architecture, no dashboard; the hotspot front end hadn't even started. True ground zero. Suddenly there were rules to follow. I like doctrine. I'm a nerd about that stuff.

I'm obsessive about unit tests — they keep a product from regressing and let you scale without fear — and we installed that doctrine from day one. I built essentially everything except the marketing site: Pix, captive portal / hotspot, ads, the ops dashboard. In under six months we had a live POC at APRONET, one of Brazil's biggest ISP events, at the Hard Rock Cafe in Florianópolis. We finished it the night before. Adrenaline. Thousands of simultaneous logins — recording concurrent data, authorizations, aggregation, and real-time intelligence under load.

Today Easy Auth runs clean — fewer fires, more product growth — thanks to that architecture. Query tuning never really ends, but a solid product mostly walks on its own. I've led the platform; I still prefer hands on the keyboard.

Where I tinker — Labs

A digital workshop for small experiments — UI toys I build to scratch an itch or explore an idea. Two I keep coming back to: an elegant image uploader (file, URL, Unsplash) and a precision color picker with mesh gradients, patterns, and tones. More live on the labs site.

Open labs →

Just for fun — National Race

National Race is an arcade racer I built for fun: physics that feel good and let you push, on circuits inspired by Brazil — Interlagos, Santa Cruz do Sul, Tarumã, Velo Città, Goiânia, Brasília, Cascavel, and more. Twenty-two layouts, each built from OpenStreetMap with its real shape and elevation.

Stadium Truck 2, sideways through São Paulo (Interlagos)

Then I added a national category: Formula Truck. And my favorite driver, Duda Conci, with his #377 — the orange cab, his sponsors on the doors and the windscreen, a turbo-diesel voice, and a locomotive air horn. I sent him the game. He loved it, and we became friends.

Duda Conci's #377 through the corners of Santa Cruz do Sul, at sunset

Under the hood: three.js, an engine sound synthesized live from layered voices, nitro, slipstream, gamepad support, global lap records, and multiplayer rooms on Cloudflare Workers and Durable Objects. The physics runs on a fixed timestep with no randomness, so a race plays out the same for every player. Built in two days.

Drive the #377 →

Open-source author

I publish libraries when I build something useful for my own products and think others might benefit.

Tired of Next.js — huge bundles, build complexity, and framework churn — I built a light React SSR streaming and hydration stack that depends only on Wrangler and Cloudflare: Workers for the app, R2 for assets. That template powers every site and system I ship today. On top of it, typed RPC from use-request-utils lets the client call server methods as if they were local — FormData over HTTP, full types on args and returns, including streaming responses. I wrote about the journey in From Next.js to React Edge. The public starter is cloudflare-react-tailwind-worker.

use-filter-criteria still powers BIP's segmentation. On the home page I highlight eight packages I'm actively maintaining — cloudflare-react-tailwind-worker, use-request-utils, use-zod-default, use-lite-form, and the rest of the stack on GitHub. Same pattern every time: solve my problem, open-source the result.

Off the keyboard

When I'm not shipping code — though there's usually Claude on my phone — I'm on a trail.

Mountain biking, UTV, motorcycle, off-road, 4x4, car events, and travel. I live in Brazil's Vale Europeu, one of the most beautiful regions in the country: riding through the valley, climbing hills on my bike, tearing up dirt in a UTV, or catching Formula Truck and jeep races. My wife Carol is always along for the ride — she's picked up programming, design, and AI along the way and is my biggest supporter.

I'm obsessively into design outside of work too. Pinterest every day. Always looking at ideas from other fields that might apply to software. Snow trips, cold mountains, sierras — and a lake house on a reservoir is the dream.

Dogs are a big part of my life. Heron, my husky, was my partner for years — Estopa came along during that time, another dog I adopted and loved just as much. We lost Heron, and Estopa left us a year later — it still hurts. And Luke — my parents adopted him not long ago, but he is my dog too.

Open source

Libraries on GitHub

8 packages · MIT

$ ls ~/github

registry: npm · scope: feliperohdee

cd github.com/feliperohdee